commit 497a601c424e8e728ef0a8e61f049982f2d4af16 Author: Persson-dev <sim16.prib@gmail.com> Date: Sat Aug 12 10:32:52 2023 +0200 fix warning commit 1bfd019a1ea00dcdb6323d1f285e2cdd3ebb4020 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:05:13 2023 +0200 refactor: update cast commit 5bbc23a7d37e53eb74a885685f18e714f9448fd9 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:04:15 2023 +0200 moved GetImguiTeamColor commit fd0e2d2470ea5cca3553acf280aa371de5c06f4c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 19:03:37 2023 +0200 packets forward declaration commit 06eb9b99a96731f4b9a2167c00ed0bcd03702e3b Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:55 2023 +0200 remove Protocol.h includes commit 165f63d2e8b468f3e38992baddc221270010f801 Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 18:30:30 2023 +0200 split packets into separate source files commit f247f146c6c1e804a44b86f65cf3059859c07c6c Author: Persson-dev <sim16.prib@gmail.com> Date: Tue Jul 25 17:45:24 2023 +0200 split packets into separate headers
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "ClientConnexion.h"
|
|
#include "ClientGame.h"
|
|
|
|
#include "game/Team.h"
|
|
#include "game/Player.h"
|
|
|
|
#include "protocol/Protocol.h"
|
|
#include "protocol/packets/SendMobsPacket.h"
|
|
|
|
#include "render/Renderer.h"
|
|
|
|
#include "network/Network.h"
|
|
|
|
namespace td {
|
|
namespace client {
|
|
|
|
class Client {
|
|
private:
|
|
render::Renderer* m_Renderer;
|
|
ClientConnexion m_Connexion;
|
|
std::unique_ptr<ClientGame> m_Game;
|
|
bool m_Connected;
|
|
public:
|
|
Client(render::Renderer* renderer) : m_Renderer(renderer), m_Game(std::make_unique<ClientGame>(this)), m_Connected(false) {}
|
|
|
|
const ClientGame& GetGame() const { return *m_Game; }
|
|
const ClientConnexion& GetConnexion() const { return m_Connexion; }
|
|
render::Renderer* GetRenderer() const { return m_Renderer; }
|
|
|
|
ClientGame& GetGame() { return *m_Game; }
|
|
ClientConnexion& GetConnexion() { return m_Connexion; }
|
|
|
|
const game::Player* GetPlayer() { return m_Game->GetPlayer(); }
|
|
|
|
void Tick(std::uint64_t delta);
|
|
|
|
void Render();
|
|
|
|
bool Connect(const network::IPAddresses& addresses, std::uint16_t port);
|
|
void CloseConnection();
|
|
|
|
bool IsConnected() const { return m_Connexion.GetSocketStatus() == network::Socket::Connected; }
|
|
|
|
void SelectTeam(game::TeamColor team);
|
|
void SendMobs(const std::vector<protocol::MobSend>& mobSends);
|
|
void PlaceTower(game::TowerType type, const Vec2f& position);
|
|
void UpgradeTower(game::TowerID tower, game::TowerLevel level);
|
|
void RemoveTower(game::TowerID tower);
|
|
private:
|
|
void Reset();
|
|
};
|
|
|
|
} // namespace client
|
|
} // namespace td
|