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

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldTiles.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/StarWorldTiles.cpp')
-rw-r--r--source/game/StarWorldTiles.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/source/game/StarWorldTiles.cpp b/source/game/StarWorldTiles.cpp
index 20ced8d..826bfbb 100644
--- a/source/game/StarWorldTiles.cpp
+++ b/source/game/StarWorldTiles.cpp
@@ -26,7 +26,7 @@ bool WorldTile::isColliding(CollisionSet const& collisionSet) const {
VersionNumber const ServerTile::CurrentSerializationVersion = 418;
-ServerTile::ServerTile() {}
+ServerTile::ServerTile() : objectCollision(CollisionKind::None) {}
ServerTile::ServerTile(ServerTile const& serverTile) : WorldTile() {
*this = serverTile;
@@ -37,7 +37,7 @@ ServerTile& ServerTile::operator=(ServerTile const& serverTile) {
liquid = serverTile.liquid;
rootSource = serverTile.rootSource;
-
+ objectCollision = serverTile.objectCollision;
return *this;
}
@@ -109,6 +109,25 @@ bool ServerTile::updateCollision(CollisionKind kind) {
return false;
}
+bool ServerTile::updateObjectCollision(CollisionKind kind) {
+ if (objectCollision != kind) {
+ objectCollision = kind;
+ collisionCacheDirty = true;
+ collisionCache.clear();
+ return true;
+ }
+ return false;
+}
+
+CollisionKind ServerTile::getCollision() const {
+ CollisionKind kind = collision;
+ if (objectCollision != CollisionKind::None
+ && (objectCollision != CollisionKind::Platform || kind == CollisionKind::None)) {
+ kind = objectCollision;
+ }
+ return kind;
+}
+
PredictedTile::operator bool() const {
return
background