aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/script')
-rw-r--r--src/script/lua_api/l_mapgen.cpp22
-rw-r--r--src/script/lua_api/l_mapgen.h4
2 files changed, 24 insertions, 2 deletions
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp
index f5c76ec6e..263273cc3 100644
--- a/src/script/lua_api/l_mapgen.cpp
+++ b/src/script/lua_api/l_mapgen.cpp
@@ -476,12 +476,10 @@ int ModApiMapgen::l_get_biome_id(lua_State *L)
return 0;
BiomeManager *bmgr = getServer(L)->getEmergeManager()->biomemgr;
-
if (!bmgr)
return 0;
Biome *biome = (Biome *)bmgr->getByName(biome_str);
-
if (!biome || biome->index == OBJDEF_INVALID_INDEX)
return 0;
@@ -491,6 +489,25 @@ int ModApiMapgen::l_get_biome_id(lua_State *L)
}
+// get_biome_name(biome_id)
+// returns the biome name string
+int ModApiMapgen::l_get_biome_name(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+
+ int biome_id = luaL_checkinteger(L, 1);
+
+ BiomeManager *bmgr = getServer(L)->getEmergeManager()->biomemgr;
+ if (!bmgr)
+ return 0;
+
+ Biome *b = (Biome *)bmgr->getRaw(biome_id);
+ lua_pushstring(L, b->name.c_str());
+
+ return 1;
+}
+
+
// get_heat(pos)
// returns the heat at the position
int ModApiMapgen::l_get_heat(lua_State *L)
@@ -1731,6 +1748,7 @@ int ModApiMapgen::l_serialize_schematic(lua_State *L)
void ModApiMapgen::Initialize(lua_State *L, int top)
{
API_FCT(get_biome_id);
+ API_FCT(get_biome_name);
API_FCT(get_heat);
API_FCT(get_humidity);
API_FCT(get_biome_data);
diff --git a/src/script/lua_api/l_mapgen.h b/src/script/lua_api/l_mapgen.h
index aebbcbac6..1339791f3 100644
--- a/src/script/lua_api/l_mapgen.h
+++ b/src/script/lua_api/l_mapgen.h
@@ -28,6 +28,10 @@ private:
// returns the biome id as used in biomemap and returned by 'get_biome_data()'
static int l_get_biome_id(lua_State *L);
+ // get_biome_name(biome_id)
+ // returns the biome name string
+ static int l_get_biome_name(lua_State *L);
+
// get_heat(pos)
// returns the heat at the position
static int l_get_heat(lua_State *L);