write something there

This commit is contained in:
N-Nachtigal 2025-05-04 16:01:41 +02:00
commit b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions

27
mods/livingjungle/LICENSE Normal file
View file

@ -0,0 +1,27 @@
MIT License
Copyright (c) 2022 Skandarella
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Modified Code by Liil/Wilhelmine/Liil (c) 2022
Textures and Schematics by Liil/Wilhelmine/Skandarella under (MIT) License (c) 2022

View file

@ -0,0 +1,28 @@
--This creates the livingjungle object.
livingjungle = {}
--This creates the livingjungle.settings object, and fills it with either the menu selected choices as defined in settingtypes.txt, or default values, (In this case, false).
livingjungle.settings = {
clear_biomes = minetest.settings:get_bool("livingjungle.clear_biomes") or false,
clear_decos = minetest.settings:get_bool("livingjungle.clear_decos") or false,
clear_ores = minetest.settings:get_bool("livingjungle.clear_ores") or false,
}
if livingjungle.settings.clear_biomes then
minetest.clear_registered_biomes()
end
if livingjungle.settings.clear_decos then
minetest.clear_registered_decorations()
end
if livingjungle.settings.clear_ores then
minetest.clear_registered_ores()
end
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
-- plants
dofile(path .. "junglenodes.lua") --
dofile(path .. "jungleplants.lua") --
dofile(path .. "leafdecay.lua") --

View file

@ -0,0 +1,277 @@
local S = minetest.get_translator("livingjungle")
local modname = "livingjungle"
local modpath = minetest.get_modpath(modname)
local mg_name = minetest.get_mapgen_setting("mg_name")
minetest.register_biome({
name = "livingjungle:jungle",
node_top = "livingjungle:jungleground",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 6,
node_riverbed = "default:sand",
depth_riverbed = 3,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 31000,
y_min = 0,
heat_point = 92,
humidity_point = 72,
})
-- ground nodes
minetest.register_node("livingjungle:jungleground", {
description = S("Green Jungle Ground"),
tiles = {"livingjungle_jungleground.png", "default_dirt.png",
{name = "default_dirt.png^livingjungle_jungleground_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_node("livingjungle:leafyjungleground", {
description = S("Leafy Jungle Ground"),
tiles = {"livingjungle_rainforest_litter.png", "default_dirt.png",
{name = "default_dirt.png^livingjungle_rainforest_litter_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"livingjungle:jungleground"},
sidelen = 16,
place_offset_y = -1,
flags = "force_placement",
fill_ratio = 0.9,
biomes = {"default:cold_desert", "default:cold_desert_ocean"},
y_max = 31000,
y_min = 0,
decoration = "livingjungle:leafyjungleground"
})
--- rocks
minetest.register_node("livingjungle:mossstone", {
description = S("Mossy Stone"),
tiles = {"livingjungle_mossstone.png"},
groups = {cracky = 3, stone = 1},
drop = "livingjungle:mossstone",
legacy_mineral = true,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("livingjungle:mossstone2", {
description = S("Mossy Stone"),
tiles = {"livingjungle_mossstone2.png"},
groups = {cracky = 3, stone = 1},
drop = "livingjungle:mossstone2",
legacy_mineral = true,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("livingjungle:mossstone3", {
description = S("Mossy Stone"),
tiles = {"livingjungle_mossstone3.png"},
groups = {cracky = 3, stone = 1},
drop = "livingjungle:mossstone3",
legacy_mineral = true,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_decoration({
name = "livingjungle:mossstone",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground", "livingjungle:jungleground"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.02,
spread = {x = 100, y = 100, z = 100},
seed = 137,
octaves = 3,
persist = 0.7,
},
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle") .. "/schematics/livingjungle_mossyrock.mts",
flags = "place_center_x, place_center_z",
spawn_by = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:mossstone2",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground", "livingjungle:jungleground"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.02,
spread = {x = 100, y = 100, z = 100},
seed = 137,
octaves = 3,
persist = 0.7,
},
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle") .. "/schematics/livingjungle_mossyrock2.mts",
flags = "place_center_x, place_center_z",
spawn_by = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:mossstone3",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground", "livingjungle:jungleground"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.02,
spread = {x = 100, y = 100, z = 100},
seed = 137,
octaves = 3,
persist = 0.7,
},
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle") .. "/schematics/livingjungle_mossyrock3.mts",
flags = "place_center_x, place_center_z",
spawn_by = "default:water_source", "default:river_water_source", "default:water_flowing", "default:river_water_flowing",
rotation = "random",
})
--- crafting
walls.register(":livingjungle:mossstonebrick_wall", S"Jungle Brick Wall", "livingjungle_stonebricks.png",
"livingjungle:mossstonebrick_wall", default.node_sound_stone_defaults())
stairs.register_stair_and_slab(
"livingjungle_stonebricks",
"livingjungle:mossstonebrick",
{cracky = 1, oddly_breakable_by_hand = 0, flammable = 0},
{"livingjungle_stonebricks.png"},
S("Jungle Brick Stair"),
S("Jungle Brick Slab"),
default.node_sound_stone_defaults()
)
minetest.register_node("livingjungle:mossstonebrick", {
description = S("Jungle Brick"),
tiles = {"livingjungle_stonebricks.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "livingjungle:mossstonebrick",
type = "shapeless",
recipe =
{"livingjungle:mossstone"}
})
minetest.register_craft({
output = "livingjungle:mossstonebrick_wall",
type = "shapeless",
recipe =
{"livingjungle:mossstonebrick"}
})
walls.register(":livingjungle:mossstonebrick_wall2", S"Jungle Brick Wall", "livingjungle_stonebricks2.png",
"livingjungle:mossstonebrick_wall2", default.node_sound_stone_defaults())
stairs.register_stair_and_slab(
"livingjungle_stonebricks2",
"livingjungle:mossstonebrick",
{cracky = 1, oddly_breakable_by_hand = 0, flammable = 0},
{"livingjungle_stonebricks2.png"},
S("Jungle Brick Stair"),
S("Jungle Brick Slab"),
default.node_sound_stone_defaults()
)
minetest.register_node("livingjungle:mossstonebrick2", {
description = S("Jungle Brick"),
tiles = {"livingjungle_stonebricks2.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "livingjungle:mossstonebrick2",
type = "shapeless",
recipe =
{"livingjungle:mossstone2"}
})
minetest.register_craft({
output = "livingjungle:mossstonebrick_wall2",
type = "shapeless",
recipe =
{"livingjungle:mossstonebrick2"}
})
walls.register(":livingjungle:mossstonebrick_wall3", S"Jungle Brick Wall", "livingjungle_stonebricks3.png",
"livingjungle:mossstonebrick_wall3", default.node_sound_stone_defaults())
stairs.register_stair_and_slab(
"livingjungle_stonebricks3",
"livingjungle:mossstonebrick",
{cracky = 1, oddly_breakable_by_hand = 0, flammable = 0},
{"livingjungle_stonebricks3.png"},
S("Jungle Brick Stair"),
S("Jungle Brick Slab"),
default.node_sound_wood_defaults()
)
minetest.register_node("livingjungle:mossstonebrick3", {
description = S("Jungle Brick"),
tiles = {"livingjungle_stonebricks3.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "livingjungle:mossstonebrick3",
type = "shapeless",
recipe =
{"livingjungle:mossstone3"}
})
minetest.register_craft({
output = "livingjungle:mossstonebrick_wall3",
type = "shapeless",
recipe =
{"livingjungle:mossstonebrick3"}
})

View file

@ -0,0 +1,727 @@
local S = minetest.get_translator("livingjungle")
local modname = "livingjungle"
local modpath = minetest.get_modpath(modname)
local mg_name = minetest.get_mapgen_setting("mg_name")
-- grass
minetest.register_decoration({
name = "livingjungle:grass1",
deco_type = "simple",
place_on = {"livingjungle:jungleground"},
sidelen = 16,
fill_ratio = 0.115,
y_max = 31000,
y_min = 2,
decoration = "livingjungle:grass1",
})
minetest.register_node("livingjungle:grass1", {
description = S"Jungle Bushplant",
drawtype = "plantlike",
waving = 1,
visual_scale = 2.0,
tiles = {"livingjungle_junglegrass.png"},
inventory_image = "livingjungle_junglegrass.png",
wield_image = "livingjungle_junglegrass.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.0, 4 / 16},
},
})
minetest.register_decoration({
name = "livingjungle:grass2",
deco_type = "simple",
place_on = {"livingjungle:jungleground"},
sidelen = 16,
fill_ratio = 0.115,
y_max = 31000,
y_min = 2,
decoration = "livingjungle:grass2",
})
minetest.register_node("livingjungle:grass2", {
description = S"Jungle Fern",
drawtype = "plantlike",
waving = 1,
visual_scale = 2.0,
tiles = {"livingjungle_junglefern.png"},
inventory_image = "livingjungle_junglefern.png",
wield_image = "livingjungle_junglefern.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.0, 4 / 16},
},
})
--- decor plants
minetest.register_node("livingjungle:alocasia", {
description = S"Alocasia Bush",
drawtype = "plantlike",
waving = 1,
visual_scale = 2.0,
tiles = {"livingjungle_alocasia.png"},
inventory_image = "livingjungle_alocasia.png",
wield_image = "livingjungle_alocasia.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.0, 4 / 16},
},
})
minetest.register_decoration({
name = "livingjungle:livingjungle:alocasia",
deco_type = "simple",
place_on = {"livingjungle:leafyjungleground"},
sidelen = 16,
noise_params = {
offset = -0.025,
scale = 0.09,
spread = {x = 100, y = 100, z = 100},
seed = 3602,
octaves = 4,
persist = 0.9,
},
y_max = 31000,
y_min = 1,
decoration = "livingjungle:alocasia",
})
minetest.register_node("livingjungle:flamingoflower", {
description = S"Flamingo Flower",
drawtype = "plantlike",
waving = 1,
visual_scale = 2.0,
tiles = {"livingjungle_flamingoflower.png"},
inventory_image = "livingjungle_flamingoflower.png",
wield_image = "livingjungle_flamingoflower.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.0, 4 / 16},
},
})
minetest.register_decoration({
name = "livingjungle:flamingoflower",
deco_type = "simple",
place_on = {"livingjungle:leafyjungleground"},
sidelen = 16,
noise_params = {
offset = -0.025,
scale = 0.09,
spread = {x = 100, y = 100, z = 100},
seed = 722,
octaves = 4,
persist = 0.9,
},
y_max = 31000,
y_min = 1,
decoration = "livingjungle:flamingoflower",
})
minetest.register_node("livingjungle:stinkflower_core", {
description = S("Stinkflower"),
tiles = {
"livingjungle_stinkflower_middle.png",
"livingjungle_stinkflower_middle.png",
"livingjungle_stinkflower_middle.png"
},
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
minetest.register_node("livingjungle:stinkflower_leaf", {
description = S("Stinkflower Leaf"),
tiles = {
"livingjungle_stinkflower_side.png",
"livingjungle_stinkflower_side.png",
"livingjungle_stinkflower_side.png"
},
groups = {snappy = 3, flower = 1, flora = 1, attached_node = 1, flammable = 1, beautiflowers = 1},
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"livingjungle:jungleground"},
place_offset_y = 1,
sidelen = 16,
noise_params = {
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 111,
octaves = 3,
persist = 0.8,
},
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/stinkflower.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
--- trees
-- New giantforest paleo samauma tree
local function grow_new_samauma_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
minetest.get_node_timer(pos):start(math.random(240, 600))
return
end
minetest.remove_node(pos)
minetest.place_schematic({x = pos.x - 13, y = pos.y - 0, z = pos.z - 13}, modpath.."/schematics/samauma_tree.mts", "0", nil, false)
end
if minetest.get_modpath("bonemeal") then
bonemeal:add_sapling({
{"livingjungle:samauma_sapling", grow_new_samauma_tree, "soil"},
})
end
-- samauma trunk
minetest.register_node("livingjungle:samauma_trunk", {
description = S("Samauma Trunk"),
tiles = {
"livingjungle_samauma_trunk_top.png",
"livingjungle_samauma_trunk_top.png",
"livingjungle_samauma_trunk.png"
},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
-- paleo samauma wood
minetest.register_node("livingjungle:samauma_wood", {
description = S("Samauma Wood"),
tiles = {"livingjungle_samauma_wood.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
output = "livingjungle:samauma_wood 4",
recipe = {{"livingjungle:samauma_trunk"}}
})
minetest.register_node("livingjungle:samauma_leaves", {
description = S("Samauma Leaves"),
drawtype = "allfaces_optional",
waving = 1,
visual_scale = 1.0,
tiles = {"livingjungle_samauma_leaves.png"},
special_tiles = {"livingjungle_samauma_leaves.png"},
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, winleafdecay = 3},
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/50 chance
items = {'livingjungle:samauma_sapling'},
rarity = 50,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = {'livingjungle:samauma_leaves'},
}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
minetest.register_node("livingjungle:samauma_sapling", {
description = S("Samauma Sapling"),
drawtype = "plantlike",
tiles = {"livingjungle_samauma_sapling.png"},
inventory_image = "livingjungle_samauma_sapling.png",
wield_image = "livingjungle_samauma_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_samauma_tree,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"livingjungle:samauma_sapling",
-- minp, maxp to be checked, relative to sapling pos
{x = -1, y = 0, z = -1},
{x = 1, y = 1, z = 1},
-- maximum interval of interior volume check
2)
return itemstack
end,
})
stairs.register_stair_and_slab(
"livingjungle_samauma_wood",
"livingjungle:samauma_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"livingjungle_samauma_wood.png"},
S("Samauma Stair"),
S("Samauma Slab"),
default.node_sound_wood_defaults()
)
stairs.register_stair_and_slab(
"livingjungle_samauma_trunk",
"livingjungle:samauma_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"livingjungle_samauma_trunk_top.png", "livingjungle_samauma_trunk_top.png", "livingjungle_samauma_trunk.png"},
S("Samauma Trunk Stair"),
S("Samauma Trunk Slab"),
default.node_sound_wood_defaults()
)
doors.register_fencegate(
"livingjungle:gate_samauma_wood",
{
description = S("Samauma Wood Fence Gate"),
texture = "livingjungle_samauma_wood.png",
material = "livingjungle:samauma_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
}
)
default.register_fence(
"livingjungle:fence_samauma_wood",
{
description = S("Samauma Fence"),
texture = "livingjungle_samauma_fencewood.png",
inventory_image = "default_fence_overlay.png^livingjungle_samauma_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^livingjungle_samauma_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "livingjungle:samauma_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
}
)
default.register_fence_rail(
"livingjungle:fence_rail_samauma_wood",
{
description = S("Samauma Fence Rail"),
texture = "livingjungle_samauma_fencewood.png",
inventory_image = "default_fence_rail_overlay.png^livingjungle_samauma_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^livingjungle_samauma_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "livingjungle:samauma_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
}
)
minetest.register_decoration({
name = "livingjungle:samauma_tree",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00095,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:samauma_tree2",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00095,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree2.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:samauma_tree3",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00935,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree3.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:samauma_tree11",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00095,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree11.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:samauma_tree22",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00095,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree22.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:samauma_tree33",
deco_type = "schematic",
place_on = {"livingjungle:leafyjungleground"},
place_offset_y = -3,
sidelen = 16,
fill_ratio = 0.00935,
y_max = 31000,
y_min = 1,
schematic = minetest.get_modpath("livingjungle").."/schematics/samauma_tree33.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_node("livingjungle:lianabranch", {
description = S("Liana Branch"),
drawtype = "plantlike",
waving = 1,
tiles = {"livingjungle_liana_branch.png"},
inventory_image = "livingjungle_liana_branch.png",
wield_image = "livingjungle_liana_branch.png",
paramtype = "light",
sunlight_propagates = true,
climbable = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
groups = {snappy = 3, flammable = 2, winleafdecay = 3},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_node("livingjungle:lianabranch3", {
description = S("Liana Branch"),
drawtype = "raillike",
waving = 1,
tiles = {"livingjungle_liana_branch3.png"},
inventory_image = "livingjungle_liana_branch3.png",
wield_image = "livingjungle_liana_branch3.png",
paramtype = "light",
sunlight_propagates = true,
climbable = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
groups = {snappy = 3, flammable = 2, winleafdecay = 3},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_node("livingjungle:lianaleaves", {
description = S("Liana Leaves"),
drawtype = "plantlike",
waving = 1,
tiles = {"livingjungle_liana_leaves.png"},
inventory_image = "livingjungle_liana_leaves.png",
wield_image = "livingjungle_liana_leaves.png",
paramtype = "light",
sunlight_propagates = true,
climbable = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
groups = {snappy = 3, flammable = 2, winleafdecay = 3},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_node("livingjungle:liana_stem", {
description = S("Liana Stem"),
tiles = {
"livingjungle_liana_stem.png",
"livingjungle_liana_stem.png",
"livingjungle_liana_stem.png"
},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
--- mangroves
minetest.register_node("livingjungle:mangrove_root", {
description = S("Mangrove Root"),
drawtype = "plantlike_rooted",
waving = 0,
paramtype = "light",
tiles = {"default_sand.png"},
special_tiles = {{name = "livingjungle_mangrove_root.png", tileable_vertical = true}},
inventory_image = "livingjungle_mangrove_root.png",
wield_image = "livingjungle_mangrove_root.png",
groups = {snappy = 3},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
{-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
},
},
node_dig_prediction = "default:sand",
node_placement_prediction = "",
sounds = default.node_sound_stone_defaults({
dig = {name = "default_dig_snappy", gain = 0.2},
dug = {name = "default_grass_footstep", gain = 0.25},
}),
after_destruct = function(pos, oldnode)
minetest.set_node(pos, {name = "default:sand"})
end,
})
minetest.register_node("livingjungle:mangrove_root2", {
description = S("Mangrove Air Roots"),
drawtype = "plantlike",
waving = 0,
tiles = {"livingjungle_mangrove_root.png"},
inventory_image = "livingjungle_mangrove_root.png",
wield_image = "livingjungle_mangrove_root.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
},
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_node("livingjungle:mangrove_stem", {
description = S("Mangrove Stem"),
tiles = {
"livingjungle_mangrove_stem.png",
"livingjungle_mangrove_stem.png",
"livingjungle_mangrove_stem.png"
},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
minetest.register_node("livingjungle:mangrove_leaves", {
description = S("Mangrove Leaves"),
drawtype = "allfaces_optional",
waving = 1,
visual_scale = 1.0,
tiles = {"livingjungle_mangrove_leaves.png"},
special_tiles = {"livingjungle_mangrove_leaves.png"},
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, winleafdecay = 3},
drop = {
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
minetest.register_decoration({
name = "livingjungle:mangrovetree",
deco_type = "schematic",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.0,
scale = 0.010,
spread = {x = 100, y = 100, z = 100},
seed = 3602,
octaves = 5,
persist = 1,
},
y_max = 0,
y_min = 0,
biomes = {"livingjungle:jungle_shore","junglee_shore"},
schematic = minetest.get_modpath("livingjungle").."/schematics/livingjungle_mangrovetree.mts",
flags = "place_center_x, place_center_z",
flags = "force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:mangrovetree2",
deco_type = "schematic",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.0,
scale = 0.035,
spread = {x = 100, y = 100, z = 100},
seed = 3602,
octaves = 5,
persist = 1,
},
y_max = 0,
y_min = 0,
biomes = {"livingjungle:jungle_shore","junglee_shore"},
schematic = minetest.get_modpath("livingjungle").."/schematics/livingjungle_mangrovetree2.mts",
flags = "place_center_x, place_center_z",
flags = "force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:mangrovetree2",
deco_type = "schematic",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.0,
scale = 0.035,
spread = {x = 100, y = 100, z = 100},
seed = 3602,
octaves = 5,
persist = 1,
},
y_max = 0,
y_min = 0,
biomes = {"livingjungle:jungle_shore","junglee_shore"},
schematic = minetest.get_modpath("livingjungle").."/schematics/livingjungle_mangrovetree2.mts",
flags = "place_center_x, place_center_z",
flags = "force_placement",
rotation = "random",
})
minetest.register_decoration({
name = "livingjungle:mangrovetree3",
deco_type = "schematic",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.0,
scale = 0.019,
spread = {x = 100, y = 100, z = 100},
seed = 3602,
octaves = 5,
persist = 1,
},
y_max = 0,
y_min = 0,
biomes = {"livingjungle:jungle_shore","junglee_shore"},
schematic = minetest.get_modpath("livingjungle").."/schematics/livingjungle_mangrovetree3.mts",
flags = "place_center_x, place_center_z",
flags = "force_placement",
rotation = "random",
})
if minetest.get_modpath("bonemeal") then
bonemeal:add_deco({
{"livingjungle:jungleground", {"livingjungle:grass1", "livingjungle:grass2", "livingjungle:alocasia", "livingjungle:flamingoflower"}, {}}
})
end
if minetest.get_modpath("bonemeal") then
bonemeal:add_deco({
{"livingjungle:leafyjungleground", {"livingjungle:grass1", "livingjungle:grass2", "livingjungle:alocasia", "livingjungle:flamingoflower"}, {}}
})
end

View file

@ -0,0 +1,18 @@
default.register_leafdecay({
trunks = {"livingjungle:samauma_trunk"},
leaves = {"livingjungle:samauma_leaves", "livingjungle:lianaleaves", "livingjungle:lianabranch", "livingjungle:lianabranch3"},
radius = 9
})
default.register_leafdecay({
trunks = {"livingjungle:liana_stem"},
leaves = {"livingjungle:lianaleaves", "livingjungle:lianabranch", "livingjungle:lianabranch3"},
radius = 6
})
default.register_leafdecay({
trunks = {"livingjungle:mangrove_root2", "livingjungle:mangrove_stem"},
leaves = {"livingjungle:mangrove_leaves"},
radius = 5
})

View file

@ -0,0 +1,33 @@
# textdomain: livingjungle
Green Jungle Ground=Grüner Dschungelboden
Leafy Jungle Ground=Dschungelboden mit Laub
Mossy Stone=Moosiger Stein
Jungle Brick Wall=Dschungelziegel Mauer
Jungle Brick Stair=Dschungelziegel Treppe
Jungle Brick Slab=Dschungelziegel Platte
Jungle Brick=Dschungelziegel
Jungle Bushplant=Dschungel Buschpflanze
Jungle Fern=Dschungelfarn
Alocasia Bush=Alokasie
Flamingo Flower=Flamingoblume
Stinkflower=Rafflesie
Stinkflower Leaf=Rafflesienblatt
Samauma Trunk=Samauma Stamm
Samauma Wood=Samauma Holz
Samauma Leaves=Samauma Blätter
Samauma Sapling=Samauma Setzling
Samauma Stair=Samauma Holztreppe
Samauma Slab=Samauma Holzplatte
Samauma Trunk Stair=Samauma Stamm Treppe
Samauma Trunk Slab=Samauma Stamm Platte
Samauma Wood Fence Gate=Samauma Holzzauntor
Samauma Fence=Samauma Zaun
Samauma Fence Rail=Samauma Geländer
Liana Branch=Liane
Liana Leaves=Lianenblätter
Liana Stem=Lianen Stamm
Mangrove Root=Mangrovenwurzeln
Mangrove Air Roots=Mangroven Luftwurzeln
Mangrove Stem=Mangrovenstamm
Mangrove Leaves=Mangrovenblätter

View file

@ -0,0 +1,4 @@
name = livingjungle
depends = default, stairs, doors
optional_depends = bonemeal
description = adds a new type of jungle biome to minetest game.

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB