Add core.register_schematic() and cache schematics on use
[oweals/minetest.git] / src / script / lua_api / l_mapgen.h
index d14471a08f62e266e3e5a643aa0063e12201ed2f..2ad436e7771106c04afa72f8788fc4a91d42dc22 100644 (file)
@@ -22,9 +22,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "lua_api/l_base.h"
 
-class NodeResolver;
+class INodeDefManager;
+struct NodeResolveInfo;
 class DecoSimple;
 class DecoSchematic;
+class SchematicManager;
 
 class ModApiMapgen : public ModApiBase {
 private:
@@ -32,12 +34,16 @@ private:
        // returns the requested object used during map generation
        static int l_get_mapgen_object(lua_State *L);
 
+       // get_mapgen_params()
+       // returns the currently active map generation parameter set
+       static int l_get_mapgen_params(lua_State *L);
+
        // set_mapgen_params(params)
        // set mapgen parameters
        static int l_set_mapgen_params(lua_State *L);
 
-       // set_noiseparam_defaults({np1={noise params}, ...})
-       static int l_set_noiseparam_defaults(lua_State *L);
+       // set_noiseparam_defaults(name, noiseparams, set_default)
+       static int l_set_noiseparams(lua_State *L);
 
        // set_gen_notify(flagstring)
        static int l_set_gen_notify(lua_State *L);
@@ -51,6 +57,27 @@ private:
        // register_ore({lots of stuff})
        static int l_register_ore(lua_State *L);
 
+       // register_schematic({schematic}, replacements={})
+       static int l_register_schematic(lua_State *L);
+
+       // clear_registered_biomes()
+       static int l_clear_registered_biomes(lua_State *L);
+
+       // clear_registered_decorations()
+       static int l_clear_registered_decorations(lua_State *L);
+
+       // clear_registered_schematics()
+       static int l_clear_registered_schematics(lua_State *L);
+
+       // generate_ores(vm, p1, p2)
+       static int l_generate_ores(lua_State *L);
+
+       // generate_decorations(vm, p1, p2)
+       static int l_generate_decorations(lua_State *L);
+
+       // clear_registered_ores
+       static int l_clear_registered_ores(lua_State *L);
+
        // create_schematic(p1, p2, probability_list, filename)
        static int l_create_schematic(lua_State *L);
 
@@ -58,9 +85,9 @@ private:
        static int l_place_schematic(lua_State *L);
 
        static bool regDecoSimple(lua_State *L,
-                       NodeResolver *resolver, DecoSimple *deco);
+                       NodeResolveInfo *nri, DecoSimple *deco);
        static bool regDecoSchematic(lua_State *L,
-                       NodeResolver *resolver, DecoSchematic *deco);
+               SchematicManager *schemmgr, DecoSchematic *deco);
 
        static struct EnumString es_BiomeTerrainType[];
        static struct EnumString es_DecorationType[];
@@ -72,6 +99,4 @@ public:
        static void Initialize(lua_State *L, int top);
 };
 
-
-
 #endif /* L_MAPGEN_H_ */