feat: implement basic tower placement
This commit is contained in:
@@ -33,6 +33,8 @@ public:
|
||||
virtual void HandlePacket(DisconnectPacket* packet){}
|
||||
virtual void HandlePacket(ServerTpsPacket* packet){}
|
||||
virtual void HandlePacket(SpawnMobPacket* packet){}
|
||||
virtual void HandlePacket(PlaceTowerPacket* packet){}
|
||||
virtual void HandlePacket(WorldAddTowerPacket* packet){}
|
||||
};
|
||||
|
||||
} // namespace protocol
|
||||
|
||||
@@ -28,6 +28,8 @@ enum class PacketType : std::uint8_t{
|
||||
UpdatePlayerTeam,
|
||||
ServerTps,
|
||||
SpawnMob,
|
||||
PlaceTower,
|
||||
WorldAddTower
|
||||
};
|
||||
|
||||
class Packet{
|
||||
@@ -380,5 +382,49 @@ public:
|
||||
virtual PacketType getType() const{ return PacketType::SpawnMob; }
|
||||
};
|
||||
|
||||
class PlaceTowerPacket : public Packet{
|
||||
private:
|
||||
std::int32_t m_TowerX, m_TowerY;
|
||||
game::TowerType m_TowerType;
|
||||
public:
|
||||
PlaceTowerPacket(){}
|
||||
PlaceTowerPacket(std::int32_t x, std::int32_t y, game::TowerType type) :
|
||||
m_TowerX(x), m_TowerY(y), m_TowerType(type){}
|
||||
virtual ~PlaceTowerPacket(){}
|
||||
|
||||
virtual DataBuffer Serialize() const;
|
||||
virtual void Deserialize(DataBuffer& data);
|
||||
virtual void Dispatch(PacketHandler* handler);
|
||||
|
||||
std::int32_t getTowerX() const { return m_TowerX; }
|
||||
std::int32_t getTowerY() const { return m_TowerY; }
|
||||
game::TowerType getTowerType() const { return m_TowerType; }
|
||||
|
||||
virtual PacketType getType() const{ return PacketType::PlaceTower; }
|
||||
};
|
||||
|
||||
class WorldAddTowerPacket : public Packet{
|
||||
private:
|
||||
std::int32_t m_TowerX, m_TowerY;
|
||||
game::TowerType m_TowerType;
|
||||
game::PlayerID m_Builder;
|
||||
public:
|
||||
WorldAddTowerPacket(){}
|
||||
WorldAddTowerPacket(std::int32_t x, std::int32_t y, game::TowerType type, game::PlayerID player) :
|
||||
m_TowerX(x), m_TowerY(y), m_TowerType(type), m_Builder(player){}
|
||||
virtual ~WorldAddTowerPacket(){}
|
||||
|
||||
virtual DataBuffer Serialize() const;
|
||||
virtual void Deserialize(DataBuffer& data);
|
||||
virtual void Dispatch(PacketHandler* handler);
|
||||
|
||||
std::int32_t getTowerX() const { return m_TowerX; }
|
||||
std::int32_t getTowerY() const { return m_TowerY; }
|
||||
game::TowerType getTowerType() const { return m_TowerType; }
|
||||
game::PlayerID getBuilder() const {return m_Builder;}
|
||||
|
||||
virtual PacketType getType() const{ return PacketType::WorldAddTower; }
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user