Fix #51
This commit is contained in:
parent
55cc6d793d
commit
f00a790cb5
@ -1523,18 +1523,20 @@ void WorldServer::updateTileEntityTiles(TileEntityPtr const& entity, bool removi
|
|||||||
if (tile) {
|
if (tile) {
|
||||||
tile->rootSource = {};
|
tile->rootSource = {};
|
||||||
bool updatedTile = false;
|
bool updatedTile = false;
|
||||||
|
bool updatedCollision = false;
|
||||||
if (tile->foreground == materialSpace.material) {
|
if (tile->foreground == materialSpace.material) {
|
||||||
if (!isRealMaterial(tile->foreground))// if the world is old the materialSpace's collision may still be in the tile
|
// if the world is old, the materialSpace's collision may still be in the tile
|
||||||
tile->updateCollision(CollisionKind::None);
|
|
||||||
tile->foreground = EmptyMaterialId;
|
tile->foreground = EmptyMaterialId;
|
||||||
tile->foregroundMod = NoModId;
|
tile->foregroundMod = NoModId;
|
||||||
updatedTile = true;
|
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_liquidEngine->visitLocation(pos);
|
||||||
m_fallingBlocksAgent->visitLocation(pos);
|
m_fallingBlocksAgent->visitLocation(pos);
|
||||||
dirtyCollision(RectI::withSize(pos, { 1, 1 }));
|
dirtyCollision(RectI::withSize(pos, { 1, 1 }));
|
||||||
updatedTile = true;
|
|
||||||
}
|
}
|
||||||
if (updatedTile)
|
if (updatedTile)
|
||||||
queueTileUpdates(pos);
|
queueTileUpdates(pos);
|
||||||
|
Loading…
Reference in New Issue
Block a user