diff options
Diffstat (limited to 'source/game/StarNetPackets.cpp')
-rw-r--r-- | source/game/StarNetPackets.cpp | 20 |
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( |