diff options
Diffstat (limited to 'src/script')
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 27 | ||||
-rw-r--r-- | src/script/lua_api/l_mapgen.h | 4 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index ccbe9a4b0..5bd49e386 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -1006,6 +1006,32 @@ int ModApiMapgen::l_get_gen_notify(lua_State *L) } +// get_decoration_id(decoration_name) +// returns the decoration ID as used in gennotify +int ModApiMapgen::l_get_decoration_id(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + + const char *deco_str = luaL_checkstring(L, 1); + if (!deco_str) + return 0; + + DecorationManager *dmgr = getServer(L)->getEmergeManager()->decomgr; + + if (!dmgr) + return 0; + + Decoration *deco = (Decoration *)dmgr->getByName(deco_str); + + if (!deco) + return 0; + + lua_pushinteger(L, deco->index); + + return 1; +} + + // register_biome({lots of stuff}) int ModApiMapgen::l_register_biome(lua_State *L) { @@ -1696,6 +1722,7 @@ void ModApiMapgen::Initialize(lua_State *L, int top) API_FCT(get_noiseparams); API_FCT(set_gen_notify); API_FCT(get_gen_notify); + API_FCT(get_decoration_id); API_FCT(register_biome); API_FCT(register_decoration); diff --git a/src/script/lua_api/l_mapgen.h b/src/script/lua_api/l_mapgen.h index 44073620b..713069633 100644 --- a/src/script/lua_api/l_mapgen.h +++ b/src/script/lua_api/l_mapgen.h @@ -76,6 +76,10 @@ private: // get_gen_notify() static int l_get_gen_notify(lua_State *L); + // get_decoration_id(decoration_name) + // returns the decoration ID as used in gennotify + static int l_get_decoration_id(lua_State *L); + // register_biome({lots of stuff}) static int l_register_biome(lua_State *L); |