From 199378feda5c248bcdf4626ce882670fe99a56cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20C?= Date: Sun, 18 Feb 2024 18:40:41 +0100 Subject: [PATCH] Adapted to new mapgen thread feature --- src/script/lua_api/l_mapgen.cpp | 46 ++++++++++++++------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index a671e92f4eb8d..4afe058afeb91 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -1568,10 +1568,9 @@ int ModApiMapgen::l_generate_ores(lua_State *L) mg.vm = checkObject(L, 1)->vm; mg.ndef = emerge->ndef; - Mapgen *mg_current = emerge->getCurrentMapgen(); - if (mg_current && mg_current->biomegen && - mg_current->biomegen->getType() == BIOMEGEN_ORIGINAL) - mg.biomemap = mg_current->biomegen->biomemap; + auto *bgen = getBiomeGen(L); + if (bgen) + mg.biomemap = bgen->biomemap; v3s16 pmin = lua_istable(L, 2) ? check_v3s16(L, 2) : mg.vm->m_area.MinEdge + v3s16(1,1,1) * MAP_BLOCKSIZE; @@ -1608,10 +1607,9 @@ int ModApiMapgen::l_generate_decorations(lua_State *L) mg.vm = checkObject(L, 1)->vm; mg.ndef = emerge->ndef; - Mapgen *mg_current = emerge->getCurrentMapgen(); - if (mg_current && mg_current->biomegen && - mg_current->biomegen->getType() == BIOMEGEN_ORIGINAL) - mg.biomemap = mg_current->biomegen->biomemap; + auto *bgen = getBiomeGen(L); + if (bgen && bgen->getType() == BIOMEGEN_ORIGINAL) + mg.biomemap = bgen->biomemap; v3s16 pmin = lua_istable(L, 2) ? check_v3s16(L, 2) : mg.vm->m_area.MinEdge + v3s16(1,1,1) * MAP_BLOCKSIZE; @@ -1632,16 +1630,13 @@ int ModApiMapgen::l_generate_biomes(lua_State *L) { NO_MAP_LOCK_REQUIRED; - EmergeManager *emerge = getServer(L)->getEmergeManager(); - if (!emerge) + auto *mg_current = getMapgen(L); + auto *bgen = getBiomeGen(L); + if (!mg_current || !bgen || + bgen->getType() != BIOMEGEN_ORIGINAL) return 0; - Mapgen *mg_current = emerge->getCurrentMapgen(); - if (!mg_current || !mg_current->biomegen || - mg_current->biomegen->getType() != BIOMEGEN_ORIGINAL) - return 0; - - const NodeDefManager *ndef = getServer(L)->getNodeDefManager(); + const NodeDefManager *ndef = mg_current->ndef; MapgenBasic mg; @@ -1652,7 +1647,7 @@ int ModApiMapgen::l_generate_biomes(lua_State *L) mg.vm = checkObject(L, 1)->vm; mg.ndef = ndef; mg.biomegen = mg_current->biomegen; - mg.biomemap = mg_current->biomegen->biomemap; + mg.biomemap = bgen->biomemap; mg.water_level = mg_current->water_level; v3s16 pmin = lua_istable(L, 2) ? check_v3s16(L, 2) : @@ -1694,16 +1689,13 @@ int ModApiMapgen::l_generate_biome_dust(lua_State *L) { NO_MAP_LOCK_REQUIRED; - EmergeManager *emerge = getServer(L)->getEmergeManager(); - if (!emerge) - return 0; - - Mapgen *mg_current = emerge->getCurrentMapgen(); - if (!mg_current || !mg_current->biomegen || - mg_current->biomegen->getType() != BIOMEGEN_ORIGINAL) + auto *mg_current = getMapgen(L); + auto *bgen = getBiomeGen(L); + if (!mg_current || !bgen || + bgen->getType() != BIOMEGEN_ORIGINAL) return 0; - const NodeDefManager *ndef = getServer(L)->getNodeDefManager(); + const NodeDefManager *ndef = mg_current->ndef; MapgenBasic mg; @@ -1711,7 +1703,7 @@ int ModApiMapgen::l_generate_biome_dust(lua_State *L) mg.m_bmgr = mg_current->m_emerge->biomemgr; mg.ndef = ndef; mg.biomegen = mg_current->biomegen; - mg.biomemap = mg_current->biomegen->biomemap; + mg.biomemap = bgen->biomemap; mg.water_level = mg_current->water_level; v3s16 pmin = lua_istable(L, 2) ? check_v3s16(L, 2) : @@ -2194,6 +2186,8 @@ void ModApiMapgen::InitializeEmerge(lua_State *L, int top) API_FCT(generate_ores); API_FCT(generate_decorations); + API_FCT(generate_biomes); + API_FCT(generate_biome_dust); API_FCT(place_schematic_on_vmanip); API_FCT(spawn_tree_on_vmanip); API_FCT(serialize_schematic);