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

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldClient.cpp
diff options
context:
space:
mode:
authorchililisoup <rebot333gaming@gmail.com>2025-03-20 15:48:46 -0600
committerchililisoup <rebot333gaming@gmail.com>2025-03-20 15:48:46 -0600
commit3130381b1c23e42af6fc14e9de951638f5c275b1 (patch)
tree7a0b7696ad29d594a84d76f3a190a26ffed65ba1 /source/game/StarWorldClient.cpp
parent3f761123e939ece5c8805c165dc625756b950f8b (diff)
block swapping
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r--source/game/StarWorldClient.cpp23
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;