@@ -454,6 +454,8 @@ size_t get_biome_list(lua_State *L, int index,
454
454
// returns the biome id used in biomemap
455
455
int ModApiMapgen::l_get_biome_id (lua_State *L)
456
456
{
457
+ NO_MAP_LOCK_REQUIRED;
458
+
457
459
const char *biome_str = lua_tostring (L, 1 );
458
460
if (!biome_str)
459
461
return 0 ;
@@ -463,7 +465,7 @@ int ModApiMapgen::l_get_biome_id(lua_State *L)
463
465
if (!bmgr)
464
466
return 0 ;
465
467
466
- Biome *biome = (Biome *) bmgr->getByName (biome_str);
468
+ Biome *biome = (Biome *)bmgr->getByName (biome_str);
467
469
468
470
if (!biome || biome->index == OBJDEF_INVALID_INDEX)
469
471
return 0 ;
@@ -478,6 +480,8 @@ int ModApiMapgen::l_get_biome_id(lua_State *L)
478
480
// returns the requested object used during map generation
479
481
int ModApiMapgen::l_get_mapgen_object (lua_State *L)
480
482
{
483
+ NO_MAP_LOCK_REQUIRED;
484
+
481
485
const char *mgobjstr = lua_tostring (L, 1 );
482
486
483
487
int mgobjint;
@@ -588,6 +592,8 @@ int ModApiMapgen::l_get_mapgen_object(lua_State *L)
588
592
589
593
int ModApiMapgen::l_get_mapgen_params (lua_State *L)
590
594
{
595
+ NO_MAP_LOCK_REQUIRED;
596
+
591
597
MapgenParams *params = &getServer (L)->getEmergeManager ()->params ;
592
598
593
599
lua_newtable (L);
@@ -616,6 +622,8 @@ int ModApiMapgen::l_get_mapgen_params(lua_State *L)
616
622
// set mapgen parameters
617
623
int ModApiMapgen::l_set_mapgen_params (lua_State *L)
618
624
{
625
+ NO_MAP_LOCK_REQUIRED;
626
+
619
627
if (!lua_istable (L, 1 ))
620
628
return 0 ;
621
629
@@ -664,6 +672,8 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L)
664
672
// set global config values for noise parameters
665
673
int ModApiMapgen::l_set_noiseparams (lua_State *L)
666
674
{
675
+ NO_MAP_LOCK_REQUIRED;
676
+
667
677
const char *name = luaL_checkstring (L, 1 );
668
678
669
679
NoiseParams np;
@@ -681,6 +691,8 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L)
681
691
// get_noiseparams(name)
682
692
int ModApiMapgen::l_get_noiseparams (lua_State *L)
683
693
{
694
+ NO_MAP_LOCK_REQUIRED;
695
+
684
696
std::string name = luaL_checkstring (L, 1 );
685
697
686
698
NoiseParams np;
@@ -695,6 +707,8 @@ int ModApiMapgen::l_get_noiseparams(lua_State *L)
695
707
// set_gen_notify(flags, {deco_id_table})
696
708
int ModApiMapgen::l_set_gen_notify (lua_State *L)
697
709
{
710
+ NO_MAP_LOCK_REQUIRED;
711
+
698
712
u32 flags = 0 , flagmask = 0 ;
699
713
EmergeManager *emerge = getServer (L)->getEmergeManager ();
700
714
@@ -719,6 +733,8 @@ int ModApiMapgen::l_set_gen_notify(lua_State *L)
719
733
// get_gen_notify()
720
734
int ModApiMapgen::l_get_gen_notify (lua_State *L)
721
735
{
736
+ NO_MAP_LOCK_REQUIRED;
737
+
722
738
EmergeManager *emerge = getServer (L)->getEmergeManager ();
723
739
push_flags_string (L, flagdesc_gennotify, emerge->gen_notify_on ,
724
740
emerge->gen_notify_on );
@@ -738,6 +754,8 @@ int ModApiMapgen::l_get_gen_notify(lua_State *L)
738
754
// register_biome({lots of stuff})
739
755
int ModApiMapgen::l_register_biome (lua_State *L)
740
756
{
757
+ NO_MAP_LOCK_REQUIRED;
758
+
741
759
int index = 1 ;
742
760
luaL_checktype (L, index , LUA_TTABLE);
743
761
@@ -762,6 +780,8 @@ int ModApiMapgen::l_register_biome(lua_State *L)
762
780
// register_decoration({lots of stuff})
763
781
int ModApiMapgen::l_register_decoration (lua_State *L)
764
782
{
783
+ NO_MAP_LOCK_REQUIRED;
784
+
765
785
int index = 1 ;
766
786
luaL_checktype (L, index , LUA_TTABLE);
767
787
@@ -902,6 +922,8 @@ bool read_deco_schematic(lua_State *L, SchematicManager *schemmgr, DecoSchematic
902
922
// register_ore({lots of stuff})
903
923
int ModApiMapgen::l_register_ore (lua_State *L)
904
924
{
925
+ NO_MAP_LOCK_REQUIRED;
926
+
905
927
int index = 1 ;
906
928
luaL_checktype (L, index , LUA_TTABLE);
907
929
@@ -1030,6 +1052,8 @@ int ModApiMapgen::l_register_ore(lua_State *L)
1030
1052
// register_schematic({schematic}, replacements={})
1031
1053
int ModApiMapgen::l_register_schematic (lua_State *L)
1032
1054
{
1055
+ NO_MAP_LOCK_REQUIRED;
1056
+
1033
1057
SchematicManager *schemmgr = getServer (L)->getEmergeManager ()->schemmgr ;
1034
1058
1035
1059
StringMap replace_names;
@@ -1055,6 +1079,8 @@ int ModApiMapgen::l_register_schematic(lua_State *L)
1055
1079
// clear_registered_biomes()
1056
1080
int ModApiMapgen::l_clear_registered_biomes (lua_State *L)
1057
1081
{
1082
+ NO_MAP_LOCK_REQUIRED;
1083
+
1058
1084
BiomeManager *bmgr = getServer (L)->getEmergeManager ()->biomemgr ;
1059
1085
bmgr->clear ();
1060
1086
return 0 ;
@@ -1064,6 +1090,8 @@ int ModApiMapgen::l_clear_registered_biomes(lua_State *L)
1064
1090
// clear_registered_decorations()
1065
1091
int ModApiMapgen::l_clear_registered_decorations (lua_State *L)
1066
1092
{
1093
+ NO_MAP_LOCK_REQUIRED;
1094
+
1067
1095
DecorationManager *dmgr = getServer (L)->getEmergeManager ()->decomgr ;
1068
1096
dmgr->clear ();
1069
1097
return 0 ;
@@ -1073,6 +1101,8 @@ int ModApiMapgen::l_clear_registered_decorations(lua_State *L)
1073
1101
// clear_registered_ores()
1074
1102
int ModApiMapgen::l_clear_registered_ores (lua_State *L)
1075
1103
{
1104
+ NO_MAP_LOCK_REQUIRED;
1105
+
1076
1106
OreManager *omgr = getServer (L)->getEmergeManager ()->oremgr ;
1077
1107
omgr->clear ();
1078
1108
return 0 ;
@@ -1082,6 +1112,8 @@ int ModApiMapgen::l_clear_registered_ores(lua_State *L)
1082
1112
// clear_registered_schematics()
1083
1113
int ModApiMapgen::l_clear_registered_schematics (lua_State *L)
1084
1114
{
1115
+ NO_MAP_LOCK_REQUIRED;
1116
+
1085
1117
SchematicManager *smgr = getServer (L)->getEmergeManager ()->schemmgr ;
1086
1118
smgr->clear ();
1087
1119
return 0 ;
@@ -1091,6 +1123,8 @@ int ModApiMapgen::l_clear_registered_schematics(lua_State *L)
1091
1123
// generate_ores(vm, p1, p2, [ore_id])
1092
1124
int ModApiMapgen::l_generate_ores (lua_State *L)
1093
1125
{
1126
+ NO_MAP_LOCK_REQUIRED;
1127
+
1094
1128
EmergeManager *emerge = getServer (L)->getEmergeManager ();
1095
1129
1096
1130
Mapgen mg;
@@ -1115,6 +1149,8 @@ int ModApiMapgen::l_generate_ores(lua_State *L)
1115
1149
// generate_decorations(vm, p1, p2, [deco_id])
1116
1150
int ModApiMapgen::l_generate_decorations (lua_State *L)
1117
1151
{
1152
+ NO_MAP_LOCK_REQUIRED;
1153
+
1118
1154
EmergeManager *emerge = getServer (L)->getEmergeManager ();
1119
1155
1120
1156
Mapgen mg;
@@ -1139,6 +1175,8 @@ int ModApiMapgen::l_generate_decorations(lua_State *L)
1139
1175
// create_schematic(p1, p2, probability_list, filename, y_slice_prob_list)
1140
1176
int ModApiMapgen::l_create_schematic (lua_State *L)
1141
1177
{
1178
+ MAP_LOCK_REQUIRED;
1179
+
1142
1180
INodeDefManager *ndef = getServer (L)->getNodeDefManager ();
1143
1181
1144
1182
const char *filename = luaL_checkstring (L, 4 );
@@ -1202,6 +1240,8 @@ int ModApiMapgen::l_create_schematic(lua_State *L)
1202
1240
// place_schematic(p, schematic, rotation, replacement)
1203
1241
int ModApiMapgen::l_place_schematic (lua_State *L)
1204
1242
{
1243
+ MAP_LOCK_REQUIRED;
1244
+
1205
1245
Map *map = &(getEnv (L)->getMap ());
1206
1246
SchematicManager *schemmgr = getServer (L)->getEmergeManager ()->schemmgr ;
1207
1247
@@ -1240,6 +1280,8 @@ int ModApiMapgen::l_place_schematic(lua_State *L)
1240
1280
// serialize_schematic(schematic, format, options={...})
1241
1281
int ModApiMapgen::l_serialize_schematic (lua_State *L)
1242
1282
{
1283
+ NO_MAP_LOCK_REQUIRED;
1284
+
1243
1285
SchematicManager *schemmgr = getServer (L)->getEmergeManager ()->schemmgr ;
1244
1286
1245
1287
// // Read options
0 commit comments