#ifndef LIGHTKEEPER_H #define LIGHTKEEPER_H #include #include #include #include #include "destrum/Graphics/Resources/Cubemap.h" #include "destrum/ObjectModel/GameObject.h" class FirstPersonController; class LightKeeper final : public App { public: LightKeeper(); virtual ~LightKeeper(); void customInit() override; void customUpdate(float dt) override; void customDraw() override; void customCleanup() override; void customFixedUpdate(float dt) override; void onWindowResize(int newWidth, int newHeight) override; private: void drawDebugMenuBar(); void saveCurrentScene(); void loadScene(); void createEmptyScene(); void submitBoxColliderDebugLines(); Camera camera{glm::vec3(0.f, 0.f, -5.f), glm::vec3(0, 1, 0)}; MeshID sphereMesh; MaterialID sphereMaterial; ImageID texID; std::unique_ptr skyboxCubemap; GameObject* capybara = nullptr; GameObject* m_Player = nullptr; FirstPersonController* m_FPSController = nullptr; char scenePath[512]{"scenes/debug_scene.json"}; char newSceneName[128]{"EmptyScene"}; std::string sceneStatus; bool renderBoxColliders{false}; bool renderQuads{true}; bool renderDebugLines{true}; }; #endif //LIGHTKEEPER_H