diff options
author | chililisoup <rebot333gaming@gmail.com> | 2025-03-20 15:48:46 -0600 |
---|---|---|
committer | chililisoup <rebot333gaming@gmail.com> | 2025-03-20 15:48:46 -0600 |
commit | 3130381b1c23e42af6fc14e9de951638f5c275b1 (patch) | |
tree | 7a0b7696ad29d594a84d76f3a190a26ffed65ba1 /source/game/StarWorldClient.cpp | |
parent | 3f761123e939ece5c8805c165dc625756b950f8b (diff) |
block swapping
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r-- | source/game/StarWorldClient.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/game/StarWorldClient.cpp b/source/game/StarWorldClient.cpp index 82c09ae..79c3817 100644 --- a/source/game/StarWorldClient.cpp +++ b/source/game/StarWorldClient.cpp @@ -375,6 +375,29 @@ TileModificationList WorldClient::applyTileModifications(TileModificationList co return failures; } +TileModificationList WorldClient::replaceTiles(TileModificationList const& modificationList) { + if (!inWorld()) + return {}; + + TileModificationList success, failures; + for (auto pair : modificationList) { + if (!isTileProtected(pair.first) && WorldImpl::validateTileReplacement(pair.first, pair.second)) + success.append(pair); + else + failures.append(pair); + } + + m_outgoingPackets.append(make_shared<ReplaceTileListPacket>(std::move(success))); + + return failures; +} + +bool WorldClient::damageWouldDestroy(Vec2I const& pos, TileLayer layer, TileDamage const& tileDamage) const { + if (!inWorld()) + return false; + return WorldImpl::damageWouldDestroy(m_tileArray, pos, layer, tileDamage); +} + float WorldClient::gravity(Vec2F const& pos) const { if (!inWorld()) return 0.0f; |