Files
Tower-Defense/src/game/client/Client.cpp
2021-09-24 20:44:05 +02:00

56 lines
1.2 KiB
C++

#include "game/client/Client.h"
#include <iostream>
namespace td {
namespace client {
void Client::connect(const network::IPAddresses& addresses, std::uint16_t port) {
for (const network::IPAddress& address : addresses) {
if (address.IsValid() && m_Connexion.connect(address.ToString(), port)) {
m_Connected = true;
break;
}
}
if (!m_Connected) {
std::cout << "Failed to connect !\n";
}
m_Connected = true;
}
void Client::selectTeam(game::TeamColor team) {
if (!m_Connected)
return;
protocol::SelectTeamPacket packet(team);
m_Connexion.sendPacket(&packet);
}
void Client::closeConnection() {
if (!m_Connected)
return;
m_Connected = false;
protocol::DisconnectPacket packet;
m_Connexion.sendPacket(&packet);
}
void Client::tick(std::uint64_t delta) {
if (!m_Connected)
return;
m_Connected = m_Connexion.updateSocket();
if (!m_Connected) {
std::cout << "Disconnected ! (Reason : " << m_Connexion.getDisconnectReason() << ")\n";
} else {
m_Game.tick(delta);
}
}
void Client::render() {
m_Game.renderWorld();
}
} // namespace client
} // namespace td