refactor: create gui widget classes

This commit is contained in:
2021-11-12 19:55:58 +01:00
parent 4ad7015f72
commit 830cb061e2
11 changed files with 166 additions and 67 deletions

View File

@@ -1,9 +1,15 @@
#pragma once
#include "game/World.h"
#include "render/Renderer.h"
#include "render/VertexCache.h"
#include "render/gui/TowerPlacePopup.h"
#include "render/gui/MobTooltip.h"
#include "render/gui/imgui/imgui.h"
#include <glm/glm.hpp>
namespace td {
@@ -31,6 +37,9 @@ private:
float m_CamSensibility = 1;
bool m_PopupOpened = false;
VertexCache m_TowersCache;
std::unique_ptr<gui::TowerPlacePopup> m_TowerPlacePopup;
std::unique_ptr<gui::MobTooltip> m_MobTooltip;
public:
WorldRenderer(game::World* world, client::ClientGame* client);
~WorldRenderer();
@@ -40,6 +49,8 @@ public:
void addTower(game::TowerPtr tower);
void removeTower(game::TowerPtr tower);
static ImVec4 getImGuiTeamColor(game::TeamColor color);
void update();
void render();
@@ -54,10 +65,10 @@ private:
void renderMobs() const;
void renderTileSelect() const;
void renderPopups();
void renderTowerPlacePopup();
void renderTowerUpgradePopup();
void renderMobTooltip() const;
void detectClick();
void detectMobHovering() const;
glm::vec2 getCursorWorldPos() const;
glm::vec2 getClickWorldPos() const;