mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add minetest.get_mapgen_edges
(#12999)
This commit is contained in:
parent
e84d259ec7
commit
b3ffc4b327
6 changed files with 103 additions and 17 deletions
|
@ -110,3 +110,40 @@ local function test_game_info()
|
|||
assert(info.title == game_conf:get("title"))
|
||||
end
|
||||
unittests.register("test_game_info", test_game_info)
|
||||
|
||||
local function test_mapgen_edges(cb)
|
||||
-- Test that the map can extend to the expected edges and no further.
|
||||
local min_edge, max_edge = minetest.get_mapgen_edges()
|
||||
local min_finished = {}
|
||||
local max_finished = {}
|
||||
local function finish()
|
||||
if #min_finished ~= 1 then
|
||||
return cb("Expected 1 block to emerge around mapgen minimum edge")
|
||||
end
|
||||
if min_finished[1] ~= (min_edge / minetest.MAP_BLOCKSIZE):floor() then
|
||||
return cb("Expected block within minimum edge to emerge")
|
||||
end
|
||||
if #max_finished ~= 1 then
|
||||
return cb("Expected 1 block to emerge around mapgen maximum edge")
|
||||
end
|
||||
if max_finished[1] ~= (max_edge / minetest.MAP_BLOCKSIZE):floor() then
|
||||
return cb("Expected block within maximum edge to emerge")
|
||||
end
|
||||
return cb()
|
||||
end
|
||||
local emerges_left = 2
|
||||
local function emerge_block(blockpos, action, blocks_left, finished)
|
||||
if action ~= minetest.EMERGE_CANCELLED then
|
||||
table.insert(finished, blockpos)
|
||||
end
|
||||
if blocks_left == 0 then
|
||||
emerges_left = emerges_left - 1
|
||||
if emerges_left == 0 then
|
||||
return finish()
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.emerge_area(min_edge:subtract(1), min_edge, emerge_block, min_finished)
|
||||
minetest.emerge_area(max_edge, max_edge:add(1), emerge_block, max_finished)
|
||||
end
|
||||
unittests.register("test_mapgen_edges", test_mapgen_edges, {map=true, async=true})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue