summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-01-15 16:20:05 -0500
committerkwolekr <kwolekr@minetest.net>2015-01-15 16:48:56 -0500
commit9736548720a96c9c7f739edb0435d9ba4ad80652 (patch)
tree3f92b63d017e9baac042ed3837bbdf040d40c73f /src/map.cpp
parent0330cec7ec55126c9cc441373cde1253bed895ee (diff)
downloadminetest-9736548720a96c9c7f739edb0435d9ba4ad80652.tar.gz
minetest-9736548720a96c9c7f739edb0435d9ba4ad80652.tar.bz2
minetest-9736548720a96c9c7f739edb0435d9ba4ad80652.zip
Add ability to delete MapBlocks from map
Also add a Lua API and chatcommand for this
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 48585a170..fdc35558d 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -3588,6 +3588,23 @@ MapBlock* ServerMap::loadBlock(v3s16 blockpos)
return getBlockNoCreateNoEx(blockpos);
}
+bool ServerMap::deleteBlock(v3s16 blockpos)
+{
+ if (!dbase->deleteBlock(blockpos))
+ return false;
+
+ MapBlock *block = getBlockNoCreateNoEx(blockpos);
+ if (block) {
+ v2s16 p2d(blockpos.X, blockpos.Z);
+ MapSector *sector = getSectorNoGenerateNoEx(p2d);
+ if (!sector)
+ return false;
+ sector->deleteBlock(block);
+ }
+
+ return true;
+}
+
void ServerMap::PrintInfo(std::ostream &out)
{
out<<"ServerMap: ";