* beds7b6fae96d5
* boats3832de08f7
* bucket1d9f32295a
* cartsdcbca916cf
* creativeca09e77370
* doorsa89ab0454d
* farming00e4b3cb89
* fire4e5f7ad553
* stairsc3a5af6c45
* tnt8195861f90
* woolde642a08e8
241 lines
6.3 KiB
Lua
241 lines
6.3 KiB
Lua
-- what mapgen are we using
|
|
local mg_name = minetest.get_mapgen_setting("mg_name")
|
|
|
|
-- temp vars
|
|
local tmp1, tmp2, tmp3
|
|
|
|
-- decoration function
|
|
local function register_plant(name, min, max, spawnon, spawnby, num, rarety)
|
|
|
|
-- do not place on mapgen if no value given (or not true)
|
|
if not rarety then
|
|
return
|
|
end
|
|
|
|
-- set rarety value or default to farming.rarety if not a number
|
|
rarety = tonumber(rarety) or farming.rarety
|
|
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = spawnon or {"default:dirt_with_grass"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = rarety,
|
|
spread = {x = 120, y = 120, z = 120},
|
|
seed = 329,
|
|
octaves = 2,
|
|
persist = 0.6
|
|
},
|
|
y_min = min,
|
|
y_max = max,
|
|
decoration = "farming:" .. name,
|
|
spawn_by = spawnby,
|
|
num_spawn_by = num
|
|
})
|
|
end
|
|
|
|
|
|
-- add crops to mapgen
|
|
register_plant("potato_3", 1, 80, nil, "", -1, farming.potato)
|
|
register_plant("tomato_7", 5, 40, nil, "", -1, farming.tomato)
|
|
register_plant("corn_7", 1, 42, nil, "", -1, farming.corn)
|
|
register_plant("raspberry_4", 3, 20, nil, "", -1, farming.raspberry)
|
|
register_plant("rhubarb_3", 3, 25, nil, "", -1, farming.rhubarb)
|
|
register_plant("blueberry_4", 3, 20, nil, "", -1, farming.blueberry)
|
|
register_plant("beanbush", 1, 65, nil, "", -1, farming.beans)
|
|
register_plant("grapebush", 2, 85, nil, "", -1, farming.grapes)
|
|
register_plant("onion_5", 5, 42, nil, "", -1, farming.onion)
|
|
register_plant("garlic_5", 3, 60, nil, "group:tree", 1, farming.garlic)
|
|
register_plant("pea_5", 5, 100, nil, "", -1, farming.peas)
|
|
register_plant("beetroot_5", 1, 25, nil, "", -1, farming.beetroot)
|
|
register_plant("cabbage_6", 2, 20, nil, "", -1, farming.cabbage)
|
|
register_plant("lettuce_5", 5, 60, nil, "", -1, farming.lettuce)
|
|
register_plant("blackberry_4", 3, 20, nil, "", -1, farming.blackberry)
|
|
register_plant("vanilla_7", 5, 65, nil, "", -1, farming.vanilla)
|
|
register_plant("parsley_3", 1, 80, nil, "", -1, farming.parsley)
|
|
register_plant("sunflower_8", 1, 80, nil, "", -1, farming.sunflower)
|
|
register_plant("mint_4", 1, 145, {
|
|
"default:dirt_with_grass", "default:dirt_with_coniferous_litter"},
|
|
"group:water", 1, farming.mint)
|
|
|
|
|
|
-- v6 mapgen compatibility for specific crops
|
|
if mg_name == "v6" then
|
|
|
|
register_plant("carrot_8", 1, 60, nil, "group:water", 1, farming.carrot)
|
|
register_plant("cucumber_4", 1, 40, nil, "group:water", 1, farming.cucumber)
|
|
register_plant("melon_8", 1, 40, nil, "group:water", 1, farming.melon)
|
|
register_plant("pumpkin_8", 1, 40, nil, "group:water", 1, farming.pumpkin)
|
|
register_plant("coffee_5", 10, 85, nil, "", -1, farming.coffee)
|
|
register_plant("soy_6", 10, 100, nil, "", -1, farming.soy)
|
|
else
|
|
-- v7 maps have a beach so plants growing near water is limited to 6 high
|
|
register_plant("carrot_8", 1, 25, nil, "", -1, farming.carrot)
|
|
register_plant("cucumber_4", 1, 20, nil, "", -1, farming.cucumber)
|
|
register_plant("melon_8", 1, 12, {"default:dirt_with_dry_grass",
|
|
"default:dirt_with_rainforest_litter"}, "", -1, farming.melon)
|
|
register_plant("pumpkin_8", 1, 12, nil, "", -1, farming.pumpkin)
|
|
register_plant("coffee_5", 10, 85, {"default:dirt_with_dry_grass",
|
|
"default:dirt_with_rainforest_litter",
|
|
"default:dry_dirt_with_dry_grass"}, "", -1, farming.coffee)
|
|
register_plant("soy_6", 10, 100, {"default:dirt_with_dry_grass",
|
|
"default:dirt_with_rainforest_litter",
|
|
"default:dry_dirt_with_dry_grass"}, "", -1, farming.soy)
|
|
end
|
|
|
|
|
|
if farming.hemp then
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = tonumber(farming.hemp) or farming.rarety,
|
|
spread = {x = 110, y = 110, z = 110},
|
|
seed = 420,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
y_min = 3,
|
|
y_max = 45,
|
|
decoration = "farming:hemp_7",
|
|
spawn_by = "group:tree",
|
|
num_spawn_by = 1
|
|
})
|
|
end
|
|
|
|
|
|
if farming.chili then
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = tonumber(farming.chili) or farming.rarety,
|
|
spread = {x = 110, y = 110, z = 110},
|
|
seed = 760,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
y_min = 5,
|
|
y_max = 35,
|
|
decoration = {"farming:chili_8"},
|
|
spawn_by = "group:tree",
|
|
num_spawn_by = 1
|
|
})
|
|
end
|
|
|
|
|
|
if farming.artichoke then
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = {"default:dirt_with_grass"},
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = tonumber(farming.artichoke) or farming.rarety,
|
|
spread = {x = 110, y = 110, z = 110},
|
|
seed = 448,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
y_min = 1,
|
|
y_max = 13,
|
|
decoration = {"farming:artichoke_5"},
|
|
spawn_by = "group:tree",
|
|
num_spawn_by = 1,
|
|
})
|
|
end
|
|
|
|
|
|
if farming.pepper then
|
|
|
|
local tmp1 = {"default:dirt_with_rainforest_litter"} -- v7
|
|
|
|
if mg_name == "v6" then
|
|
tmp1 = {"default:dirt_with_grass"} -- v6
|
|
end
|
|
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = tmp1,
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = tonumber(farming.pepper) or farming.rarety,
|
|
spread = {x = 100, y = 100, z = 100},
|
|
seed = 933,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
y_min = 5,
|
|
y_max = 35,
|
|
decoration = {"farming:pepper_5", "farming:pepper_6", "farming:pepper_7"},
|
|
spawn_by = "group:tree",
|
|
num_spawn_by = 1
|
|
})
|
|
end
|
|
|
|
|
|
if farming.pineapple then
|
|
|
|
tmp1 = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"}
|
|
tmp2 = nil
|
|
tmp3 = -1
|
|
|
|
if mg_name == "v6" then
|
|
tmp1 = {"default:dirt_with_grass"}
|
|
tmp2 = "default:desert_sand"
|
|
tmp3 = 1
|
|
end
|
|
|
|
minetest.register_decoration({
|
|
deco_type = "simple",
|
|
place_on = tmp1,
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = 0,
|
|
scale = tonumber(farming.pineapple) or farming.rarety,
|
|
spread = {x = 70, y = 70, z = 70},
|
|
seed = 917,
|
|
octaves = 3,
|
|
persist = 0.6
|
|
},
|
|
y_min = 8,
|
|
y_max = 30,
|
|
decoration = {"farming:pineapple_8"},
|
|
spawn_by = tmp2,
|
|
num_spawn_by = tmp3
|
|
})
|
|
end
|
|
|
|
tmp1 = {"default:dry_dirt_with_dry_grass"}
|
|
tmp2 = {"savanna"}
|
|
|
|
if mg_name == "v6" then
|
|
tmp1 = {"default:dirt_with_grass"}
|
|
tmp2 = {"jungle"}
|
|
end
|
|
|
|
minetest.register_decoration({
|
|
name = "farming:cotton_wild",
|
|
deco_type = "simple",
|
|
place_on = tmp1,
|
|
sidelen = 16,
|
|
noise_params = {
|
|
offset = -0.1,
|
|
scale = 0.1,
|
|
spread = {x = 150, y = 150, z = 150},
|
|
seed = 4242,
|
|
octaves = 4,
|
|
persist = 0.7
|
|
},
|
|
biomes = tmp2,
|
|
y_max = 31000,
|
|
y_min = 1,
|
|
decoration = "farming:cotton_wild"
|
|
})
|