#pragma once #include "levelmanager.hpp" #include #include "stats.hpp" #include "overlay_ui.hpp" #include "raycaster.hpp" #include "camera.hpp" #include namespace gui { class MainUI { public: bool $needs_render = true; Point $player{0,0}; Stats $stats; sf::RenderWindow& $window; GameLevel $level; OverlayUI $overlay_ui; Raycaster $rayview; CameraLOL $camera; MainUI(sf::RenderWindow& window, GameLevel level); void mouse(int x, int y); void debug(); void draw_stats(); void draw_blood(); void plan_rotate(int dir); bool play_rotate(); std::optional play_move(); Point plan_move(int dir, bool strafe); void abort_plan(); void init(); void draw(); void dirty(); void generate_map(); void dead_entity(DinkyECS::Entity entity); }; }