From a6ca7eb29dcd729cf4ac6f1446b5b3e8589b3872 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Thu, 29 Mar 2012 01:22:08 +0300 Subject: Area-based MapEditEvent ignore and that put to use for on_generate too --- src/map.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/map.h') diff --git a/src/map.h b/src/map.h index b84e123e4..0940b8413 100644 --- a/src/map.h +++ b/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::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 -- cgit v1.2.3