diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index cc5b9bf8..24978ffb 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -1860,7 +1860,13 @@ function default.register_decorations() -- Emergent jungle tree -- Due to 32 node height, altitude is limited and prescence depends on chunksize - local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) + local chunksize + if core.get_mapgen_chunksize then + local v = core.get_mapgen_chunksize() + chunksize = math.max(v.x, v.y, v.z) + else + chunksize = tonumber(core.get_mapgen_setting("chunksize")) + end if chunksize >= 5 then minetest.register_decoration({ name = "default:emergent_jungle_tree", diff --git a/mods/spawn/init.lua b/mods/spawn/init.lua index b439997f..9cad5f93 100644 --- a/mods/spawn/init.lua +++ b/mods/spawn/init.lua @@ -66,15 +66,6 @@ local success = false local spawn_pos = {} --- Get world 'mapgen_limit' and 'chunksize' to calculate 'spawn_limit'. --- This accounts for how mapchunks are not generated if they or their shell exceed --- 'mapgen_limit'. - -local mapgen_limit = tonumber(minetest.get_mapgen_setting("mapgen_limit")) -local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) -local spawn_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0) - - -- Functions ------------ @@ -103,6 +94,7 @@ end -- Spawn position search local function search() + local edge1, edge2 = core.get_mapgen_edges() for iter = 1, checks do local biome_data = minetest.get_biome_data(pos) -- Sometimes biome_data is nil @@ -116,7 +108,7 @@ local function search() pos = next_pos() -- Check for position being outside world edge - if math.abs(pos.x) > spawn_limit or math.abs(pos.z) > spawn_limit then + if pos.x < edge1.x or pos.z < edge1.z or pos.x > edge2.x or pos.z > edge2.z then return false end end