diff options
| author | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
|---|---|---|
| committer | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
| commit | 42aec6dac53dffa6afe072560a7e1d4986112538 (patch) | |
| tree | 0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.World/TorchTile.cpp | |
| parent | c9d58eeac7c72f0b3038e084667b4d89a6249fce (diff) | |
| parent | ef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff) | |
Merge branch 'main' into pr/win64-world-saves
# Conflicts:
# Minecraft.Client/MinecraftServer.cpp
# README.md
Diffstat (limited to 'Minecraft.World/TorchTile.cpp')
| -rw-r--r-- | Minecraft.World/TorchTile.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/Minecraft.World/TorchTile.cpp b/Minecraft.World/TorchTile.cpp index ea1d2ab7..cc377574 100644 --- a/Minecraft.World/TorchTile.cpp +++ b/Minecraft.World/TorchTile.cpp @@ -133,23 +133,23 @@ void TorchTile::onPlace(Level *level, int x, int y, int z) { if (level->isSolidBlockingTileInLoadedChunk(x - 1, y, z, true)) { - level->setData(x, y, z, 1); + level->setData(x, y, z, 1, Tile::UPDATE_CLIENTS); } else if (level->isSolidBlockingTileInLoadedChunk(x + 1, y, z, true)) { - level->setData(x, y, z, 2); + level->setData(x, y, z, 2, Tile::UPDATE_CLIENTS); } else if (level->isSolidBlockingTileInLoadedChunk(x, y, z - 1, true)) { - level->setData(x, y, z, 3); + level->setData(x, y, z, 3, Tile::UPDATE_CLIENTS); } else if (level->isSolidBlockingTileInLoadedChunk(x, y, z + 1, true)) { - level->setData(x, y, z, 4); + level->setData(x, y, z, 4, Tile::UPDATE_CLIENTS); } else if (isConnection(level, x, y - 1, z)) { - level->setData(x, y, z, 5); + level->setData(x, y, z, 5, Tile::UPDATE_CLIENTS); } } checkCanSurvive(level, x, y, z); @@ -157,6 +157,11 @@ void TorchTile::onPlace(Level *level, int x, int y, int z) void TorchTile::neighborChanged(Level *level, int x, int y, int z, int type) { + checkDoPop(level, x, y, z, type); +} + +bool TorchTile::checkDoPop(Level *level, int x, int y, int z, int type) +{ if (checkCanSurvive(level, x, y, z)) { int dir = level->getData(x, y, z); @@ -170,10 +175,16 @@ void TorchTile::neighborChanged(Level *level, int x, int y, int z, int type) if (replace) { - this->spawnResources(level, x, y, z, level->getData(x, y, z), 0); - level->setTile(x, y, z, 0); + spawnResources(level, x, y, z, level->getData(x, y, z), 0); + level->removeTile(x, y, z); + return true; } } + else + { + return true; + } + return false; } bool TorchTile::checkCanSurvive(Level *level, int x, int y, int z) @@ -183,7 +194,7 @@ bool TorchTile::checkCanSurvive(Level *level, int x, int y, int z) if (level->getTile(x, y, z) == id) { this->spawnResources(level, x, y, z, level->getData(x, y, z), 0); - level->setTile(x, y, z, 0); + level->removeTile(x, y, z); } return false; } |
