#ifndef LIGHTKEEPER_H #define LIGHTKEEPER_H #include #include #include #include #include class FirstPersonController; class LightKeeper final : public App { public: static constexpr std::string_view MainScenePath = "game://scenes/main.scene"; void customInit() override; void customUpdate(float dt) override; void customCleanup() override; void customWindowsMenu() override; void onPlayModeChanged(bool playing) override; [[nodiscard]] Camera* gameCamera() override; private: void setupSkybox(); void findPlayer(); void drawTestWindow(); void spawnBall(); std::unique_ptr skyboxCubemap; Camera playerCamera{glm::vec3{0.0f}, glm::vec3{0.0f, 1.0f, 0.0f}}; FirstPersonController* playerController{nullptr}; bool showTestWindow{false}; }; #endif // LIGHTKEEPER_H