#pragma once #include "levelmanager.hpp" #include #include #include "stats.hpp" #include "overlay_ui.hpp" #include "debug_ui.hpp" #include "raycaster.hpp" #include "camera.hpp" #include #include "guecs.hpp" namespace gui { class MainUI { public: int $compass_dir = 0; bool $show_level = false; bool $needs_render = true; sf::Clock $clock; sf::RenderWindow& $window; GameLevel $level; OverlayUI $overlay_ui; Raycaster $rayview; CameraLOL $camera; MainUI(sf::RenderWindow& window); void mouse(int x, int y, bool hover); void debug(); void render_debug(); void plan_rotate(int dir); bool play_rotate(); std::optional play_move(); Point plan_move(int dir, bool strafe); void abort_plan(); void update_level(GameLevel level); void init(); void render(); void dirty(); void show_level(); void health_low(); void dead_entity(DinkyECS::Entity entity); }; }