1 /* 2 script/lua_api/l_mapgen.h 3 Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com> 4 */ 5 6 /* 7 This file is part of Freeminer. 8 9 Freeminer is free software: you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation, either version 3 of the License, or 12 (at your option) any later version. 13 14 Freeminer is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with Freeminer. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef L_MAPGEN_H_ 24 #define L_MAPGEN_H_ 25 26 #include "lua_api/l_base.h" 27 28 class INodeDefManager; 29 class NodeResolver; 30 class DecoSimple; 31 class DecoSchematic; 32 33 class ModApiMapgen : public ModApiBase { 34 private: 35 // get_mapgen_object(objectname) 36 // returns the requested object used during map generation 37 static int l_get_mapgen_object(lua_State *L); 38 39 // set_mapgen_params(params) 40 // set mapgen parameters 41 static int l_set_mapgen_params(lua_State *L); 42 43 // set_noiseparam_defaults({np1={noise params}, ...}) 44 static int l_set_noiseparam_defaults(lua_State *L); 45 46 // set_gen_notify(flagstring) 47 static int l_set_gen_notify(lua_State *L); 48 49 // register_biome({lots of stuff}) 50 static int l_register_biome(lua_State *L); 51 52 // register_decoration({lots of stuff}) 53 static int l_register_decoration(lua_State *L); 54 55 // register_ore({lots of stuff}) 56 static int l_register_ore(lua_State *L); 57 58 // create_schematic(p1, p2, probability_list, filename) 59 static int l_create_schematic(lua_State *L); 60 61 // place_schematic(p, schematic, rotation, replacement) 62 static int l_place_schematic(lua_State *L); 63 64 static bool regDecoSimple(lua_State *L, 65 NodeResolver *resolver, DecoSimple *deco); 66 static bool regDecoSchematic(lua_State *L, 67 INodeDefManager *ndef, DecoSchematic *deco); 68 69 static struct EnumString es_BiomeTerrainType[]; 70 static struct EnumString es_DecorationType[]; 71 static struct EnumString es_MapgenObject[]; 72 static struct EnumString es_OreType[]; 73 static struct EnumString es_Rotation[]; 74 75 public: 76 static void Initialize(lua_State *L, int top); 77 }; 78 79 80 81 #endif /* L_MAPGEN_H_ */ 82