Merge pull request 'Add mangrove swamps' (#2503) from mangrove_swamps into master

Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/2503
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
This commit is contained in:
cora 2022-08-03 10:39:20 +00:00
commit d1d2b03635
30 changed files with 1808 additions and 10 deletions

@ -71,6 +71,7 @@ local list_of_all_biomes = {
"JungleM_underground", "JungleM_underground",
"ExtremeHillsM_underground", "ExtremeHillsM_underground",
"JungleEdgeM_underground", "JungleEdgeM_underground",
"MangroveSwamp_underground",
-- ocean: -- ocean:
@ -134,6 +135,8 @@ local list_of_all_biomes = {
"BirchForestM_deep_ocean", "BirchForestM_deep_ocean",
"Taiga_deep_ocean", "Taiga_deep_ocean",
"JungleM_ocean", "JungleM_ocean",
"MangroveSwamp_ocean",
"MangroveSwamp_deep_ocean",
-- water or beach? -- water or beach?
@ -157,6 +160,7 @@ local list_of_all_biomes = {
"MushroomIslandShore", "MushroomIslandShore",
"JungleM_shore", "JungleM_shore",
"Jungle_shore", "Jungle_shore",
"MangroveSwamp_shore",
-- dimension biome: -- dimension biome:
@ -202,6 +206,7 @@ local list_of_all_biomes = {
"MesaBryce", "MesaBryce",
"JungleEdge", "JungleEdge",
"SavannaM", "SavannaM",
"MangroveSwamp",
} }
-- count how many mobs are in an area -- count how many mobs are in an area

@ -312,6 +312,7 @@ local function check_growth_width(pos, width, height)
end end
return true return true
end end
mcl_core.check_growth_width = check_growth_width
-- Check if a tree with id can grow at a position. Options is a table of flags -- Check if a tree with id can grow at a position. Options is a table of flags
-- for varieties of trees. The 'two_by_two' option is used to check if there is -- for varieties of trees. The 'two_by_two' option is used to check if there is

@ -0,0 +1,542 @@
local S = minetest.get_translator("mcl_mangrove")
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local propagule_allowed_nodes = {
"mcl_core:dirt",
"mcl_core:coarse_dirt",
"mcl_core:dirt_with_grass",
"mcl_core:podzol",
"mcl_core:mycelium",
"mcl_lush_caves:rooted_dirt",
"mcl_lush_caves:moss",
"mcl_farming:soil",
"mcl_farming:soil_wet",
"mcl_core:clay",
"mcl_mud:mud",
}
local propagule_water_nodes = {"mcl_mud:mud","mcl_core:dirt","mcl_core:coarse_dirt","mcl_core:clay"}
--"mcl_lush_caves:moss","mcl_lush_caves:rooted_dirt
local function get_drops(fortune_level)
local apple_chances = {200, 180, 160, 120, 40}
local stick_chances = {50, 45, 30, 35, 10}
local sapling_chances = {20, 16, 12, 10}
return {
max_items = 1,
items = {
{
items = {"mcl_mangrove:propagule"},
rarity = sapling_chances[fortune_level + 1] or sapling_chances[fortune_level]
},
{
items = {"mcl_core:stick 1"},
rarity = stick_chances[fortune_level + 1]
},
{
items = {"mcl_core:stick 2"},
rarity = stick_chances[fortune_level + 1]
},
{
items = {"mcl_core:apple"},
rarity = apple_chances[fortune_level + 1]
}
}
}
end
minetest.register_node("mcl_mangrove:mangrove_tree", {
description = S("Mangrove Wood"),
_doc_items_longdesc = S("The trunk of a Mangrove tree."),
_doc_items_hidden = false,
tiles = {"mcl_mangrove_log_top.png", "mcl_mangrove_log_top.png", "mcl_mangrove_log.png"},
paramtype2 = "facedir",
on_place = mcl_util.rotate_axis,
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
sounds = mcl_sounds.node_sound_wood_defaults(),
on_place = mcl_util.rotate_axis,
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
_mcl_stripped_variant = "mcl_mangrove:mangrove_stripped_trunk",
})
minetest.register_node("mcl_mangrove:mangrove_tree_bark", {
description = S("Mangrove Bark"),
_doc_items_longdesc = S("The bark of a Mangrove tree."),
_doc_items_hidden = false,
tiles = {"mcl_mangrove_log.png", "mcl_mangrove_log.png", "mcl_mangrove_log.png"},
paramtype2 = "facedir",
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
sounds = mcl_sounds.node_sound_wood_defaults(),
on_place = mcl_util.rotate_axis,
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
_mcl_stripped_variant = "mcl_mangrove:mangrove_stripped_bark",
})
minetest.register_node("mcl_mangrove:mangrove_wood", {
description = S("Mangrove Wood Planks"),
_doc_items_longdesc = doc.sub.items.temp.build,
_doc_items_hidden = false,
tiles = {"mcl_mangrove_planks.png"},
is_ground_content = false,
groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
sounds = mcl_sounds.node_sound_wood_defaults(),
_mcl_blast_resistance = 3,
_mcl_hardness = 2,
})
minetest.register_node("mcl_mangrove:mangroveleaves", {
description = S("Mangrove Leaves"),
_doc_items_longdesc = S("mangrove leaves are grown from mangrove trees."),
_doc_items_hidden = false,
drawtype = "allfaces_optional",
waving = 2,
place_param2 = 1, -- Prevent leafdecay for placed nodes
tiles = {"mcl_mangrove_leaves.png"},
paramtype = "light",
groups = {handy=1,shearsy=1,swordy=1, leafdecay=10, flammable=2, leaves=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60},
_mcl_shears_drop = true,
sounds = mcl_sounds.node_sound_leaves_defaults(),
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
})
minetest.register_node("mcl_mangrove:mangrove_stripped_trunk", {
description = "The stripped wood of a Mangove tree",
_doc_items_longdesc = "The stripped wood of a Mangove tree",
_doc_items_hidden = false,
tiles ={"mcl_stripped_mangrove_log_top.png","mcl_stripped_mangrove_log_side.png",},
paramtype2 = "facedir",
on_place = mcl_util.rotate_axis,
groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
sounds = mcl_sounds.node_sound_wood_defaults(),
on_rotate = mcl_util.rotate_axis_and_place,
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
})
minetest.register_node("mcl_mangrove:mangrove_stripped_bark", {
description = "The stripped bark of a Mangove tree",
_doc_items_longdesc = "The stripped bark of a Mangove tree",
_doc_items_hidden = false,
tiles ={"mcl_stripped_mangrove_log_side.png","mcl_stripped_mangrove_log_side.png",},
paramtype2 = "facedir",
on_place = mcl_util.rotate_axis,
groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
sounds = mcl_sounds.node_sound_wood_defaults(),
on_rotate = mcl_util.rotate_axis_and_place,
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
})
minetest.register_node("mcl_mangrove:mangrove_roots", {
description = "Mangrove_Roots",
_doc_items_longdesc = "Mangrove roots are decorative blocks that form as part of mangrove trees.",
_doc_items_hidden = false,
waving = 0,
place_param2 = 1, -- Prevent leafdecay for placed nodes
tiles = {
"mcl_mangrove_roots_top.png",
"mcl_mangrove_roots_side.png",
"mcl_mangrove_roots_side.png",
},
paramtype = "light",
drawtype = "allfaces_optional",
groups = {
handy = 1, hoey = 1, shearsy = 1, axey = 1, swordy = 1, dig_by_piston = 0,
leaves = 1, deco_block = 1,flammable = 10, fire_encouragement = 30, fire_flammability = 60, compostability = 30
},
drop = "mcl_mangrove:mangrove_roots",
_mcl_shears_drop = true,
sounds = mcl_sounds.node_sound_leaves_defaults(), _mcl_blast_resistance = 0.7,
_mcl_hardness = 0.7,
_mcl_silk_touch_drop = true,
_mcl_fortune_drop = { "mcl_mangrove:mangrove_roots 1", "mcl_mangrove:mangrove_roots 2", "mcl_mangrove:mangrove_roots 3", "mcl_mangrove:mangrove_roots 4" },
})
minetest.register_node("mcl_mangrove:propagule", {
description = S("mangrove_propagule"),
_tt_help = S("Needs soil and light to grow"),
_doc_items_longdesc = S("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
_doc_items_hidden = false,
drawtype = "plantlike",
waving = 1,
visual_scale = 1.0,
tiles = {"mcl_mangrove_propagule_item.png"},
inventory_image = "mcl_mangrove_propagule_item.png",
wield_image = "mcl_mangrove_propagule_item.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}
},
groups = {
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
destroy_by_lava_flow = 1, compostability = 30
},
sounds = mcl_sounds.node_sound_leaves_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_int("stage", 0)
end,
node_placement_prediction = "",
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
on_place = mcl_util.generate_on_place_plant_function(function(place_pos, place_node,stack)
local under = vector.offset(place_pos,0,-1,0)
local snn = minetest.get_node_or_nil(under).name
if not snn then return false end
if table.indexof(propagule_allowed_nodes,snn) ~= -1 then
local n = minetest.get_node(place_pos)
if minetest.get_item_group(n.name,"water") > 0 and table.indexof(propagule_water_nodes,snn) ~= -1 then
minetest.set_node(under,{name="mcl_mangrove:propagule_"..snn:split(":")[2]})
stack:take_item()
return stack
end
return true
end
end)
})
minetest.register_node("mcl_mangrove:hanging_propagule_1", {
description = S("Hanging Propagule"),
_tt_help = S("Grows on Mangrove leaves"),
_doc_items_longdesc = "",
_doc_items_usagehelp = "",
groups = {
plant = 1, not_in_creative_inventory=1, non_mycelium_plant = 1,
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
destroy_by_lava_flow = 1, compostability = 30
},
paramtype = "light",
paramtype2 = "",
on_rotate = false,
walkable = false,
drop = "mcl_mangrove:propagule",
use_texture_alpha = "clip",
drawtype = 'mesh',
mesh = 'propagule_hanging.obj',
selection_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, -- Base
},
},
tiles = {"mcl_mangrove_propagule_hanging.png"},
inventory_image = "mcl_mangrove_propagule.png",
wield_image = "mcl_mangrove_propagule.png",
})
local propagule_rooted_nodes = {}
for _,root in pairs(propagule_water_nodes) do
local r = root:split(":")[2]
local def = minetest.registered_nodes[root]
local tx = def.tiles
local n = "mcl_mangrove:propagule_"..r
table.insert(propagule_rooted_nodes,n)
minetest.register_node(n, {
drawtype = "plantlike_rooted",
paramtype = "light",
place_param2 = 1,
tiles = tx,
special_tiles = { { name = "mcl_mangrove_propagule_item.png" } },
inventory_image = "mcl_mangrove_propagule_item.png",
wield_image = "mcl_mangrove_propagule.png",
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 },
}
},
groups = {
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,not_in_creative_inventory=1,
deco_block = 1, dig_immediate = 3, dig_by_piston = 1,
destroy_by_lava_flow = 1, compostability = 30
},
sounds = mcl_sounds.node_sound_leaves_defaults(),
drop = "mcl_mangrove:propagule",
node_placement_prediction = "",
node_dig_prediction = "",
after_dig_node = function(pos)
minetest.set_node(pos, {name=root})
end,
_mcl_hardness = 0,
_mcl_blast_resistance = 0,
_mcl_silk_touch_drop = true,
})
end
mcl_flowerpots.register_potted_flower("mcl_mangrove:propagule", {
name = "propagule",
desc = S("Mangrove Propagule"),
image = "mcl_mangrove_propagule.png",
})
local water_tex = "default_water_source_animated.png^[verticalframe:16:0"
local wlroots = {
description = ("water logged mangrove roots"),
_doc_items_entry_name = S("water logged mangrove roots"),
_doc_items_longdesc =
("Mangrove roots are decorative blocks that form as part of mangrove trees.").."\n\n"..
("Mangrove roots, despite being a full block, can be waterlogged and do not flow water out").."\n\n"..
("These cannot be crafted yet only occure when get in contact of water."),
_doc_items_hidden = false,
tiles = {
{name="default_water_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0}}
},
special_tiles = {
-- New-style water source material (mostly unused)
{
name="default_water_source_animated.png",
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0},
backface_culling = false,
}
},
overlay_tiles = {
"mcl_mangrove_roots_top.png",
"mcl_mangrove_roots_side.png",
"mcl_mangrove_roots_side.png",
},
sounds = mcl_sounds.node_sound_water_defaults(),
drawtype = "allfaces_optional",
use_texture_alpha = "clip",
is_ground_content = false,
paramtype = "light",
walkable = true,
pointable = true,
diggable = true,
buildable_to = false,
liquids_pointable = true,
drop = "mcl_mangrove:mangrove_roots",
groups = {
handy = 1, hoey = 1, water=3, liquid=3, puts_out_fire=1, dig_by_piston = 1, deco_block = 1, not_in_creative_inventory=1 },
_mcl_blast_resistance = 100,
_mcl_hardness = -1, -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
after_dig_node = function(pos)
local node = minetest.get_node(pos)
if minetest.get_item_group(node.name, "water") == 0 then
minetest.set_node(pos, {name="mcl_core:water_source"})
end
end,
}
local rwlroots = table.copy(wlroots)
water_tex = "default_river_water_source_animated.png^[verticalframe:16:0"
rwlroots.tiles = {
"("..water_tex..")^mcl_mangrove_roots_top.png",
"("..water_tex..")^mcl_mangrove_roots_side.png",
"("..water_tex..")^mcl_mangrove_roots_side.png",
}
minetest.register_node("mcl_mangrove:water_logged_roots", wlroots)
minetest.register_node("mcl_mangrove:river_water_logged_roots",rwlroots)
minetest.register_node("mcl_mangrove:mangrove_mud_roots", {
description = S("Muddy Mangrove Roots"),
_tt_help = S("crafted with Mud and Mangrove roots"),
_doc_items_longdesc = S("Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it"),
tiles = {
"mcl_mud.png^mcl_mangrove_roots_top.png",
"mcl_mud.png^mcl_mangrove_roots_side.png",
"mcl_mud.png^mcl_mangrove_roots_side.png",
},
is_ground_content = true,
groups = {handy = 1, shovely = 1, axey = 1, building_block = 1},
sounds = mcl_sounds.node_sound_sand_defaults(),
_mcl_blast_resistance = 0.7,
_mcl_hardness = 0.7,
})
mcl_doors:register_door("mcl_mangrove:mangrove_door", {
description = ("Mangrove Door"),
_doc_items_longdesc = "",
_doc_items_usagehelp = "",
inventory_image = "mcl_mangrove_doors.png",
groups = {handy=1,axey=1, material_wood=1, flammable=-1},
_mcl_hardness = 3,
_mcl_blast_resistance = 3,
tiles_bottom = {"mcl_mangrove_door_bottom.png", "mcl_mangrove_planks.png"},
tiles_top = {"mcl_mangrove_door_top.png", "mcl_mangrove_planks.png"},
sounds = mcl_sounds.node_sound_wood_defaults(),
})
mcl_doors:register_trapdoor("mcl_mangrove:mangrove_trapdoor", {
description = S("Mangrove Trapdoor"),
_doc_items_longdesc = S("Wooden trapdoors are horizontal barriers which can be opened and closed by hand or a redstone signal. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder."),
_doc_items_usagehelp = S("To open or close the trapdoor, rightclick it or send a redstone signal to it."),
tile_front = "mcl_mangrove_trapdoor.png",
tile_side = "mcl_mangrove_planks.png",
wield_image = "mcl_mangrove_trapdoor.png",
groups = {handy=1,axey=1, mesecon_effector_on=1, material_wood=1, flammable=-1},
_mcl_hardness = 3,
_mcl_blast_resistance = 3,
sounds = mcl_sounds.node_sound_wood_defaults(),
})
mcl_fences.register_fence_and_fence_gate(
"mangrove_wood_fence",
S("Mangrove Wood Fence"),
S("Mangrove Wood Plank Fence"),
"mcl_mangrove_fence.png",
{handy=1,axey=1, flammable=2,fence_wood=1, fire_encouragement=5, fire_flammability=20},
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance,
{"group:fence_wood"},
mcl_sounds.node_sound_wood_defaults(), "mcl_mangrove_mangrove_wood_fence_gate_open", "mcl_mangrove_mangrove_wood_fence_gate_close", 1, 1,
"mcl_mangrove_fence_gate.png")
mcl_stairs.register_stair("mangrove_wood", "mcl_mangrove:mangrove_wood",
{handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
{"mcl_mangrove_planks.png"},
S("Mangrove Wood Stairs"),
mcl_sounds.node_sound_wood_defaults(), 3, 2,
"woodlike")
mcl_stairs.register_slab("mangrove_wood", "mcl_mangrove:mangrove_wood",
{handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
{"mcl_mangrove_planks.png"},
S("Mangrove Wood Slab"),
mcl_sounds.node_sound_wood_defaults(), 3, 2,
S("Double Mangrove Wood Slab"))
minetest.register_craft({
output = "mcl_mangrove:mangrove_tree_bark 3",
recipe = {
{ "mcl_mangrove:mangrove_tree", "mcl_mangrove:mangrove_tree" },
{ "mcl_mangrove:mangrove_tree", "mcl_mangrove:mangrove_tree" },
}
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_mud_roots",
recipe = {
{"mcl_mangrove:mangrove_roots", "mcl_mud:mud",},
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_mangrove:mangrove_door",
burntime = 15,
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_door 3",
recipe = {
{"mcl_mangrove:mangrove_wood", "mcl_mangrove:mangrove_wood"},
{"mcl_mangrove:mangrove_wood", "mcl_mangrove:mangrove_wood"},
{"mcl_mangrove:mangrove_wood", "mcl_mangrove:mangrove_wood"},
}
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_trapdoor 2",
recipe = {
{"mcl_mangrove:mangrove_wood","mcl_mangrove:mangrove_wood","mcl_mangrove:mangrove_wood"},
{"mcl_mangrove:mangrove_wood","mcl_mangrove:mangrove_wood","mcl_mangrove:mangrove_wood"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "mcl_mangrove:mangrove_trapdoor",
burntime = 15,
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_wood_fence_gate",
recipe = {
{"mcl_core:stick", "mcl_mangrove:mangrove_wood", "mcl_core:stick"},
{"mcl_core:stick", "mcl_mangrove:mangrove_wood", "mcl_core:stick"},
}
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_wood_fence 3",
recipe = {
{"mcl_mangrove:mangrove_wood", "mcl_core:stick", "mcl_mangrove:mangrove_wood"},
{"mcl_mangrove:mangrove_wood", "mcl_core:stick", "mcl_mangrove:mangrove_wood"},
}
})
minetest.register_craft({
output = "mcl_mangrove:mangrove_wood 4",
recipe = {
{"mcl_mangrove:mangrove_tree"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "group:fence_wood",
burntime = 15,
})
local adjacents = {
vector.new(1,0,0),
vector.new(-1,0,0),
vector.new(0,0,1),
vector.new(0,0,-1),
}
minetest.register_abm({
label = "Waterlog mangrove roots",
nodenames = {"mcl_mangrove:mangrove_roots"},
neighbors = {"group:water"},
interval = 5,
chance = 5,
action = function(pos,value)
for _,v in pairs(adjacents) do
local n = minetest.get_node(vector.add(pos,v)).name
if minetest.get_item_group(n,"water") > 0 then
if n:find("river") then
minetest.swap_node(pos,{name="mcl_mangrove:river_water_logged_roots"})
return
else
minetest.swap_node(pos,{name="mcl_mangrove:water_logged_roots"})
return
end
end
end
end
})
local abm_nodes = table.copy(propagule_rooted_nodes)
table.insert(abm_nodes,"mcl_mangrove:propagule")
minetest.register_abm({
label = "Mangrove_tree_growth",
nodenames = abm_nodes,
interval = 30,
chance = 5,
action = function(pos,node)
local pr = PseudoRandom(pos.x+pos.y+pos.z)
local r = pr:next(1,5)
local path = modpath .."/schematics/mcl_mangrove_tree_"..tostring(r)..".mts"
local w = 5
local h = 10
local fp = true
pos.y = pos.y - 1
if table.indexof(propagule_rooted_nodes,node.name) ~= -1 then
local nn = minetest.find_nodes_in_area(vector.offset(pos,0,-1,0),vector.offset(pos,0,h,0),{"group:water","air"})
if #nn >= h then
minetest.place_schematic(pos, path, "random", function()
local nnv = minetest.find_nodes_in_area(vector.offset(pos,-5,-1,-5),vector.offset(pos,5,h/2,5),{"mcl_core:vine"})
minetest.bulk_set_node(nnv,{"air"})
end, true, "place_center_x, place_center_z")
end
return
end
if r > 3 then h = 18 end
if mcl_core.check_growth_width(pos,w,h) then
minetest.place_schematic(pos, path, "random", nil, true, "place_center_x, place_center_z")
end
end
})

@ -0,0 +1,3 @@
name = mcl_mangrove
author = thunder1035
depends = mcl_core, mcl_doors, mcl_stairs, mcl_walls, mclx_fences, mcl_boats, mcl_flowerpots, mcl_mud, mcl_util

@ -0,0 +1,73 @@
# Blender v3.1.2 OBJ File: 'propagule.blend'
# www.blender.org
mtllib propagule.mtl
o Plane
v 0.500000 0.499931 0.499931
v 0.500000 -0.499931 0.499931
v 0.500000 0.499931 -0.499931
v 0.500000 -0.499931 -0.499931
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 0.500000
v -0.347329 1.500000 0.359670
v 0.347329 1.500000 -0.359670
v 0.347329 0.500000 -0.359670
v -0.347329 0.500000 0.359670
v -0.359670 1.500000 -0.347329
v 0.359670 1.500000 0.347329
v 0.359670 0.500000 0.347329
v -0.359670 0.500000 -0.347329
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.499987
vt 0.000000 0.499987
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.499868
vt 0.000000 0.499868
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.499868
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.499868
vt 0.000000 0.499868
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.499868
vt 0.000000 0.499868
vt 0.000000 1.000000
vt 1.000000 1.000000
vt 1.000000 0.499985
vt 0.000000 0.499985
vt 0.000000 1.000000
vt 1.000000 1.000000
vt 1.000000 0.499985
vt 0.000000 0.499985
vn 1.0000 0.0000 0.0000
vn -0.5774 0.5774 0.5774
vn 0.0000 0.7071 0.7071
vn 0.0000 0.7071 -0.7071
vn -0.5774 0.5774 -0.5774
vn -0.7071 0.0000 -0.7071
vn -0.7071 -0.0000 0.7071
vn 0.0000 0.0000 -1.0000
vn -0.0000 -0.0000 1.0000
vn -0.7193 0.0000 -0.6947
vn 0.6947 0.0000 -0.7193
usemtl default_dirt.png.001
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
s 1
f 5/5/2 6/6/3 7/7/4 8/8/5
f 9/9/6 10/10/7 5/11/2 8/8/5
f 11/12/8 9/13/6 8/14/5 7/15/4
f 10/16/7 12/17/9 6/18/3 5/19/2
usemtl mcl_mangrove_propagule.png.001
f 13/20/10 14/21/10 15/22/10 16/23/10
f 17/24/11 18/25/11 19/26/11 20/27/11

@ -0,0 +1,975 @@
# Blender v3.1.2 OBJ File: 'propagule_hanging.blend'
# www.blender.org
mtllib propagule_hanging.mtl
o plant
v 0.000000 0.470112 0.000000
v 0.000000 -0.529888 0.000000
v 0.000000 -0.529888 0.000000
v 0.000000 0.470112 0.000000
v 0.000000 -0.029888 0.000000
v 0.000000 -0.029888 0.000000
v 0.000000 -0.279888 0.000000
v 0.000000 0.220112 0.000000
v 0.000000 -0.279888 0.000000
v 0.000000 0.220112 0.000000
v -0.086832 0.470112 0.089918
v 0.086832 -0.529888 -0.089917
v 0.089917 -0.529888 0.086832
v -0.089918 0.470112 -0.086832
v 0.000000 -0.404888 0.000000
v 0.000000 0.095112 0.000000
v 0.089917 -0.029888 0.086832
v 0.000000 -0.404888 0.000000
v 0.000000 0.095112 0.000000
v 0.086832 -0.029888 -0.089917
v 0.086832 0.470112 -0.089917
v -0.086832 -0.529888 0.089917
v -0.089917 -0.529888 -0.086832
v 0.089917 0.470112 0.086832
v 0.000000 -0.154888 0.000000
v 0.000000 0.345112 0.000000
v -0.089917 -0.029888 -0.086832
v 0.000000 -0.154888 0.000000
v 0.000000 0.345112 0.000000
v -0.086832 -0.029888 0.089918
v 0.086832 0.220112 -0.089917
v -0.086832 0.220112 0.089918
v -0.086832 -0.279888 0.089917
v 0.089917 0.220112 0.086832
v -0.089918 0.220112 -0.086832
v -0.089917 -0.279888 -0.086832
v 0.089917 -0.279888 0.086832
v 0.086832 -0.279888 -0.089917
v 0.086832 -0.154888 -0.089917
v 0.086832 -0.404888 -0.089917
v 0.089917 -0.154888 0.086832
v 0.089917 -0.404888 0.086832
v -0.089917 -0.154888 -0.086832
v -0.089918 0.345112 -0.086832
v 0.089917 0.345112 0.086832
v 0.089917 0.095112 0.086832
v -0.086832 -0.154888 0.089918
v -0.086832 0.345112 0.089918
v 0.086832 0.345112 -0.089917
v 0.086832 0.095112 -0.089917
v -0.086832 0.095112 0.089918
v -0.086832 -0.404888 0.089917
v -0.089917 0.095112 -0.086832
v -0.089917 -0.404888 -0.086832
v -0.043416 0.470112 0.044959
v 0.043416 -0.529888 -0.044959
v 0.044959 -0.529888 0.043416
v -0.044959 0.470112 -0.043416
v 0.000000 -0.467388 0.000000
v 0.000000 0.032612 0.000000
v 0.044959 -0.029888 0.043416
v 0.000000 -0.467388 0.000000
v 0.000000 0.032612 0.000000
v 0.043416 -0.029888 -0.044959
v 0.000000 -0.217388 0.000000
v 0.000000 0.282612 0.000000
v 0.000000 -0.217388 0.000000
v 0.000000 0.282612 0.000000
v 0.043416 0.220112 -0.044959
v 0.044959 0.220112 0.043416
v 0.044959 -0.279888 0.043416
v 0.043416 -0.279888 -0.044959
v 0.000000 -0.342388 0.000000
v 0.000000 0.157612 0.000000
v 0.000000 -0.342388 0.000000
v 0.000000 0.157612 0.000000
v 0.043416 0.470112 -0.044959
v -0.043416 -0.529888 0.044959
v -0.044959 -0.529888 -0.043416
v 0.044959 0.470112 0.043416
v 0.000000 -0.092388 0.000000
v 0.000000 0.407612 0.000000
v -0.044959 -0.029888 -0.043416
v 0.000000 -0.092388 0.000000
v 0.000000 0.407612 0.000000
v -0.043416 -0.029888 0.044959
v -0.043416 0.220112 0.044959
v -0.043416 -0.279888 0.044959
v -0.044959 0.220112 -0.043416
v -0.044959 -0.279888 -0.043416
v 0.086832 -0.217388 -0.089917
v 0.086832 -0.092388 -0.089917
v 0.043416 -0.154888 -0.044959
v 0.086832 -0.467388 -0.089917
v 0.086832 -0.342388 -0.089917
v 0.043416 -0.404888 -0.044959
v 0.089917 -0.217388 0.086832
v 0.089917 -0.092388 0.086832
v 0.044959 -0.154888 0.043416
v 0.089917 -0.467388 0.086832
v 0.089917 -0.342388 0.086832
v 0.044959 -0.404888 0.043416
v -0.089917 -0.217388 -0.086832
v -0.089917 -0.092388 -0.086832
v -0.044959 -0.154888 -0.043416
v -0.089918 0.282612 -0.086832
v -0.089918 0.407612 -0.086832
v -0.044959 0.345112 -0.043416
v 0.089917 0.282612 0.086832
v 0.089917 0.407612 0.086832
v 0.044959 0.345112 0.043416
v 0.089917 0.032612 0.086832
v 0.089917 0.157612 0.086832
v 0.044959 0.095112 0.043416
v -0.086832 -0.217388 0.089917
v -0.086832 -0.092388 0.089918
v -0.043416 -0.154888 0.044959
v -0.086832 0.282612 0.089918
v -0.086832 0.407612 0.089918
v -0.043416 0.345112 0.044959
v 0.086832 0.282612 -0.089917
v 0.086832 0.407612 -0.089917
v 0.043416 0.345112 -0.044959
v 0.086832 0.032612 -0.089917
v 0.086832 0.157612 -0.089917
v 0.043416 0.095112 -0.044959
v -0.086832 0.032612 0.089918
v -0.086832 0.157612 0.089918
v -0.043416 0.095112 0.044959
v -0.086832 -0.467388 0.089917
v -0.086832 -0.342388 0.089917
v -0.043416 -0.404888 0.044959
v -0.089917 0.032612 -0.086832
v -0.089917 0.157612 -0.086832
v -0.044959 0.095112 -0.043416
v -0.089917 -0.467388 -0.086832
v -0.089917 -0.342388 -0.086832
v -0.044959 -0.404888 -0.043416
v -0.044959 -0.342388 -0.043416
v -0.044959 0.157612 -0.043416
v -0.043416 -0.342388 0.044959
v -0.043416 0.157612 0.044959
v 0.043416 0.157612 -0.044959
v 0.043416 0.032612 -0.044959
v 0.043416 0.407612 -0.044959
v 0.043416 0.282612 -0.044959
v -0.043416 0.407612 0.044959
v -0.043416 -0.092388 0.044959
v 0.044959 0.157612 0.043416
v 0.044959 0.032612 0.043416
v 0.044959 0.407612 0.043416
v 0.044959 0.282612 0.043416
v -0.044959 0.407612 -0.043416
v -0.044959 -0.092388 -0.043416
v 0.044959 -0.342388 0.043416
v 0.044959 -0.467388 0.043416
v 0.044959 -0.092388 0.043416
v 0.044959 -0.217388 0.043416
v 0.043416 -0.342388 -0.044959
v 0.043416 -0.467388 -0.044959
v 0.043416 -0.092388 -0.044959
v 0.043416 -0.217388 -0.044959
v -0.044959 -0.217388 -0.043416
v -0.044959 0.282612 -0.043416
v -0.043416 -0.217388 0.044959
v -0.043416 0.282612 0.044959
v -0.043416 0.032612 0.044959
v -0.043416 -0.467388 0.044959
v -0.044959 0.032612 -0.043416
v -0.044959 -0.467388 -0.043416
vt 0.218362 0.406348
vt 0.250401 0.406348
vt 0.250401 0.376797
vt 0.218362 0.376797
vt 0.218362 0.657596
vt 0.250401 0.657596
vt 0.250401 0.626276
vt 0.218362 0.626276
vt 0.218362 0.406348
vt 0.250401 0.406348
vt 0.250401 0.376797
vt 0.218362 0.376797
vt 0.218362 0.657596
vt 0.250401 0.657596
vt 0.250401 0.626276
vt 0.218362 0.626276
vt 0.218362 0.784719
vt 0.250401 0.784719
vt 0.250401 0.751554
vt 0.218362 0.751554
vt 0.218362 0.532933
vt 0.250401 0.532933
vt 0.250401 0.502229
vt 0.218362 0.502229
vt 0.218362 0.784719
vt 0.250401 0.784719
vt 0.250401 0.751554
vt 0.218362 0.751554
vt 0.218362 0.532933
vt 0.250401 0.532933
vt 0.250401 0.502229
vt 0.218362 0.502229
vt 0.282961 0.532934
vt 0.315521 0.532934
vt 0.315521 0.502229
vt 0.282961 0.502229
vt 0.282961 0.594957
vt 0.315521 0.594957
vt 0.315521 0.563638
vt 0.282961 0.563638
vt 0.282961 0.406348
vt 0.315521 0.406348
vt 0.315521 0.376797
vt 0.282961 0.376797
vt 0.282961 0.469065
vt 0.315521 0.469065
vt 0.315521 0.435900
vt 0.282961 0.435900
vt 0.282961 0.532934
vt 0.315521 0.532934
vt 0.315521 0.502229
vt 0.282961 0.502229
vt 0.282961 0.594957
vt 0.315521 0.594957
vt 0.315521 0.563638
vt 0.282961 0.563638
vt 0.282961 0.406348
vt 0.315521 0.406348
vt 0.315521 0.376797
vt 0.282961 0.376797
vt 0.282961 0.469065
vt 0.315521 0.469065
vt 0.315521 0.435900
vt 0.282961 0.435900
vt 0.218362 0.594957
vt 0.250401 0.594957
vt 0.250401 0.563638
vt 0.218362 0.563638
vt 0.466901 0.935330
vt 0.498940 0.935330
vt 0.498940 0.875712
vt 0.466901 0.875712
vt 0.282961 0.784719
vt 0.315521 0.784719
vt 0.315521 0.751554
vt 0.282961 0.751554
vt 0.531500 0.935330
vt 0.564060 0.935330
vt 0.564060 0.875712
vt 0.531500 0.875712
vt 0.282961 0.657596
vt 0.315521 0.657596
vt 0.315521 0.626276
vt 0.282961 0.626276
vt 0.282961 0.720234
vt 0.315521 0.720234
vt 0.315521 0.688915
vt 0.282961 0.688915
vt 0.218362 0.594957
vt 0.250401 0.594957
vt 0.250401 0.563638
vt 0.218362 0.563638
vt 0.466901 0.935330
vt 0.498940 0.935330
vt 0.498940 0.875712
vt 0.466901 0.875712
vt 0.282961 0.784719
vt 0.315521 0.784719
vt 0.315521 0.751554
vt 0.282961 0.751554
vt 0.531500 0.935330
vt 0.564060 0.935330
vt 0.564060 0.875712
vt 0.531500 0.875712
vt 0.282961 0.657596
vt 0.315521 0.657596
vt 0.315521 0.626276
vt 0.282961 0.626276
vt 0.282961 0.720234
vt 0.315521 0.720234
vt 0.315521 0.688915
vt 0.282961 0.688915
vt 0.218362 0.720234
vt 0.250401 0.720234
vt 0.250401 0.688915
vt 0.218362 0.688915
vt 0.218362 0.469064
vt 0.250401 0.469064
vt 0.250401 0.435900
vt 0.218362 0.435900
vt 0.218362 0.720234
vt 0.250401 0.720234
vt 0.250401 0.688915
vt 0.218362 0.688915
vt 0.218362 0.469064
vt 0.250401 0.469064
vt 0.250401 0.435900
vt 0.218362 0.435900
vt 0.186322 0.469064
vt 0.186322 0.435900
vt 0.186322 0.502229
vt 0.186322 0.720234
vt 0.186322 0.688915
vt 0.186322 0.751554
vt 0.186322 0.469064
vt 0.186322 0.435900
vt 0.186322 0.502229
vt 0.186322 0.720234
vt 0.186322 0.688915
vt 0.186322 0.751554
vt 0.498940 0.998640
vt 0.531500 0.998640
vt 0.564060 0.998640
vt 0.250401 0.817883
vt 0.282961 0.817883
vt 0.315521 0.817883
vt 0.434861 0.935330
vt 0.434861 0.875712
vt 0.434861 0.998640
vt 0.466901 0.998640
vt 0.186322 0.594957
vt 0.186322 0.563638
vt 0.186322 0.626276
vt 0.498940 0.998640
vt 0.531500 0.998640
vt 0.564060 0.998640
vt 0.250401 0.817883
vt 0.282961 0.817883
vt 0.315521 0.817883
vt 0.434861 0.935330
vt 0.434861 0.875712
vt 0.434861 0.998640
vt 0.466901 0.998640
vt 0.186322 0.594957
vt 0.186322 0.563638
vt 0.186322 0.626276
vt 0.186322 0.532933
vt 0.186322 0.784719
vt 0.186322 0.817883
vt 0.218362 0.817883
vt 0.186322 0.532933
vt 0.186322 0.784719
vt 0.186322 0.817883
vt 0.218362 0.817883
vt 0.186322 0.657596
vt 0.186322 0.406348
vt 0.186322 0.376797
vt 0.186322 0.657596
vt 0.186322 0.406348
vt 0.186322 0.376797
vn 0.6947 0.0000 -0.7193
vn -0.7193 0.0000 -0.6947
usemtl mcl_flowers_tallgrass.png
s 1
f 170/1/1 59/2/1 3/3/1 79/4/1
f 169/5/1 60/6/1 5/7/1 83/8/1
f 168/9/2 62/10/2 2/11/2 78/12/2
f 167/13/2 63/14/2 6/15/2 86/16/2
f 166/17/2 68/18/2 10/19/2 87/20/2
f 165/21/2 67/22/2 9/23/2 88/24/2
f 164/25/1 66/26/1 8/27/1 89/28/1
f 163/29/1 65/30/1 7/31/1 90/32/1
f 162/33/2 91/34/2 38/35/2 72/36/2
f 161/37/2 92/38/2 39/39/2 93/40/2
f 160/41/2 94/42/2 12/43/2 56/44/2
f 159/45/2 95/46/2 40/47/2 96/48/2
f 158/49/1 97/50/1 37/51/1 71/52/1
f 157/53/1 98/54/1 41/55/1 99/56/1
f 156/57/1 100/58/1 13/59/1 57/60/1
f 155/61/1 101/62/1 42/63/1 102/64/1
f 154/65/1 81/66/1 25/67/1 105/68/1
f 153/69/1 82/70/1 26/71/1 108/72/1
f 152/73/1 109/74/1 34/75/1 70/76/1
f 151/77/1 110/78/1 45/79/1 111/80/1
f 150/81/1 112/82/1 17/83/1 61/84/1
f 149/85/1 113/86/1 46/87/1 114/88/1
f 148/89/2 84/90/2 28/91/2 117/92/2
f 147/93/2 85/94/2 29/95/2 120/96/2
f 146/97/2 121/98/2 31/99/2 69/100/2
f 145/101/2 122/102/2 49/103/2 123/104/2
f 144/105/2 124/106/2 20/107/2 64/108/2
f 143/109/2 125/110/2 50/111/2 126/112/2
f 142/113/2 76/114/2 19/115/2 129/116/2
f 141/117/2 75/118/2 18/119/2 132/120/2
f 140/121/1 74/122/1 16/123/1 135/124/1
f 139/125/1 73/126/1 15/127/1 138/128/1
f 137/129/1 139/125/1 138/128/1 54/130/1
f 36/131/1 90/32/1 139/125/1 137/129/1
f 90/32/1 7/31/1 73/126/1 139/125/1
f 134/132/1 140/121/1 135/124/1 53/133/1
f 35/134/1 89/28/1 140/121/1 134/132/1
f 89/28/1 8/27/1 74/122/1 140/121/1
f 131/135/2 141/117/2 132/120/2 52/136/2
f 33/137/2 88/24/2 141/117/2 131/135/2
f 88/24/2 9/23/2 75/118/2 141/117/2
f 128/138/2 142/113/2 129/116/2 51/139/2
f 32/140/2 87/20/2 142/113/2 128/138/2
f 87/20/2 10/19/2 76/114/2 142/113/2
f 76/114/2 143/109/2 126/112/2 19/115/2
f 10/19/2 69/100/2 143/109/2 76/114/2
f 69/100/2 31/99/2 125/110/2 143/109/2
f 63/14/2 144/105/2 64/108/2 6/15/2
f 19/115/2 126/112/2 144/105/2 63/14/2
f 126/112/2 50/111/2 124/106/2 144/105/2
f 85/94/2 145/101/2 123/104/2 29/95/2
f 1/141/2 77/142/2 145/101/2 85/94/2
f 77/142/2 21/143/2 122/102/2 145/101/2
f 68/18/2 146/97/2 69/100/2 10/19/2
f 29/144/2 123/145/2 146/97/2 68/18/2
f 123/145/2 49/146/2 121/98/2 146/97/2
f 119/147/2 147/93/2 120/96/2 48/148/2
f 11/149/2 55/150/2 147/93/2 119/147/2
f 55/150/2 1/141/2 85/94/2 147/93/2
f 116/151/2 148/89/2 117/92/2 47/152/2
f 30/153/2 86/16/2 148/89/2 116/151/2
f 86/16/2 6/15/2 84/90/2 148/89/2
f 74/122/1 149/85/1 114/88/1 16/123/1
f 8/27/1 70/76/1 149/85/1 74/122/1
f 70/76/1 34/75/1 113/86/1 149/85/1
f 60/6/1 150/81/1 61/84/1 5/7/1
f 16/123/1 114/88/1 150/81/1 60/6/1
f 114/88/1 46/87/1 112/82/1 150/81/1
f 82/70/1 151/77/1 111/80/1 26/71/1
f 4/154/1 80/155/1 151/77/1 82/70/1
f 80/155/1 24/156/1 110/78/1 151/77/1
f 66/26/1 152/73/1 70/76/1 8/27/1
f 26/157/1 111/158/1 152/73/1 66/26/1
f 111/158/1 45/159/1 109/74/1 152/73/1
f 107/160/1 153/69/1 108/72/1 44/161/1
f 14/162/1 58/163/1 153/69/1 107/160/1
f 58/163/1 4/154/1 82/70/1 153/69/1
f 104/164/1 154/65/1 105/68/1 43/165/1
f 27/166/1 83/8/1 154/65/1 104/164/1
f 83/8/1 5/7/1 81/66/1 154/65/1
f 73/126/1 155/61/1 102/64/1 15/127/1
f 7/31/1 71/52/1 155/61/1 73/126/1
f 71/52/1 37/51/1 101/62/1 155/61/1
f 59/2/1 156/57/1 57/60/1 3/3/1
f 15/127/1 102/64/1 156/57/1 59/2/1
f 102/64/1 42/63/1 100/58/1 156/57/1
f 81/66/1 157/53/1 99/56/1 25/67/1
f 5/7/1 61/84/1 157/53/1 81/66/1
f 61/84/1 17/83/1 98/54/1 157/53/1
f 65/30/1 158/49/1 71/52/1 7/31/1
f 25/67/1 99/56/1 158/49/1 65/30/1
f 99/56/1 41/55/1 97/50/1 158/49/1
f 75/118/2 159/45/2 96/48/2 18/119/2
f 9/23/2 72/36/2 159/45/2 75/118/2
f 72/36/2 38/35/2 95/46/2 159/45/2
f 62/10/2 160/41/2 56/44/2 2/11/2
f 18/119/2 96/48/2 160/41/2 62/10/2
f 96/48/2 40/47/2 94/42/2 160/41/2
f 84/90/2 161/37/2 93/40/2 28/91/2
f 6/15/2 64/108/2 161/37/2 84/90/2
f 64/108/2 20/107/2 92/38/2 161/37/2
f 67/22/2 162/33/2 72/36/2 9/23/2
f 28/91/2 93/40/2 162/33/2 67/22/2
f 93/40/2 39/39/2 91/34/2 162/33/2
f 103/167/1 163/29/1 90/32/1 36/131/1
f 43/165/1 105/68/1 163/29/1 103/167/1
f 105/68/1 25/67/1 65/30/1 163/29/1
f 106/168/1 164/25/1 89/28/1 35/134/1
f 44/169/1 108/170/1 164/25/1 106/168/1
f 108/170/1 26/157/1 66/26/1 164/25/1
f 115/171/2 165/21/2 88/24/2 33/137/2
f 47/152/2 117/92/2 165/21/2 115/171/2
f 117/92/2 28/91/2 67/22/2 165/21/2
f 118/172/2 166/17/2 87/20/2 32/140/2
f 48/173/2 120/174/2 166/17/2 118/172/2
f 120/174/2 29/144/2 68/18/2 166/17/2
f 127/175/2 167/13/2 86/16/2 30/153/2
f 51/139/2 129/116/2 167/13/2 127/175/2
f 129/116/2 19/115/2 63/14/2 167/13/2
f 130/176/2 168/9/2 78/12/2 22/177/2
f 52/136/2 132/120/2 168/9/2 130/176/2
f 132/120/2 18/119/2 62/10/2 168/9/2
f 133/178/1 169/5/1 83/8/1 27/166/1
f 53/133/1 135/124/1 169/5/1 133/178/1
f 135/124/1 16/123/1 60/6/1 169/5/1
f 136/179/1 170/1/1 79/4/1 23/180/1
f 54/130/1 138/128/1 170/1/1 136/179/1
f 138/128/1 15/127/1 59/2/1 170/1/1
o plant_test
v -0.000842 0.420173 0.000152
v -0.000842 0.420173 0.000152
v 0.190595 0.340629 0.003494
v 0.002500 0.340629 -0.191284
v -0.192278 0.340629 -0.003189
v -0.004183 0.340629 0.191589
v 0.094876 0.380401 0.001823
v 0.193936 0.340629 -0.187943
v 0.187253 0.340629 0.194930
v 0.000829 0.380401 -0.095566
v -0.188937 0.340629 -0.194626
v 0.193936 0.340629 -0.187943
v -0.096560 0.380401 -0.001519
v -0.195620 0.340629 0.188247
v -0.188937 0.340629 -0.194626
v -0.002513 0.380401 0.095870
v 0.187253 0.340629 0.194930
v -0.195620 0.340629 0.188247
v 0.188924 0.380401 0.099212
v -0.099901 0.380401 0.189918
v -0.190607 0.380401 -0.098907
v 0.098218 0.380401 -0.189613
v 0.091535 0.380401 0.193259
v 0.192265 0.380401 -0.092225
v -0.093219 0.380401 -0.192955
v -0.193949 0.380401 0.092529
vt 0.373047 0.821932
vt 0.500000 0.821932
vt 0.500000 0.691073
vt 0.373047 0.691073
vt 0.312500 0.821932
vt 0.500000 0.821932
vt 0.500000 0.691073
vt 0.312500 0.691073
vt 0.312500 0.821932
vt 0.500000 0.821932
vt 0.500000 0.691073
vt 0.312500 0.691073
vt 0.312500 0.821932
vt 0.500000 0.821932
vt 0.500000 0.691073
vt 0.312500 0.691073
vt 0.701172 0.821932
vt 0.701172 0.691073
vt 0.623047 0.821932
vt 0.623047 0.691073
vt 0.623047 0.821932
vt 0.623047 0.691073
vt 0.623047 0.821932
vt 0.623047 0.691073
vn 0.0067 -0.9235 -0.3836
vn 0.3836 -0.9235 0.0067
vn -0.0067 -0.9235 0.3836
vn -0.3836 -0.9235 -0.0067
usemtl mcl_ocean_bubble_coral_fan.png
s 1
f 187/181/3 176/182/3 186/183/3 189/184/3
f 184/185/4 175/186/4 183/187/4 190/188/4
f 181/189/5 174/190/5 180/191/5 191/192/5
f 178/193/6 173/194/6 177/195/6 192/196/6
f 173/194/6 179/197/6 193/198/6 177/195/6
f 174/190/5 182/199/5 194/200/5 180/191/5
f 175/186/4 185/201/4 195/202/4 183/187/4
f 176/182/3 188/203/3 196/204/3 186/183/3
l 177 171
l 180 172
l 183 171
l 186 172
o Cube
v -0.093808 0.196026 0.093233
v -0.093808 0.390929 0.093233
v -0.093808 0.196026 -0.093233
v -0.093808 0.390929 -0.093233
v 0.093808 0.196026 0.093233
v 0.093808 0.390929 0.093233
v 0.093808 0.196026 -0.093233
v 0.093808 0.390929 -0.093233
v -0.093808 0.196026 0.000000
v -0.093808 0.290470 0.093233
v -0.093808 0.390929 0.000000
v -0.093808 0.290470 -0.093233
v -0.000000 0.196026 -0.093233
v -0.000000 0.390929 -0.093233
v 0.093808 0.290470 -0.093233
v 0.093808 0.196026 0.000000
v 0.093808 0.390929 0.000000
v 0.093808 0.290470 0.093233
v -0.000000 0.196026 0.093233
v -0.000000 0.390929 0.093233
v -0.000000 0.390929 0.000000
v -0.000000 0.196026 0.000000
v -0.000000 0.290470 0.093233
v 0.093808 0.290470 0.000000
v -0.000000 0.290470 -0.093233
v -0.093808 0.290470 0.000000
v -0.093808 0.196026 0.092775
v -0.093808 0.290971 0.093233
v -0.093808 0.390929 -0.092775
v -0.093808 0.197014 -0.093233
v -0.092974 0.196026 -0.093233
v 0.092974 0.390929 -0.093233
v 0.093808 0.197014 -0.093233
v 0.093808 0.196026 -0.092775
v 0.093808 0.390929 0.092775
v 0.093808 0.197014 0.093233
v 0.092974 0.196026 0.093233
v -0.092974 0.390929 0.093233
v -0.093808 0.196026 -0.092775
v -0.093808 0.197014 0.093233
v -0.093808 0.390929 0.092775
v -0.093808 0.290971 -0.093233
v 0.092974 0.196026 -0.093233
v -0.092974 0.390929 -0.093233
v 0.093808 0.290971 -0.093233
v 0.093808 0.196026 0.092775
v 0.093808 0.390929 -0.092775
v 0.093808 0.290971 0.093233
v -0.092974 0.196026 0.093233
v 0.092974 0.390929 0.093233
v -0.000000 0.390929 0.092775
v -0.000000 0.390929 -0.092775
v 0.092974 0.390929 0.000000
v -0.092974 0.390929 0.000000
v -0.000000 0.196026 0.092775
v -0.000000 0.196026 -0.092775
v -0.092974 0.196026 0.000000
v 0.092974 0.196026 0.000000
v -0.092974 0.290470 0.093233
v 0.092974 0.290470 0.093233
v -0.000000 0.197014 0.093233
v -0.000000 0.290971 0.093233
v 0.093808 0.290470 0.092775
v 0.093808 0.290470 -0.092775
v 0.093808 0.197014 0.000000
v 0.093808 0.290971 0.000000
v 0.092974 0.290470 -0.093233
v -0.092974 0.290470 -0.093233
v -0.000000 0.197014 -0.093233
v -0.000000 0.290971 -0.093233
v -0.093808 0.290470 -0.092775
v -0.093808 0.290470 0.092775
v -0.093808 0.197014 0.000000
v -0.093808 0.290971 0.000000
v -0.093808 0.290971 0.092775
v -0.093808 0.197014 0.092775
v -0.093808 0.197014 -0.092775
v -0.092974 0.290971 -0.093233
v -0.092974 0.197014 -0.093233
v 0.092974 0.197014 -0.093233
v 0.093808 0.290971 -0.092775
v 0.093808 0.197014 -0.092775
v 0.093808 0.197014 0.092775
v 0.092974 0.290971 0.093233
v 0.092974 0.197014 0.093233
v -0.092974 0.197014 0.093233
v 0.092974 0.196026 -0.092775
v -0.092974 0.196026 -0.092775
v -0.092974 0.196026 0.092775
v -0.092974 0.390929 -0.092775
v 0.092974 0.390929 -0.092775
v 0.092974 0.390929 0.092775
v -0.092974 0.390929 0.092775
v 0.092974 0.196026 0.092775
v -0.092974 0.290971 0.093233
v 0.093808 0.290971 0.092775
v 0.092974 0.290971 -0.093233
v -0.093808 0.290971 -0.092775
vt 0.502042 0.373047
vt 0.564542 0.373047
vt 0.564542 0.435547
vt 0.502042 0.435547
vt 0.502042 0.437500
vt 0.564542 0.437500
vt 0.564542 0.500000
vt 0.502042 0.500000
vt 0.502042 0.687500
vt 0.564542 0.687500
vt 0.564542 0.750000
vt 0.502042 0.750000
vt 0.066619 0.765683
vt 0.129119 0.765683
vt 0.129119 0.879860
vt 0.066619 0.879860
vt 0.436154 0.687500
vt 0.436520 0.687500
vt 0.436520 0.750000
vt 0.436154 0.750000
vt 0.000020 0.937269
vt 0.124039 0.937269
vt 0.124039 0.999769
vt 0.000020 0.999769
vt 0.000020 0.937269
vt 0.124039 0.937269
vt 0.124039 0.999769
vt 0.000020 0.999769
vt 0.000957 0.875000
vt 0.124977 0.875000
vt 0.124977 0.937500
vt 0.000957 0.937500
vt 0.000020 0.812269
vt 0.124039 0.812269
vt 0.124039 0.874769
vt 0.000020 0.874769
vt 0.000596 0.374981
vt 0.124500 0.374981
vt 0.124500 0.437481
vt 0.000596 0.437481
vt 0.000577 0.250031
vt 0.126692 0.250031
vt 0.126692 0.376511
vt 0.000577 0.376511
vt 0.436154 0.562500
vt 0.436520 0.562500
vt 0.436520 0.625000
vt 0.436154 0.625000
vt 0.063596 0.765683
vt 0.064577 0.765683
vt 0.064577 0.879860
vt 0.063596 0.879860
vt 0.065922 0.760824
vt 0.066902 0.760824
vt 0.066902 0.823324
vt 0.065922 0.823324
vt 0.066496 0.688477
vt 0.128996 0.688477
vt 0.128996 0.815430
vt 0.066496 0.815430
vt 0.499020 0.687500
vt 0.500000 0.687500
vt 0.500000 0.750000
vt 0.499020 0.750000
vt 0.065922 0.687500
vt 0.066902 0.687500
vt 0.066902 0.750000
vt 0.065922 0.750000
vt 0.064542 0.687500
vt 0.127042 0.687500
vt 0.127042 0.812500
vt 0.064542 0.812500
vt 0.499020 0.437500
vt 0.500000 0.437500
vt 0.500000 0.500000
vt 0.499020 0.500000
vt 0.065426 0.740234
vt 0.066406 0.740234
vt 0.066406 0.802734
vt 0.065426 0.802734
vt 0.066496 0.689453
vt 0.128996 0.689453
vt 0.128996 0.814453
vt 0.066496 0.814453
vt 0.499020 0.373047
vt 0.500000 0.373047
vt 0.500000 0.435547
vt 0.499020 0.435547
vt 0.065922 0.690000
vt 0.066902 0.690000
vt 0.066902 0.752500
vt 0.065922 0.752500
vt 0.064542 0.690000
vt 0.127042 0.690000
vt 0.127042 0.815000
vt 0.064542 0.815000
vt 0.068945 0.690000
vt 0.068945 0.752500
vt 0.500000 0.308594
vt 0.502042 0.308594
vt 0.502042 0.371094
vt 0.500000 0.371094
vt 0.564542 0.308594
vt 0.564542 0.371094
vt -0.000980 0.690000
vt 0.061520 0.690000
vt 0.061520 0.815000
vt -0.000980 0.815000
vt 0.436520 0.308594
vt 0.499020 0.308594
vt 0.499020 0.371094
vt 0.436520 0.371094
vt 0.436520 0.373047
vt 0.436520 0.435547
vt 0.061520 0.877500
vt -0.000980 0.877500
vt 0.066902 0.815000
vt 0.065922 0.815000
vt 0.068449 0.740234
vt 0.068449 0.802734
vt 0.502042 0.312500
vt 0.500000 0.312500
vt 0.502042 0.689453
vt 0.564542 0.689453
vt 0.564542 0.751953
vt 0.502042 0.751953
vt 0.000973 0.689453
vt 0.063473 0.689453
vt 0.063473 0.814453
vt 0.000973 0.814453
vt 0.436520 0.689453
vt 0.499020 0.689453
vt 0.499020 0.751953
vt 0.436520 0.751953
vt 0.499020 0.312500
vt 0.436520 0.437500
vt 0.436520 0.500000
vt 0.063473 0.876953
vt 0.000973 0.876953
vt 0.066406 0.865234
vt 0.065426 0.865234
vt 0.068945 0.687500
vt 0.068945 0.750000
vt 0.502042 0.562500
vt 0.500000 0.562500
vt 0.564542 0.562500
vt -0.000980 0.687500
vt 0.061520 0.687500
vt 0.061520 0.812500
vt -0.000980 0.812500
vt 0.499020 0.562500
vt 0.061520 0.875000
vt -0.000980 0.875000
vt 0.066902 0.812500
vt 0.065922 0.812500
vt 0.068945 0.760824
vt 0.068945 0.823324
vt 0.502042 0.812500
vt 0.500000 0.812500
vt 0.564542 0.812500
vt 0.000973 0.688477
vt 0.063473 0.688477
vt 0.063473 0.815430
vt 0.000973 0.815430
vt 0.499020 0.812500
vt 0.436520 0.812500
vt 0.001096 0.765683
vt 0.001096 0.879860
vt 0.063473 0.879883
vt 0.000973 0.879883
vt 0.000577 0.250031
vt 0.000577 0.376511
vt 0.499769 0.500000
vt 0.436154 0.500000
vt 0.499769 0.562500
vt 0.124500 0.249981
vt 0.000596 0.312481
vt 0.124500 0.312481
vt 0.499769 0.500000
vt 0.436154 0.500000
vt 0.436154 0.562500
vt 0.499769 0.562500
vt 0.124500 0.374981
vt 0.124500 0.437481
vt 0.126692 0.439011
vt 0.000577 0.439011
vt 0.000957 0.875000
vt 0.000957 0.937500
vt 0.564430 0.500000
vt 0.501930 0.500000
vt 0.501930 0.562500
vt 0.564430 0.562500
vt 0.564430 0.500000
vt 0.564430 0.562500
vt 0.501930 0.562500
vt 0.501930 0.625000
vt 0.564542 0.625000
vt 0.501930 0.500000
vt 0.501930 0.687500
vt 0.501930 0.750000
vt 0.124977 1.000000
vt 0.000957 1.000000
vt 0.000957 1.000000
vt 0.000596 0.374981
vt 0.000596 0.437481
vt 0.000577 0.439011
vt 0.128996 0.879883
vt 0.066496 0.879883
vt 0.068945 0.812500
vt 0.127042 0.875000
vt 0.064542 0.875000
vt 0.068449 0.865234
vt 0.128996 0.876953
vt 0.066496 0.876953
vt 0.068945 0.815000
vt 0.127042 0.877500
vt 0.064542 0.877500
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl Material
s off
f 294/205/7 225/206/7 200/207/7 238/208/7
f 293/209/8 228/210/8 204/211/8 241/212/8
f 292/213/9 231/214/9 202/215/9 244/216/9
f 291/217/10 234/218/10 198/219/10 224/220/10
f 290/221/11 242/222/11 201/223/11 233/224/11
f 289/225/12 237/226/12 198/227/12 234/228/12
f 288/229/12 247/230/12 216/231/12 246/232/12
f 287/233/12 248/234/12 217/235/12 249/236/12
f 286/237/12 225/238/12 207/239/12 250/240/12
f 285/241/11 251/242/11 215/243/11 245/244/11
f 284/245/11 252/246/11 218/247/11 253/248/11
f 283/249/11 230/250/11 212/251/11 254/252/11
f 282/253/10 255/254/10 206/255/10 236/256/10
f 281/257/10 256/258/10 219/259/10 257/260/10
f 280/261/10 246/262/10 216/263/10 258/264/10
f 279/265/9 259/266/9 214/267/9 232/268/9
f 278/269/9 260/270/9 220/271/9 261/272/9
f 277/273/9 243/274/9 213/275/9 262/276/9
f 276/277/8 263/278/8 211/279/8 229/280/8
f 275/281/8 264/282/8 221/283/8 265/284/8
f 274/285/8 240/286/8 210/287/8 266/288/8
f 273/289/7 267/290/7 208/291/7 226/292/7
f 272/293/7 268/294/7 222/295/7 269/296/7
f 271/297/7 237/298/7 207/299/7 270/300/7
f 268/294/7 271/301/7 270/302/7 222/295/7
f 206/303/7 224/304/7 271/305/7 268/306/7
f 224/304/7 198/307/7 237/308/7 271/305/7
f 223/309/7 272/310/7 269/311/7 205/312/7
f 197/313/7 236/314/7 272/315/7 223/316/7
f 236/314/7 206/303/7 268/306/7 272/315/7
f 235/317/7 273/289/7 226/292/7 199/318/7
f 205/312/7 269/311/7 273/319/7 235/320/7
f 269/296/7 222/295/7 267/321/7 273/322/7
f 264/282/8 274/323/8 266/324/8 221/283/8
f 208/291/8 238/208/8 274/325/8 264/326/8
f 238/327/8 200/328/8 240/329/8 274/330/8
f 227/331/8 275/332/8 265/333/8 209/334/8
f 199/335/8 226/336/8 275/337/8 227/338/8
f 226/292/8 208/291/8 264/326/8 275/339/8
f 239/340/8 276/277/8 229/280/8 203/341/8
f 209/334/8 265/333/8 276/342/8 239/343/8
f 265/284/8 221/283/8 263/344/8 276/345/8
f 260/270/9 277/346/9 262/347/9 220/271/9
f 211/279/9 241/212/9 277/348/9 260/349/9
f 241/212/9 204/211/9 243/350/9 277/348/9
f 230/351/9 278/352/9 261/353/9 212/354/9
f 203/341/9 229/280/9 278/355/9 230/250/9
f 229/280/9 211/279/9 260/349/9 278/355/9
f 242/222/9 279/265/9 232/268/9 201/223/9
f 212/354/9 261/353/9 279/356/9 242/357/9
f 261/272/9 220/271/9 259/358/9 279/359/9
f 256/258/10 280/360/10 258/361/10 219/259/10
f 214/267/10 244/216/10 280/362/10 256/363/10
f 244/216/10 202/215/10 246/364/10 280/362/10
f 233/365/10 281/366/10 257/367/10 215/368/10
f 201/223/10 232/268/10 281/369/10 233/370/10
f 232/268/10 214/267/10 256/363/10 281/369/10
f 245/371/10 282/253/10 236/256/10 197/372/10
f 215/368/10 257/367/10 282/373/10 245/374/10
f 257/260/10 219/259/10 255/254/10 282/253/10
f 252/246/11 283/375/11 254/376/11 218/247/11
f 209/377/11 239/378/11 283/249/11 252/379/11
f 239/378/11 203/341/11 230/250/11 283/249/11
f 235/380/11 284/245/11 253/381/11 205/382/11
f 199/383/11 227/384/11 284/385/11 235/386/11
f 227/384/11 209/377/11 252/379/11 284/385/11
f 223/387/11 285/241/11 245/244/11 197/388/11
f 205/382/11 253/381/11 285/241/11 223/387/11
f 253/248/11 218/247/11 251/389/11 285/390/11
f 248/234/12 286/391/12 250/392/12 217/235/12
f 210/393/12 240/394/12 286/395/12 248/396/12
f 240/394/12 200/397/12 225/398/12 286/395/12
f 243/350/12 287/399/12 249/400/12 213/401/12
f 204/211/12 228/402/12 287/399/12 243/350/12
f 228/402/12 210/393/12 248/396/12 287/399/12
f 231/214/12 288/403/12 246/404/12 202/215/12
f 213/401/12 249/400/12 288/403/12 231/214/12
f 249/236/12 217/235/12 247/405/12 288/406/12
f 247/230/12 289/225/12 234/228/12 216/231/12
f 217/235/12 250/392/12 289/407/12 247/405/12
f 250/240/12 207/239/12 237/226/12 289/225/12
f 251/242/11 290/408/11 233/409/11 215/243/11
f 218/247/11 254/376/11 290/410/11 251/389/11
f 254/252/11 212/251/11 242/222/11 290/221/11
f 255/254/10 291/217/10 224/220/10 206/255/10
f 219/259/10 258/361/10 291/217/10 255/254/10
f 258/264/10 216/263/10 234/411/10 291/412/10
f 259/266/9 292/213/9 244/216/9 214/267/9
f 220/271/9 262/347/9 292/413/9 259/358/9
f 262/276/9 213/275/9 231/414/9 292/415/9
f 263/278/8 293/209/8 241/212/8 211/279/8
f 221/283/8 266/324/8 293/416/8 263/344/8
f 266/288/8 210/287/8 228/417/8 293/418/8
f 267/290/7 294/205/7 238/208/7 208/291/7
f 222/295/7 270/302/7 294/419/7 267/321/7
f 270/300/7 207/299/7 225/420/7 294/421/7

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

@ -11,6 +11,7 @@ local mod_mcl_core = minetest.get_modpath("mcl_core")
local mod_mcl_mushrooms = minetest.get_modpath("mcl_mushrooms") local mod_mcl_mushrooms = minetest.get_modpath("mcl_mushrooms")
local mod_mcl_crimson = minetest.get_modpath("mcl_crimson") local mod_mcl_crimson = minetest.get_modpath("mcl_crimson")
local mod_mcl_blackstone = minetest.get_modpath("mcl_blackstone") local mod_mcl_blackstone = minetest.get_modpath("mcl_blackstone")
local mod_mcl_mangrove = minetest.get_modpath("mcl_mangrove")
-- Jungle bush schematic. In PC/Java Edition it's Jungle Wood + Oak Leaves -- Jungle bush schematic. In PC/Java Edition it's Jungle Wood + Oak Leaves
local jungle_bush_schematic = mod_mcl_core.."/schematics/mcl_core_jungle_bush_oak_leaves.mts" local jungle_bush_schematic = mod_mcl_core.."/schematics/mcl_core_jungle_bush_oak_leaves.mts"
@ -127,6 +128,7 @@ local function register_biomes()
"MesaBryce", "MesaBryce",
"MesaPlateauF", "MesaPlateauF",
"MesaPlateauFM", "MesaPlateauFM",
"MangroveSwamp",
} }
-- Ice Plains Spikes (rare) -- Ice Plains Spikes (rare)
@ -1342,6 +1344,54 @@ local function register_biomes()
_mcl_palette_index = 27, _mcl_palette_index = 27,
}) })
-- Mangrove swamp
minetest.register_biome({
name = "MangroveSwamp",
node_top = "mcl_mud:mud",
depth_top = 1,
node_filler = "mcl_mud:mud",
depth_filler = 3,
node_riverbed = "mcl_core:dirt",
depth_riverbed = 2,
y_min = 1,
-- Note: Limited in height!
y_max = 27,
humidity_point = 95,
heat_point = 94,
_mcl_biome_type = "hot",
_mcl_palette_index = 27,
})
minetest.register_biome({
name = "MangroveSwamp_shore",
node_top = "mcl_mud:mud",
depth_top = 1,
node_filler = "mcl_mud:mud",
depth_filler = 3,
node_riverbed = "mcl_core:dirt",
depth_riverbed = 2,
y_min = -5,
y_max = 0,
humidity_point = 95,
heat_point = 94,
_mcl_biome_type = "hot",
_mcl_palette_index = 27,
})
minetest.register_biome({
name = "MangroveSwamp_ocean",
node_top = "mcl_core:dirt",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:gravel",
depth_riverbed = 2,
y_min = OCEAN_MIN,
y_max = -6,
vertical_blend = 1,
humidity_point = 95,
heat_point = 94,
_mcl_biome_type = "hot",
_mcl_palette_index = 27,
})
-- Swampland -- Swampland
minetest.register_biome({ minetest.register_biome({
name = "Swampland", name = "Swampland",
@ -2422,11 +2472,11 @@ local function register_grass_decoration(grasstype, offset, scale, biomes)
local place_on, seed, node local place_on, seed, node
if grasstype == "fern" then if grasstype == "fern" then
node = "mcl_flowers:fern" node = "mcl_flowers:fern"
place_on = {"group:grass_block_no_snow", "mcl_core:podzol"} place_on = {"group:grass_block_no_snow", "mcl_core:podzol","mcl_mud:mud"}
seed = 333 seed = 333
elseif grasstype == "tallgrass" then elseif grasstype == "tallgrass" then
node = "mcl_flowers:tallgrass" node = "mcl_flowers:tallgrass"
place_on = {"group:grass_block_no_snow"} place_on = {"group:grass_block_no_snow","mcl_mud:mud"}
seed = 420 seed = 420
end end
local noise = { local noise = {
@ -2513,6 +2563,7 @@ local warm_oceans = {
"Jungle_ocean", "Jungle_ocean",
"Desert_ocean", "Desert_ocean",
"JungleM_ocean", "JungleM_ocean",
"MangroveSwamp_ocean"
} }
local corals = { local corals = {
"brain", "brain",
@ -2536,7 +2587,7 @@ local function register_coral_decos(ck)
} }
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = {"group:sand","mcl_core:gravel"}, place_on = {"group:sand","mcl_core:gravel","mcl_mud:mud"},
sidelen = 80, sidelen = 80,
noise_params = noise, noise_params = noise,
biomes = warm_oceans, biomes = warm_oceans,
@ -2548,7 +2599,7 @@ local function register_coral_decos(ck)
}) })
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = {"group:sand","mcl_core:gravel"}, place_on = {"group:sand","mcl_core:gravel","mcl_mud:mud"},
noise_params = noise, noise_params = noise,
sidelen = 80, sidelen = 80,
biomes = warm_oceans, biomes = warm_oceans,
@ -2594,7 +2645,7 @@ local function register_decorations()
end end
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"group:sand","mcl_core:gravel"}, place_on = {"group:sand","mcl_core:gravel","mcl_mud:mud"},
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.0085, offset = -0.0085,
@ -2976,6 +3027,126 @@ local function register_decorations()
rotation = "random", rotation = "random",
}) })
minetest.register_decoration({
name = "mcl_biomes:mangrove_tree_1",
deco_type = "schematic",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.0065,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_tree_1.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "mcl_biomes:mangrove_tree_2",
deco_type = "schematic",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.0045,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = -1,
y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_tree_2.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "mcl_biomes:mangrove_tree_3",
deco_type = "schematic",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.023,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = -1,
y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_tree_3.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "mcl_biomes:mangrove_tree_4",
deco_type = "schematic",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.023,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = -1,
y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_tree_4.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "mcl_biomes:mangrove_tree_4",
deco_type = "schematic",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.023,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = -1,
y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_mangrove.."/schematics/mcl_mangrove_tree_5.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.045,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = 0,
y_max = 0,
decoration = "mcl_mangrove:water_logged_roots",
flags = "place_center_x, place_center_z, force_placement",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mangrove:mangrove_roots"},
spawn_by = {"group:water"},
num_spawn_by = 2,
sidelen = 80,
fill_ratio = 10,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
y_min = 0,
y_max = 0,
decoration = "mcl_mangrove:water_logged_roots",
flags = "place_center_x, place_center_z, force_placement, all_ceilings",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.045,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
place_offset_y = -1,
decoration = "mcl_mangrove:mangrove_mud_roots",
flags = "place_center_x, place_center_z, force_placement",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mud:mud"},
sidelen = 80,
fill_ratio = 0.008,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
decoration = "mcl_core:deadbush",
flags = "place_center_x, place_center_z",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_core:water_source"},
sidelen = 80,
fill_ratio = 0.035,
biomes = {"MangroveSwamp","MangroveSwamp_shore"},
decoration = "mcl_flowers:waterlily",
flags = "place_center_x, place_center_z, liquid_surface",
})
-- Jungle tree -- Jungle tree
-- Huge jungle tree (2 variants) -- Huge jungle tree (2 variants)
@ -3975,7 +4146,7 @@ local function register_decorations()
-- Grasses and ferns -- Grasses and ferns
local grass_forest = {"Plains", "Taiga", "Forest", "FlowerForest", "BirchForest", "BirchForestM", "RoofedForest", "Swampland", } local grass_forest = {"Plains", "Taiga", "Forest", "FlowerForest", "BirchForest", "BirchForestM", "RoofedForest", "Swampland", }
local grass_mpf = {"MesaPlateauF_grasstop"} local grass_mpf = {"MesaPlateauF_grasstop"}
local grass_plains = {"Plains", "SunflowerPlains", "JungleEdge", "JungleEdgeM" } local grass_plains = {"Plains", "SunflowerPlains", "JungleEdge", "JungleEdgeM", "MangroveSwamp" }
local grass_savanna = {"Savanna", "SavannaM"} local grass_savanna = {"Savanna", "SavannaM"}
local grass_sparse = {"ExtremeHills", "ExtremeHills+", "ExtremeHills+_snowtop", "ExtremeHillsM", "Jungle" } local grass_sparse = {"ExtremeHills", "ExtremeHills+", "ExtremeHills+_snowtop", "ExtremeHillsM", "Jungle" }
local grass_mpfm = {"MesaPlateauFM_grasstop" } local grass_mpfm = {"MesaPlateauFM_grasstop" }
@ -3998,7 +4169,7 @@ local function register_decorations()
register_grass_decoration("tallgrass", 0.05, -0.03, grass_sparse) register_grass_decoration("tallgrass", 0.05, -0.03, grass_sparse)
register_grass_decoration("tallgrass", 0.05, 0.05, grass_mpfm) register_grass_decoration("tallgrass", 0.05, 0.05, grass_mpfm)
local fern_minimal = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga", "ColdTaiga" } local fern_minimal = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga", "ColdTaiga", "MangroveSwamp" }
local fern_low = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga" } local fern_low = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga" }
local fern_Jungle = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM" } local fern_Jungle = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM" }
--local fern_JungleM = { "JungleM" }, --local fern_JungleM = { "JungleM" },
@ -4724,14 +4895,42 @@ if mg_name ~= "singlenode" then
minetest.get_decoration_id("mcl_biomes:warped_tree2"), minetest.get_decoration_id("mcl_biomes:warped_tree2"),
minetest.get_decoration_id("mcl_biomes:warped_tree3") minetest.get_decoration_id("mcl_biomes:warped_tree3")
} }
local deco_ids_trees = {
minetest.get_decoration_id("mcl_biomes:mangrove_tree_1"),
minetest.get_decoration_id("mcl_biomes:mangrove_tree_2"),
minetest.get_decoration_id("mcl_biomes:mangrove_tree_3"),
}
for _,f in pairs(deco_ids_fungus) do for _,f in pairs(deco_ids_fungus) do
minetest.set_gen_notify({decoration=true}, { f }) minetest.set_gen_notify({decoration=true}, { f })
end end
if deco_id_chorus_plant or deco_id_crimson_tree or deco_id_warped_tree then for _,f in pairs(deco_ids_trees) do
minetest.set_gen_notify({decoration=true}, { f })
end
if deco_id_chorus_plant or deco_ids_fungus or deco_ids_trees then
mcl_mapgen_core.register_generator("chorus_grow", nil, function(minp, maxp, blockseed) mcl_mapgen_core.register_generator("chorus_grow", nil, function(minp, maxp, blockseed)
if minp.y > -26900 then return end
local gennotify = minetest.get_mapgen_object("gennotify") local gennotify = minetest.get_mapgen_object("gennotify")
local pr = PseudoRandom(blockseed + 14) local pr = PseudoRandom(blockseed + 14)
for _,f in pairs(deco_ids_trees) do
for _, pos in ipairs(gennotify["decoration#"..f] or {}) do
local nn=minetest.find_nodes_in_area(vector.offset(pos,-8,-1,-8),vector.offset(pos,8,0,8),{"mcl_mangrove:mangrove_roots"})
for _,v in pairs(nn) do
local l = pr:next(2,16)
local n = minetest.get_node(vector.offset(v,0,-1,0)).name
if minetest.get_item_group(n,"water") > 0 then
local wl = "mcl_mangrove:water_logged_roots"
if n:find("river") then
wl = "mcl_mangrove:river_water_logged_roots"
end
minetest.bulk_set_node(minetest.find_nodes_in_area(vector.offset(v,0,0,0),vector.offset(v,0,-l,0),{"group:water"}),{name=wl})
elseif n == "mcl_mud:mud" then
minetest.bulk_set_node(minetest.find_nodes_in_area(vector.offset(v,0,0,0),vector.offset(v,0,-l,0),{"mcl_mud:mud"}),{name="mcl_mangrove:mangrove_mud_roots"})
elseif n == "air" then
minetest.bulk_set_node(minetest.find_nodes_in_area(vector.offset(v,0,0,0),vector.offset(v,0,-l,0),{"air"}),{name="mcl_mangrove:mangrove_roots"})
end
end
end
end
if minp.y > -26900 then return end
for _, pos in ipairs(gennotify["decoration#"..deco_id_chorus_plant] or {}) do for _, pos in ipairs(gennotify["decoration#"..deco_id_chorus_plant] or {}) do
local x, y, z = pos.x, pos.y, pos.z local x, y, z = pos.x, pos.y, pos.z
if x < -2 or x > 2 or z < -2 or z > 2 then if x < -2 or x > 2 or z < -2 or z > 2 then

@ -1,4 +1,4 @@
name = mcl_biomes name = mcl_biomes
author = maikerumine author = maikerumine
description = Adds the various biomes and biome-related things for non-v6 map generators. description = Adds the various biomes and biome-related things for non-v6 map generators.
depends = mcl_init, mcl_mapgen_core, mcl_core, mcl_worlds, mcl_farming, mcl_flowers, mcl_end, mcl_ocean, mcl_crimson, mcl_blackstone depends = mcl_init, mcl_mapgen_core, mcl_core, mcl_worlds, mcl_farming, mcl_flowers, mcl_end, mcl_ocean, mcl_crimson, mcl_blackstone, mcl_mangrove