feat: implement basic tower placement
This commit is contained in:
@@ -7,36 +7,51 @@
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
namespace td {
|
||||
|
||||
namespace client{
|
||||
|
||||
class ClientGame;
|
||||
|
||||
} // namespace client
|
||||
|
||||
|
||||
namespace render {
|
||||
|
||||
class WorldRenderer{
|
||||
private:
|
||||
client::ClientGame* m_Client;
|
||||
Renderer* m_Renderer;
|
||||
game::World* m_World;
|
||||
std::unique_ptr<GL::VAO> m_WorldVao, m_MobVao, m_SelectTileVao;
|
||||
std::unique_ptr<GL::VertexArray> m_WorldVao, m_MobVao, m_SelectTileVao;
|
||||
glm::vec2 m_CamPos;
|
||||
glm::vec2 m_CursorPos;
|
||||
glm::vec2 m_HoldCursorPos;
|
||||
float m_Zoom = 1;
|
||||
float m_CamSensibility = 1;
|
||||
bool m_TowerPlacePopupOpened = false;
|
||||
public:
|
||||
WorldRenderer(game::World* world, Renderer* renderer);
|
||||
WorldRenderer(game::World* world, client::ClientGame* client);
|
||||
~WorldRenderer();
|
||||
|
||||
void loadModels();
|
||||
|
||||
void update();
|
||||
void render() const;
|
||||
void render();
|
||||
|
||||
void setCamPos(float camX, float camY);
|
||||
|
||||
void moveCam(float relativeX, float relativeY, float aspectRatio);
|
||||
void changeZoom(float zoom);
|
||||
void click(int mouseX, int mouseY);
|
||||
private:
|
||||
void click();
|
||||
void renderWorld() const;
|
||||
void renderTowers() const;
|
||||
void renderMobs() const;
|
||||
void renderTileSelect() const;
|
||||
void renderPopups() const;
|
||||
void detectClick();
|
||||
glm::vec2 getCursorWorldPos() const;
|
||||
glm::vec2 getClickWorldPos() const;
|
||||
|
||||
void updateCursorPos();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user