#pragma once #include "Screen.hpp" #include class Engine; class LevelFrontend; class Hud; class LevelController; class PlayerController; class WorldRenderer; class TextureAnimator; class PostProcessing; class ContentPackRuntime; class Decorator; class Level; class LevelScreen : public Screen { std::unique_ptr frontend; std::unique_ptr controller; std::unique_ptr playerController; std::unique_ptr worldRenderer; std::unique_ptr animator; std::unique_ptr postProcessing; std::unique_ptr decorator; std::unique_ptr hud; void saveWorldPreview(); bool hudVisible = true; bool debug = false; void updateHotkeys(); void initializeContent(); void initializePack(ContentPackRuntime* pack); public: LevelScreen(Engine& engine, std::unique_ptr level); ~LevelScreen(); void update(float delta) override; void draw(float delta) override; void onEngineShutdown() override; LevelController* getLevelController() const; };