aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/LiquidTileStatic.cpp
diff options
context:
space:
mode:
authorLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
committerLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
commit42aec6dac53dffa6afe072560a7e1d4986112538 (patch)
tree0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.World/LiquidTileStatic.cpp
parentc9d58eeac7c72f0b3038e084667b4d89a6249fce (diff)
parentef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff)
Merge branch 'main' into pr/win64-world-saves
# Conflicts: # Minecraft.Client/MinecraftServer.cpp # README.md
Diffstat (limited to 'Minecraft.World/LiquidTileStatic.cpp')
-rw-r--r--Minecraft.World/LiquidTileStatic.cpp60
1 files changed, 29 insertions, 31 deletions
diff --git a/Minecraft.World/LiquidTileStatic.cpp b/Minecraft.World/LiquidTileStatic.cpp
index 1d82d3dd..46018093 100644
--- a/Minecraft.World/LiquidTileStatic.cpp
+++ b/Minecraft.World/LiquidTileStatic.cpp
@@ -5,8 +5,8 @@
LiquidTileStatic::LiquidTileStatic(int id, Material *material) : LiquidTile(id, material)
{
- setTicking(false);
- if (material == Material::lava) setTicking(true);
+ setTicking(false);
+ if (material == Material::lava) setTicking(true);
}
bool LiquidTileStatic::isPathfindable(LevelSource *level, int x, int y, int z)
@@ -16,53 +16,50 @@ bool LiquidTileStatic::isPathfindable(LevelSource *level, int x, int y, int z)
void LiquidTileStatic::neighborChanged(Level *level, int x, int y, int z, int type)
{
- LiquidTile::neighborChanged(level, x, y, z, type);
- if (level->getTile(x, y, z) == id)
+ LiquidTile::neighborChanged(level, x, y, z, type);
+ if (level->getTile(x, y, z) == id)
{
- setDynamic(level, x, y, z);
- }
+ setDynamic(level, x, y, z);
+ }
}
void LiquidTileStatic::setDynamic(Level *level, int x, int y, int z)
{
- int d = level->getData(x, y, z);
- level->noNeighborUpdate = true;
- level->setTileAndDataNoUpdate(x, y, z, id - 1, d);
- level->setTilesDirty(x, y, z, x, y, z);
- level->addToTickNextTick(x, y, z, id - 1, getTickDelay());
- level->noNeighborUpdate = false;
+ int d = level->getData(x, y, z);
+ level->setTileAndData(x, y, z, id - 1, d, Tile::UPDATE_CLIENTS);
+ level->addToTickNextTick(x, y, z, id - 1, getTickDelay(level));
}
void LiquidTileStatic::tick(Level *level, int x, int y, int z, Random *random)
{
- if (material == Material::lava)
+ if (material == Material::lava)
{
- int h = random->nextInt(3);
- for (int i = 0; i < h; i++)
+ int h = random->nextInt(3);
+ for (int i = 0; i < h; i++)
{
- x += random->nextInt(3) - 1;
- y++;
- z += random->nextInt(3) - 1;
- int t = level->getTile(x, y, z);
- if (t == 0)
+ x += random->nextInt(3) - 1;
+ y++;
+ z += random->nextInt(3) - 1;
+ int t = level->getTile(x, y, z);
+ if (t == 0)
{
- if (isFlammable(level, x - 1, y, z) ||
+ if (isFlammable(level, x - 1, y, z) ||
isFlammable(level, x + 1, y, z) ||
isFlammable(level, x, y, z - 1) ||
isFlammable(level, x, y, z + 1) ||
isFlammable(level, x, y - 1, z) ||
isFlammable(level, x, y + 1, z))
{
- level->setTile(x, y, z, Tile::fire_Id);
- return;
- }
- }
+ level->setTileAndUpdate(x, y, z, Tile::fire_Id);
+ return;
+ }
+ }
else if (Tile::tiles[t]->material->blocksMotion())
{
- return;
- }
+ return;
+ }
- }
+ }
if (h == 0)
{
int ox = x;
@@ -71,12 +68,13 @@ void LiquidTileStatic::tick(Level *level, int x, int y, int z, Random *random)
{
x = ox + random->nextInt(3) - 1;
z = oz + random->nextInt(3) - 1;
- if (level->isEmptyTile(x, y + 1, z) && isFlammable(level, x, y, z)) {
- level->setTile(x, y + 1, z, Tile::fire_Id);
+ if (level->isEmptyTile(x, y + 1, z) && isFlammable(level, x, y, z))
+ {
+ level->setTileAndUpdate(x, y + 1, z, Tile::fire_Id);
}
}
}
- }
+ }
}
bool LiquidTileStatic::isFlammable(Level *level, int x, int y, int z)