diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-30 14:14:24 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-30 14:14:24 +1100 |
commit | f00a790cb58bf87c3b4969d13b701abbcd096d6e (patch) | |
tree | 22f1075056bd95aa5cd7a4fb400be7c4b7e64bb0 | |
parent | 55cc6d793da04e2e5803748fbe339c997bd5f9a1 (diff) |
Fix #51
-rw-r--r-- | source/game/StarWorldServer.cpp | 10 |
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); |