diff options
author | paramat <paramat@users.noreply.github.com> | 2018-03-09 23:16:23 +0000 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2018-03-11 23:06:17 +0000 |
commit | 7ad6cdd09b55197a25f9af34ad807813eab6247b (patch) | |
tree | 08ee5c4a7fe31172eee7459e31ad97c3fb4c656d /src | |
parent | a09a994417a6971313296aa31ef9090636058822 (diff) | |
download | minetest-7ad6cdd09b55197a25f9af34ad807813eab6247b.tar.gz minetest-7ad6cdd09b55197a25f9af34ad807813eab6247b.tar.bz2 minetest-7ad6cdd09b55197a25f9af34ad807813eab6247b.zip |
Biome API: Add 'get_biome_name(biome_id)' API
Change name of default biome to a more suitable lowercase 'default'.
Diffstat (limited to 'src')
-rw-r--r-- | src/mapgen/mg_biome.cpp | 2 | ||||
-rw-r--r-- | src/script/lua_api/l_mapgen.cpp | 22 | ||||
-rw-r--r-- | src/script/lua_api/l_mapgen.h | 4 |
3 files changed, 25 insertions, 3 deletions
diff --git a/src/mapgen/mg_biome.cpp b/src/mapgen/mg_biome.cpp index 38017ea9d..376f2d448 100644 --- a/src/mapgen/mg_biome.cpp +++ b/src/mapgen/mg_biome.cpp @@ -40,7 +40,7 @@ BiomeManager::BiomeManager(Server *server) : // Create default biome to be used in case none exist Biome *b = new Biome; - b->name = "Default"; + b->name = "default"; b->flags = 0; b->depth_top = 0; b->depth_filler = -MAX_MAP_GENERATION_LIMIT; 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); |