summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_mapgen.cpp
diff options
context:
space:
mode:
authorparamat <paramat@users.noreply.github.com>2018-03-02 21:27:59 +0000
committerparamat <mat.gregory@virginmedia.com>2018-03-03 23:00:08 +0000
commit48493a979b4300d96ba17e2ef3a881641323f43e (patch)
tree975bc269a36a11dea11f1db02718076178880ff8 /src/script/lua_api/l_mapgen.cpp
parent07622bf9b49830aae2a5e12b5616471da6a8b19a (diff)
downloadminetest-48493a979b4300d96ba17e2ef3a881641323f43e.tar.gz
minetest-48493a979b4300d96ba17e2ef3a881641323f43e.tar.bz2
minetest-48493a979b4300d96ba17e2ef3a881641323f43e.zip
Gennotify: Add 'minetest.get_decoration_id' API
Returns the decoration ID for the provided decoration name string. For use with gennotify, to know the decoration IDs for use in 'minetest.set_gen_notify'.
Diffstat (limited to 'src/script/lua_api/l_mapgen.cpp')
-rw-r--r--src/script/lua_api/l_mapgen.cpp27
1 files changed, 27 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);