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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-03-30 14:14:24 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-03-30 14:14:24 +1100
commitf00a790cb58bf87c3b4969d13b701abbcd096d6e (patch)
tree22f1075056bd95aa5cd7a4fb400be7c4b7e64bb0
parent55cc6d793da04e2e5803748fbe339c997bd5f9a1 (diff)
Fix #51
-rw-r--r--source/game/StarWorldServer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/game/StarWorldServer.cpp b/source/game/StarWorldServer.cpp
index 9860fb1..d4f4a63 100644
--- a/source/game/StarWorldServer.cpp
+++ b/source/game/StarWorldServer.cpp
@@ -1523,18 +1523,20 @@ void WorldServer::updateTileEntityTiles(TileEntityPtr const& entity, bool removi
if (tile) {
tile->rootSource = {};
bool updatedTile = false;
+ bool updatedCollision = false;
if (tile->foreground == materialSpace.material) {
- if (!isRealMaterial(tile->foreground))// if the world is old the materialSpace's collision may still be in the tile
- tile->updateCollision(CollisionKind::None);
+ // if the world is old, the materialSpace's collision may still be in the tile
tile->foreground = EmptyMaterialId;
tile->foregroundMod = NoModId;
updatedTile = true;
+ updatedCollision = tile->updateCollision(CollisionKind::None);
}
- if (tile->updateObjectCollision(CollisionKind::None)) {
+ if (tile->updateObjectCollision(CollisionKind::None))
+ updatedTile = updatedCollision = true;
+ if (updatedCollision) {
m_liquidEngine->visitLocation(pos);
m_fallingBlocksAgent->visitLocation(pos);
dirtyCollision(RectI::withSize(pos, { 1, 1 }));
- updatedTile = true;
}
if (updatedTile)
queueTileUpdates(pos);