forked from VoxeLibre/VoxeLibre
Merge pull request 'village_schema_fixes' (#2989) from village_schema_fixes into master
Reviewed-on: MineClone2/MineClone2#2989
This commit is contained in:
commit
20e78099d7
|
@ -52,16 +52,16 @@ schem_path = settlements.modpath.."/schematics/"
|
||||||
local basic_pseudobiome_villages = minetest.settings:get_bool("basic_pseudobiome_villages", true)
|
local basic_pseudobiome_villages = minetest.settings:get_bool("basic_pseudobiome_villages", true)
|
||||||
|
|
||||||
settlements.schematic_table = {
|
settlements.schematic_table = {
|
||||||
{name = "large_house", mts = schem_path.."large_house.mts", hwidth = 11, hdepth = 12, hheight = 9, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
{name = "large_house", mts = schem_path.."large_house.mts", hwidth = 12, hdepth = 12, hheight = 9, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "blacksmith", mts = schem_path.."blacksmith.mts", hwidth = 7, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.055, rplc = basic_pseudobiome_villages },
|
{name = "blacksmith", mts = schem_path.."blacksmith.mts", hwidth = 8, hdepth = 11, hheight = 13, hsize = 13, max_num = 0.055, rplc = basic_pseudobiome_villages },
|
||||||
{name = "butcher", mts = schem_path.."butcher.mts", hwidth = 11, hdepth = 8, hheight = 10, hsize = 14, max_num = 0.03 , rplc = basic_pseudobiome_villages },
|
{name = "butcher", mts = schem_path.."butcher.mts", hwidth = 12, hdepth = 8, hheight = 10, hsize = 14, max_num = 0.03 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "church", mts = schem_path.."church.mts", hwidth = 13, hdepth = 13, hheight = 14, hsize = 15, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
{name = "church", mts = schem_path.."church.mts", hwidth = 13, hdepth = 13, hheight = 14, hsize = 15, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "farm", mts = schem_path.."farm.mts", hwidth = 7, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.1 , rplc = basic_pseudobiome_villages },
|
{name = "farm", mts = schem_path.."farm.mts", hwidth = 9, hdepth = 7, hheight = 13, hsize = 13, max_num = 0.1 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "lamp", mts = schem_path.."lamp.mts", hwidth = 3, hdepth = 3, hheight = 13, hsize = 10, max_num = 0.1 , rplc = false },
|
{name = "lamp", mts = schem_path.."lamp.mts", hwidth = 3, hdepth = 4, hheight = 13, hsize = 10, max_num = 0.1 , rplc = false },
|
||||||
{name = "library", mts = schem_path.."library.mts", hwidth = 12, hdepth = 12, hheight = 8, hsize = 13, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
{name = "library", mts = schem_path.."library.mts", hwidth = 12, hdepth = 12, hheight = 8, hsize = 13, max_num = 0.04 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "medium_house", mts = schem_path.."medium_house.mts", hwidth = 8, hdepth = 12, hheight = 8, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
{name = "medium_house", mts = schem_path.."medium_house.mts", hwidth = 9, hdepth = 12, hheight = 8, hsize = 14, max_num = 0.08 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "small_house", mts = schem_path.."small_house.mts", hwidth = 9, hdepth = 7, hheight = 8, hsize = 13, max_num = 0.7 , rplc = basic_pseudobiome_villages },
|
{name = "small_house", mts = schem_path.."small_house.mts", hwidth = 9, hdepth = 8, hheight = 8, hsize = 13, max_num = 0.7 , rplc = basic_pseudobiome_villages },
|
||||||
{name = "tavern", mts = schem_path.."tavern.mts", hwidth = 11, hdepth = 10, hheight = 10, hsize = 13, max_num = 0.050, rplc = basic_pseudobiome_villages },
|
{name = "tavern", mts = schem_path.."tavern.mts", hwidth = 12, hdepth = 10, hheight = 10, hsize = 13, max_num = 0.050, rplc = basic_pseudobiome_villages },
|
||||||
{name = "well", mts = schem_path.."well.mts", hwidth = 6, hdepth = 8, hheight = 6, hsize = 10, max_num = 0.045, rplc = basic_pseudobiome_villages },
|
{name = "well", mts = schem_path.."well.mts", hwidth = 6, hdepth = 8, hheight = 6, hsize = 10, max_num = 0.045, rplc = basic_pseudobiome_villages },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,35 @@
|
||||||
|
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
|
||||||
|
if not platform_material then
|
||||||
mat = "mcl_core:stone"
|
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
|
||||||
end
|
end
|
||||||
|
@ -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
|
||||||
--
|
--
|
||||||
|
@ -48,7 +72,8 @@ function settlements.terraform(settlement_info, pr)
|
||||||
for yi = 0,fheight *3 do
|
for yi = 0,fheight *3 do
|
||||||
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}
|
||||||
settlements.ground(p, pr)
|
-- Pass in biome info and make foundations of same material (seed: apple for desert)
|
||||||
|
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}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue