1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

start blocks out a expanded block (not monoblocks)

This commit is contained in:
Lars 2025-06-21 14:11:55 -07:00
parent 1ad31ef10b
commit 2144d9c20b
2 changed files with 9 additions and 5 deletions

View file

@ -104,9 +104,9 @@ MapBlock::MapBlock(v3s16 pos, IGameDef *gamedef):
m_pos(pos), m_pos(pos),
m_pos_relative(pos * MAP_BLOCKSIZE), m_pos_relative(pos * MAP_BLOCKSIZE),
m_gamedef(gamedef), m_gamedef(gamedef),
m_is_mono_block(true) m_is_mono_block(false)
{ {
reallocate(1, MapNode(CONTENT_IGNORE)); reallocate(nodecount, MapNode(CONTENT_IGNORE));
} }
MapBlock::~MapBlock() MapBlock::~MapBlock()

View file

@ -57,21 +57,25 @@ void TestMapBlock::runTests(IGameDef *gamedef)
void TestMapBlock::testMonoblock(IGameDef *gamedef) void TestMapBlock::testMonoblock(IGameDef *gamedef)
{ {
MapBlock block({}, gamedef); MapBlock block({}, gamedef);
UASSERT(block.m_is_mono_block); UASSERT(!block.m_is_mono_block);
block.data[0] = MapNode(CONTENT_AIR);
// make the array is expanded // make the array is expanded
block.expandNodesIfNeeded(); block.expandNodesIfNeeded();
UASSERT(std::all_of(block.data, block.data + MapBlock::nodecount, [](MapNode &n) { return n == MapNode(CONTENT_AIR); })); UASSERT(std::all_of(block.data, block.data + MapBlock::nodecount, [](MapNode &n) { return n == MapNode(CONTENT_IGNORE); }));
// covert to monoblock // covert to monoblock
block.tryShrinkNodes(); block.tryShrinkNodes();
UASSERT(block.m_is_mono_block); UASSERT(block.m_is_mono_block);
UASSERT(block.data[0].param0 == CONTENT_IGNORE);
block.data[0] = MapNode(CONTENT_AIR);
UASSERT(block.m_is_mono_block);
UASSERT(block.data[0].param0 == CONTENT_AIR); UASSERT(block.data[0].param0 == CONTENT_AIR);
// get the data(), should deconvert the block // get the data(), should deconvert the block
block.getData(); block.getData();
UASSERT(!block.m_is_mono_block); UASSERT(!block.m_is_mono_block);
UASSERT(std::all_of(block.data, block.data + MapBlock::nodecount, [](MapNode &n) { return n == MapNode(CONTENT_AIR); }));
// covert back to mono block // covert back to mono block
block.tryShrinkNodes(); block.tryShrinkNodes();