#pragma once #include "Building.h" #include "Collision.h" #include "Levels/Level.h" #include "Player.h" #include "GridSystem/WorldGridManager.h" #include "Gui/Screens/ScreenManager.h" #include "Camera.h" #include "Gui/GuiMeter.h" #include "Gui/Screens/MainScreen.h" #include "Particle/Particle.h" class WorldLevel : public Level { public: WorldLevel(Camera* camera, Rectf viewport); virtual ~WorldLevel() override; WorldLevel(const WorldLevel& other) = default; WorldLevel(WorldLevel&& other) = default; void Update(float elapsedSec) override; void Draw() const override; void MouseMove(const Vector2f& mousePos) override; void ProcessImGui() override; WorldGridManager& GetGridManager(); std::vector m_Rects; private: double m_Fps{ 0.0f }; WorldGridManager m_GridManager; Player m_Player; Vector2f m_MousePos {}; Rectf m_Viewport; ScreenManager* m_ScreenManager; WorldTile* m_pSelectedTile { nullptr }; std::vector m_Buildings{}; MainScreen* m_MainScreen{}; Texture* m_topCover{ nullptr }; // ImGui Vars bool m_ShowTextureManagerWindow { false }; bool m_ShowCameraWindow { false }; bool m_ShowPlayerInfo { true }; bool m_FollowPlayer { true }; };