#pragma once
#include "Mod.h"

class FreeCam : public Mod {
public:
	float speed = 1.f;

	FreeCam() : Mod(_("Free Cam"), _("Free your camera."), Category::PLAYER) {
		settings.push_back(new Setting{ _("Speed"), &speed, new float(1.f), new float(0.f), 2, {}, true });

		enabled = false;
		onlyenabled = false;
	}

private:
	glm::vec3 savedLow, savedHigh, savedPos, savedPos2;
	bool saved = false;
	bool queueDisable = false;
	virtual auto onImGuiRender() -> void override;
	virtual auto onEnabled() -> void override;
	virtual auto onDisabled() -> void override;
	virtual auto onWorldTick(Player* _this) -> void override;
	virtual auto onPacketSendAfter(Packet* packet, bool* cancel) -> void override;
	virtual auto onDimensionChanged() -> void override;
	virtual auto onClient() -> void override;
	virtual auto getMode() -> std::string override;
};
