mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Spawn level: Add 'get_spawn_level(x, z)' API
Returns a suitable player spawn y co-ordinate for unmodified terrain.
This commit is contained in:
parent
473d81f2e2
commit
644d0ab2bb
3 changed files with 34 additions and 0 deletions
|
@ -757,6 +757,27 @@ int ModApiMapgen::l_get_mapgen_object(lua_State *L)
|
|||
}
|
||||
|
||||
|
||||
// get_spawn_level(x = num, z = num)
|
||||
int ModApiMapgen::l_get_spawn_level(lua_State *L)
|
||||
{
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
|
||||
s16 x = luaL_checkinteger(L, 1);
|
||||
s16 z = luaL_checkinteger(L, 2);
|
||||
|
||||
EmergeManager *emerge = getServer(L)->getEmergeManager();
|
||||
int spawn_level = emerge->getSpawnLevelAtPoint(v2s16(x, z));
|
||||
// Unsuitable spawn point
|
||||
if (spawn_level == MAX_MAP_GENERATION_LIMIT)
|
||||
return 0;
|
||||
|
||||
// 'findSpawnPos()' in server.cpp adds at least 1
|
||||
lua_pushinteger(L, spawn_level + 1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int ModApiMapgen::l_get_mapgen_params(lua_State *L)
|
||||
{
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
|
@ -1714,6 +1735,7 @@ void ModApiMapgen::Initialize(lua_State *L, int top)
|
|||
API_FCT(get_humidity);
|
||||
API_FCT(get_biome_data);
|
||||
API_FCT(get_mapgen_object);
|
||||
API_FCT(get_spawn_level);
|
||||
|
||||
API_FCT(get_mapgen_params);
|
||||
API_FCT(set_mapgen_params);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue