feat: blockstates

actually this time but might need to make a couple of fixes
This commit is contained in:
Fireblade
2026-05-04 21:26:13 -04:00
parent 0ee913e6e2
commit b750c4bbf4
28 changed files with 564 additions and 12 deletions
+30
View File
@@ -32,6 +32,36 @@ BaseRailTile::Rail::Rail(Level *level, int x, int y, int z)
}
}
void BaseRailTile::createBlockStateDefinition()
{
if (!m_blockStateDefinition)
m_blockStateDefinition = new BlockStateDefinition(this);
}
int BaseRailTile::defaultBlockState()
{
return 0;
}
int BaseRailTile::convertBlockStateToLegacyData(BlockState *state)
{
if (!state) return 0;
int mask = RAIL_DIRECTION_MASK | (usesDataBit ? RAIL_DATA_BIT : 0);
return state->value & mask;
}
Tile::BlockState BaseRailTile::getBlockState(int data)
{
int mask = RAIL_DIRECTION_MASK | (usesDataBit ? RAIL_DATA_BIT : 0);
return Tile::BlockState(data & mask);
}
Tile::BlockState BaseRailTile::getBlockState(LevelSource *level, int x, int y, int z)
{
int mask = RAIL_DIRECTION_MASK | (usesDataBit ? RAIL_DATA_BIT : 0);
return Tile::BlockState(level->getData(x, y, z) & mask);
}
BaseRailTile::Rail::~Rail()
{
for( size_t i = 0; i < connections.size(); i++ )