fix: fences turn grass into dirt

problem: the game used is solid and it was wrong because blocks like fences or walls are also flagged as solit blocks because their material.
This commit is contained in:
Lord_Cambion 2026-05-25 18:34:32 +02:00
parent 4003a8e548
commit f904fb1972

View file

@ -121,8 +121,14 @@ void GrassTile::tick(Level *level, int x, int y, int z, Random *random)
}
}
// using isSolid() here is wrong because non full blocks like iron bars,
// fences, walls are also flagged as solid by their material
int aboveTileId = level->getTile(x, y + 1, z);
Material* above = level->getMaterial(x, y + 1, z);
if (above->isSolid() || above->isLiquid()) level->setTileAndUpdate(x, y, z, Tile::dirt_Id);
if (above->isLiquid() || Tile::lightBlock[aboveTileId] > 2)
{
level->setTileAndUpdate(x, y, z, Tile::dirt_Id);
}
}
int GrassTile::getResource(int data, Random *random, int playerBonusLevel)