feat: implement basic tower placement

This commit is contained in:
2021-09-19 13:43:45 +02:00
parent bcde4278ab
commit 52a143769e
17 changed files with 318 additions and 52 deletions

View File

@@ -26,6 +26,8 @@ static std::map<PacketType, PacketCreator> packets = {
{PacketType::Disconnect, []() -> Packet* {return new DisconnectPacket(); } },
{PacketType::ServerTps, []() -> Packet* {return new ServerTpsPacket(); } },
{PacketType::SpawnMob, []() -> Packet* {return new SpawnMobPacket(); } },
{PacketType::PlaceTower, []() -> Packet* {return new PlaceTowerPacket(); } },
{PacketType::WorldAddTower, []() -> Packet* {return new WorldAddTowerPacket(); } },
};
Packet* createPacket(PacketType type, DataBuffer& buffer){

View File

@@ -391,6 +391,26 @@ void SpawnMobPacket::Deserialize(DataBuffer& data){
>> m_Sender >> m_MobX >> m_MobY;
}
DataBuffer PlaceTowerPacket::Serialize() const{
DataBuffer data;
data << getID() << m_TowerX << m_TowerY << m_TowerType;
return data;
}
void PlaceTowerPacket::Deserialize(DataBuffer& data){
data >> m_TowerX >> m_TowerY >> m_TowerType;
}
DataBuffer WorldAddTowerPacket::Serialize() const{
DataBuffer data;
data << getID() << m_TowerX << m_TowerY << m_TowerType << m_Builder;
return data;
}
void WorldAddTowerPacket::Deserialize(DataBuffer& data){
data >> m_TowerX >> m_TowerY >> m_TowerType >> m_Builder;
}
REGISTER_DISPATCH_CLASS(PlayerLoginPacket);
REGISTER_DISPATCH_CLASS(WorldBeginDataPacket);
REGISTER_DISPATCH_CLASS(WorldDataPacket);
@@ -408,6 +428,8 @@ REGISTER_DISPATCH_CLASS(UpdatePlayerTeamPacket);
REGISTER_DISPATCH_CLASS(DisconnectPacket);
REGISTER_DISPATCH_CLASS(ServerTpsPacket);
REGISTER_DISPATCH_CLASS(SpawnMobPacket);
REGISTER_DISPATCH_CLASS(PlaceTowerPacket);
REGISTER_DISPATCH_CLASS(WorldAddTowerPacket);
} // namespace protocol
} // namespace td