Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarNetPackets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/StarNetPackets.cpp')
-rw-r--r--source/game/StarNetPackets.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/source/game/StarNetPackets.cpp b/source/game/StarNetPackets.cpp
index 2e64eee..dfe3ff1 100644
--- a/source/game/StarNetPackets.cpp
+++ b/source/game/StarNetPackets.cpp
@@ -75,7 +75,9 @@ EnumMap<PacketType> const PacketTypeNames{
{PacketType::SystemObjectDestroy, "SystemObjectDestroy"},
{PacketType::SystemShipCreate, "SystemShipCreate"},
{PacketType::SystemShipDestroy, "SystemShipDestroy"},
- {PacketType::SystemObjectSpawn, "SystemObjectSpawn"}
+ {PacketType::SystemObjectSpawn, "SystemObjectSpawn"},
+ // OpenStarbound packets
+ {PacketType::ReplaceTileList, "ReplaceTileList"}
};
EnumMap<NetCompressionMode> const NetCompressionModeNames {
@@ -137,6 +139,7 @@ PacketPtr createPacket(PacketType type) {
case PacketType::FindUniqueEntityResponse: return make_shared<FindUniqueEntityResponsePacket>();
case PacketType::Pong: return make_shared<PongPacket>();
case PacketType::ModifyTileList: return make_shared<ModifyTileListPacket>();
+ case PacketType::ReplaceTileList: return make_shared<ReplaceTileListPacket>();
case PacketType::DamageTileGroup: return make_shared<DamageTileGroupPacket>();
case PacketType::CollectLiquid: return make_shared<CollectLiquidPacket>();
case PacketType::RequestDrop: return make_shared<RequestDropPacket>();
@@ -747,6 +750,21 @@ void ModifyTileListPacket::write(DataStream& ds) const {
ds.write(allowEntityOverlap);
}
+ReplaceTileListPacket::ReplaceTileListPacket() {}
+
+ReplaceTileListPacket::ReplaceTileListPacket(TileModificationList modifications, TileDamage tileDamage)
+ : modifications(modifications), tileDamage(std::move(tileDamage)) {}
+
+void ReplaceTileListPacket::read(DataStream& ds) {
+ ds.readContainer(modifications);
+ ds.read(tileDamage);
+}
+
+void ReplaceTileListPacket::write(DataStream& ds) const {
+ ds.writeContainer(modifications);
+ ds.write(tileDamage);
+}
+
DamageTileGroupPacket::DamageTileGroupPacket() : layer(TileLayer::Foreground) {}
DamageTileGroupPacket::DamageTileGroupPacket(