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

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldClient.cpp
diff options
context:
space:
mode:
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;