Generate village filler in code, not by schematic
This commit is contained in:
parent
1d9e7a44ae
commit
59d48a9d88
@ -307,6 +307,31 @@ function village.lift_ground(pos, scanheight)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local HILL_W, HILL_H = 24, 6
|
||||||
|
|
||||||
|
function village.generate_hill(pos)
|
||||||
|
local dirts = {}
|
||||||
|
local dirts_with_grass = {}
|
||||||
|
for y=0,HILL_H-1 do
|
||||||
|
for z=y,HILL_W-1-y do
|
||||||
|
for x=y,HILL_W-1-y do
|
||||||
|
local p = {x=pos.x+x, y=pos.y+y, z=pos.z+z}
|
||||||
|
local n = minetest.get_node(p)
|
||||||
|
local def = minetest.registered_nodes[n.name]
|
||||||
|
if n.name == "air" or (def and (def.liquidtype ~= "none" or (def.walkable == false and def.is_ground_content == true))) then
|
||||||
|
if (y == HILL_H-1 or z == y or x == y or z == HILL_W-1-y or x == HILL_W-1-y) and (p.y >= water_level) then
|
||||||
|
table.insert(dirts_with_grass, p)
|
||||||
|
else
|
||||||
|
table.insert(dirts, p)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.bulk_set_node(dirts, {name="default:dirt"})
|
||||||
|
minetest.bulk_set_node(dirts_with_grass, {name="default:dirt_with_grass"})
|
||||||
|
end
|
||||||
|
|
||||||
local function check_empty(pos)
|
local function check_empty(pos)
|
||||||
local min = { x = pos.x, y = pos.y + 1, z = pos.z }
|
local min = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||||
local max = { x = pos.x+12, y = pos.y+12, z = pos.z+12 }
|
local max = { x = pos.x+12, y = pos.y+12, z = pos.z+12 }
|
||||||
@ -328,13 +353,7 @@ function village.spawn_chunk(pos, state, orient, replace, pr, chunktype, nofill,
|
|||||||
util.getvoxelmanip(pos, {x = pos.x+12, y = pos.y+12, z = pos.z+12})
|
util.getvoxelmanip(pos, {x = pos.x+12, y = pos.y+12, z = pos.z+12})
|
||||||
|
|
||||||
if nofill ~= true then
|
if nofill ~= true then
|
||||||
minetest.place_schematic(
|
village.generate_hill({x=pos.x-6, y=pos.y-5, z=pos.z-6})
|
||||||
{x = pos.x-6, y = pos.y-5, z = pos.z-6},
|
|
||||||
modpath .. "/schematics/village_filler.mts",
|
|
||||||
"0",
|
|
||||||
{},
|
|
||||||
false
|
|
||||||
)
|
|
||||||
|
|
||||||
local py = pos.y-6
|
local py = pos.y-6
|
||||||
if py < water_level then
|
if py < water_level then
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user