Generate giant mushrooms with 1/12 chance

This commit is contained in:
Wuzzy 2017-09-08 22:46:30 +02:00
parent 6d7ef151be
commit c3278d679d
3 changed files with 67 additions and 11 deletions

@ -24,7 +24,6 @@ end
local function register_biomes() local function register_biomes()
--[[ OVERWORLD ]] --[[ OVERWORLD ]]
-- Ice spikes -- Ice spikes
minetest.register_biome({ minetest.register_biome({
name = "ice_plains_spike", name = "ice_plains_spike",
@ -1597,61 +1596,118 @@ local function register_decorations()
}) })
local ratio_mushroom = 0.0001
local ratio_mushroom_huge = ratio_mushroom * (11/12)
local ratio_mushroom_giant = ratio_mushroom * (1/12)
local ratio_mushroom_mycelium = 0.002
local ratio_mushroom_mycelium_huge = ratio_mushroom_mycelium * (11/12)
local ratio_mushroom_mycelium_giant = ratio_mushroom_mycelium * (1/12)
-- Huge Brown Mushroom -- Huge Brown Mushroom
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" }, place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" },
sidelen = 80, sidelen = 80,
fill_ratio = 0.0001, fill_ratio = ratio_mushroom_huge,
-- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom) -- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom)
biomes = { "forest" }, biomes = { "forest" },
y_min = mcl_vars.mg_overworld_min, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_brown.mts", schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_brown.mts",
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
rotation = "random", rotation = "random",
}) })
minetest.register_decoration({
deco_type = "schematic",
place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" },
sidelen = 80,
fill_ratio = ratio_mushroom_giant,
-- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom)
biomes = { "forest" },
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_giant_brown.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = { "mcl_core:mycelium" }, place_on = { "mcl_core:mycelium" },
sidelen = 80, sidelen = 80,
fill_ratio = 0.002, fill_ratio = ratio_mushroom_mycelium_huge,
biomes = { "mushroom_island", "mushroom_island_shore" }, biomes = { "mushroom_island", "mushroom_island_shore" },
y_min = mcl_vars.mg_overworld_min, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_brown.mts", schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_brown.mts",
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
rotation = "random", rotation = "random",
}) })
minetest.register_decoration({
deco_type = "schematic",
place_on = { "mcl_core:mycelium" },
sidelen = 80,
fill_ratio = ratio_mushroom_mycelium_giant,
biomes = { "mushroom_island", "mushroom_island_shore" },
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_giant_brown.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
-- Huge Red Mushroom -- Huge Red Mushroom
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" }, place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" },
sidelen = 50, sidelen = 80,
fill_ratio = 0.0001, fill_ratio = ratio_mushroom_huge,
-- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom) -- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom)
biomes = { "forest" }, biomes = { "forest" },
y_min = mcl_vars.mg_overworld_min, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_red.mts", schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_red.mts",
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
rotation = "random", rotation = "random",
}) })
minetest.register_decoration({
deco_type = "schematic",
place_on = { "mcl_core:dirt_with_grass", "mcl_core:dirt" },
sidelen = 80,
fill_ratio = ratio_mushroom_giant,
-- FIXME: Should be roofed forest, but placing it there doesn't work well (leaves often go into mushroom)
biomes = { "forest" },
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_giant_red.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = { "mcl_core:mycelium" }, place_on = { "mcl_core:mycelium" },
sidelen = 50, sidelen = 80,
fill_ratio = 0.002, fill_ratio = ratio_mushroom_mycelium_huge,
biomes = { "mushroom_island", "mushroom_island_shore" }, biomes = { "mushroom_island", "mushroom_island_shore" },
y_min = mcl_vars.mg_overworld_min, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_red.mts", schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_huge_red.mts",
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
rotation = "random", rotation = "random",
}) })
minetest.register_decoration({
deco_type = "schematic",
place_on = { "mcl_core:mycelium" },
sidelen = 80,
fill_ratio = ratio_mushroom_mycelium_giant,
biomes = { "mushroom_island", "mushroom_island_shore" },
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
schematic = minetest.get_modpath("mcl_mushrooms").."/schematics/mcl_mushrooms_giant_red.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
-- Moss stone boulder (3×3) -- Moss stone boulder (3×3)
minetest.register_decoration({ minetest.register_decoration({