Fix village building foundation material for desert

This commit is contained in:
ancientmarinerdev 2022-11-29 01:58:02 +00:00
parent b33b87b9dd
commit 89f5d41366
1 changed files with 27 additions and 3 deletions

View File

@ -1,16 +1,34 @@
local function mcl_log (message)
mcl_util.mcl_log (message, "[Village - Foundation]")
end
local foundation_materials = {}
foundation_materials["mcl_core:sand"] = "mcl_core:sandstone"
--"mcl_core:sandstonecarved"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- function to fill empty space below baseplate when building on a hill -- function to fill empty space below baseplate when building on a hill
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
function settlements.ground(pos, pr) -- role model: Wendelsteinkircherl, Brannenburg function settlements.ground(pos, pr, platform_material) -- role model: Wendelsteinkircherl, Brannenburg
local p2 = vector.new(pos) local p2 = vector.new(pos)
local cnt = 0 local cnt = 0
local mat = "mcl_core:dirt" local mat = "mcl_core:dirt"
if not platform_material then
mat = "mcl_core:dirt"
else
mat = platform_material
end
p2.y = p2.y-1 p2.y = p2.y-1
while true do while true do
cnt = cnt+1 cnt = cnt+1
if cnt > 20 then break end if cnt > 20 then break end
if cnt>pr:next(2,4) then if cnt>pr:next(2,4) then
mat = "mcl_core:stone" if not platform_material then
mat = "mcl_core:stone"
end
end end
minetest.swap_node(p2, {name=mat}) minetest.swap_node(p2, {name=mat})
p2.y = p2.y-1 p2.y = p2.y-1
@ -40,6 +58,12 @@ function settlements.terraform(settlement_info, pr)
end end
--fheight = schematic_data["hheight"] * 3 -- remove trees and leaves above --fheight = schematic_data["hheight"] * 3 -- remove trees and leaves above
fheight = schematic_data["hheight"] -- remove trees and leaves above fheight = schematic_data["hheight"] -- remove trees and leaves above
local surface_mat = settlement_info[i]["surface_mat"]
mcl_log("Surface material: " .. tostring(surface_mat))
local platform_mat = foundation_materials[surface_mat]
mcl_log("Foundation material: " .. tostring(platform_mat))
-- --
-- now that every info is available -> create platform and clear space above -- now that every info is available -> create platform and clear space above
-- --
@ -49,7 +73,7 @@ function settlements.terraform(settlement_info, pr)
if yi == 0 then if yi == 0 then
local p = {x=pos.x+xi, y=pos.y, z=pos.z+zi} local p = {x=pos.x+xi, y=pos.y, z=pos.z+zi}
-- Pass in biome info and make foundations of same material (seed: apple for desert) -- Pass in biome info and make foundations of same material (seed: apple for desert)
settlements.ground(p, pr) settlements.ground(p, pr, platform_mat)
else else
-- write ground -- write ground
-- local p = {x=pos.x+xi, y=pos.y+yi, z=pos.z+zi} -- local p = {x=pos.x+xi, y=pos.y+yi, z=pos.z+zi}