1
0
Fork 0
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:
Jude Melton-Houghton 2022-12-03 10:40:46 -05:00 committed by GitHub
parent e84d259ec7
commit b3ffc4b327
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 103 additions and 17 deletions

View file

@ -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})