mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Area-based MapEditEvent ignore and that put to use for on_generate too
This commit is contained in:
parent
02c035c548
commit
a6ca7eb29d
3 changed files with 82 additions and 8 deletions
32
src/map.h
32
src/map.h
|
@ -98,6 +98,38 @@ struct MapEditEvent
|
|||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
VoxelArea getArea()
|
||||
{
|
||||
switch(type){
|
||||
case MEET_ADDNODE:
|
||||
return VoxelArea(p);
|
||||
case MEET_REMOVENODE:
|
||||
return VoxelArea(p);
|
||||
case MEET_BLOCK_NODE_METADATA_CHANGED:
|
||||
{
|
||||
v3s16 np1 = p*MAP_BLOCKSIZE;
|
||||
v3s16 np2 = np1 + v3s16(1,1,1)*MAP_BLOCKSIZE - v3s16(1,1,1);
|
||||
return VoxelArea(np1, np2);
|
||||
}
|
||||
case MEET_OTHER:
|
||||
{
|
||||
VoxelArea a;
|
||||
for(core::map<v3s16, bool>::Iterator
|
||||
i = modified_blocks.getIterator();
|
||||
i.atEnd()==false; i++)
|
||||
{
|
||||
v3s16 p = i.getNode()->getKey();
|
||||
v3s16 np1 = p*MAP_BLOCKSIZE;
|
||||
v3s16 np2 = np1 + v3s16(1,1,1)*MAP_BLOCKSIZE - v3s16(1,1,1);
|
||||
a.addPoint(np1);
|
||||
a.addPoint(np2);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
return VoxelArea();
|
||||
}
|
||||
};
|
||||
|
||||
class MapEventReceiver
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue