* mode = `"quick"`: Clear objects immediately in loaded mapblocks,
clear objects in unloaded mapblocks only when the
mapblocks are next activated.
+* `minetest.load_area(pos1[, pos2])`
+ * Load the mapblocks containing the area from `pos1` to `pos2`.
+ `pos2` defaults to `pos1` if not specified.
+ * This function does not trigger map generation.
* `minetest.emerge_area(pos1, pos2, [callback], [param])`
* Queue all blocks in the area from `pos1` to `pos2`, inclusive, to be
asynchronously fetched from memory, loaded from disk, or if inexistent,
return LuaRaycast::create_object(L);
}
+// load_area(p1, [p2])
+// load mapblocks in area p1..p2, but do not generate map
+int ModApiEnvMod::l_load_area(lua_State *L)
+{
+ GET_ENV_PTR;
+ MAP_LOCK_REQUIRED;
+
+ Map *map = &(env->getMap());
+ v3s16 bp1 = getNodeBlockPos(check_v3s16(L, 1));
+ if (!lua_istable(L, 2)) {
+ map->emergeBlock(bp1);
+ } else {
+ v3s16 bp2 = getNodeBlockPos(check_v3s16(L, 2));
+ sortBoxVerticies(bp1, bp2);
+ for (s16 z = bp1.Z; z <= bp2.Z; z++)
+ for (s16 y = bp1.Y; y <= bp2.Y; y++)
+ for (s16 x = bp1.X; x <= bp2.X; x++) {
+ map->emergeBlock(v3s16(x, y, z));
+ }
+ }
+
+ return 0;
+}
+
// emerge_area(p1, p2, [callback, context])
// emerge mapblocks in area p1..p2, calls callback with context upon completion
int ModApiEnvMod::l_emerge_area(lua_State *L)
API_FCT(find_nodes_in_area);
API_FCT(find_nodes_in_area_under_air);
API_FCT(fix_light);
+ API_FCT(load_area);
API_FCT(emerge_area);
API_FCT(delete_area);
API_FCT(get_perlin);
// fix_light(p1, p2) -> true/false
static int l_fix_light(lua_State *L);
+ // load_area(p1)
+ static int l_load_area(lua_State *L);
+
// emerge_area(p1, p2)
static int l_emerge_area(lua_State *L);