@@ -1047,6 +1047,30 @@ int ModApiEnvMod::l_raycast(lua_State *L)
1047
1047
return LuaRaycast::create_object (L);
1048
1048
}
1049
1049
1050
+ // load_area(p1, [p2])
1051
+ // load mapblocks in area p1..p2, but do not generate map
1052
+ int ModApiEnvMod::l_load_area (lua_State *L)
1053
+ {
1054
+ GET_ENV_PTR;
1055
+ MAP_LOCK_REQUIRED;
1056
+
1057
+ Map *map = &(env->getMap ());
1058
+ v3s16 bp1 = getNodeBlockPos (check_v3s16 (L, 1 ));
1059
+ if (!lua_istable (L, 2 )) {
1060
+ map->emergeBlock (bp1);
1061
+ } else {
1062
+ v3s16 bp2 = getNodeBlockPos (check_v3s16 (L, 2 ));
1063
+ sortBoxVerticies (bp1, bp2);
1064
+ for (s16 z = bp1.Z ; z <= bp2.Z ; z++)
1065
+ for (s16 y = bp1.Y ; y <= bp2.Y ; y++)
1066
+ for (s16 x = bp1.X ; x <= bp2.X ; x++) {
1067
+ map->emergeBlock (v3s16 (x, y, z));
1068
+ }
1069
+ }
1070
+
1071
+ return 0 ;
1072
+ }
1073
+
1050
1074
// emerge_area(p1, p2, [callback, context])
1051
1075
// emerge mapblocks in area p1..p2, calls callback with context upon completion
1052
1076
int ModApiEnvMod::l_emerge_area (lua_State *L)
@@ -1287,6 +1311,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top)
1287
1311
API_FCT (find_nodes_in_area);
1288
1312
API_FCT (find_nodes_in_area_under_air);
1289
1313
API_FCT (fix_light);
1314
+ API_FCT (load_area);
1290
1315
API_FCT (emerge_area);
1291
1316
API_FCT (delete_area);
1292
1317
API_FCT (get_perlin);
0 commit comments