37 lines
942 B
C++
37 lines
942 B
C++
#ifndef LIGHTKEEPER_H
|
|
#define LIGHTKEEPER_H
|
|
|
|
#include <memory>
|
|
#include <string_view>
|
|
|
|
#include <destrum/App.h>
|
|
#include <destrum/Graphics/Camera.h>
|
|
#include <destrum/Graphics/Resources/Cubemap.h>
|
|
|
|
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<CubeMap> skyboxCubemap;
|
|
Camera playerCamera{glm::vec3{0.0f}, glm::vec3{0.0f, 1.0f, 0.0f}};
|
|
FirstPersonController* playerController{nullptr};
|
|
bool showTestWindow{false};
|
|
};
|
|
|
|
#endif // LIGHTKEEPER_H
|