summaryrefslogtreecommitdiff
path: root/plantlife_modpack/trunks
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-04-01 20:02:19 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-04-01 21:09:33 -0400
commitda66780a569712c23ae4f2996cfb4608a9f9d69d (patch)
tree217556029a78bc23ad4564720afc86de97228a04 /plantlife_modpack/trunks
parent615b22df4d423aded3613db7716943a2f389b047 (diff)
downloaddreambuilder_modpack-da66780a569712c23ae4f2996cfb4608a9f9d69d.tar
dreambuilder_modpack-da66780a569712c23ae4f2996cfb4608a9f9d69d.tar.gz
dreambuilder_modpack-da66780a569712c23ae4f2996cfb4608a9f9d69d.tar.bz2
dreambuilder_modpack-da66780a569712c23ae4f2996cfb4608a9f9d69d.tar.xz
dreambuilder_modpack-da66780a569712c23ae4f2996cfb4608a9f9d69d.zip
copy all standard Dreambuilder mods in from the old subgame
(exactly as last supplied there, updates to these mods will follow later)
Diffstat (limited to 'plantlife_modpack/trunks')
-rw-r--r--plantlife_modpack/trunks/crafting.lua133
-rw-r--r--plantlife_modpack/trunks/depends.txt6
-rw-r--r--plantlife_modpack/trunks/generating.lua554
-rw-r--r--plantlife_modpack/trunks/init.lua17
-rw-r--r--plantlife_modpack/trunks/nodes.lua368
-rw-r--r--plantlife_modpack/trunks/textures/credit_textures.txt34
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/comboSticks.pngbin0 -> 243 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/comboSticks_2.pngbin0 -> 363 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.pngbin0 -> 135 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.pngbin0 -> 136 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.pngbin0 -> 147 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.pngbin0 -> 142 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.pngbin0 -> 138 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.pngbin0 -> 152 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.pngbin0 -> 170 bytes
-rw-r--r--plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.pngbin0 -> 200 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_moss.pngbin0 -> 199 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_moss_fungus.pngbin0 -> 230 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_root_mask.pngbin0 -> 191 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_1.pngbin0 -> 134 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_10.pngbin0 -> 149 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_11.pngbin0 -> 122 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_12.pngbin0 -> 115 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_13.pngbin0 -> 105 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_2.pngbin0 -> 141 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_3.pngbin0 -> 136 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_4.pngbin0 -> 126 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_5.pngbin0 -> 110 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_6.pngbin0 -> 74 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_7.pngbin0 -> 104 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_8.pngbin0 -> 118 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twig_9.pngbin0 -> 110 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twigs.pngbin0 -> 759 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twigs_corner.pngbin0 -> 641 bytes
-rw-r--r--plantlife_modpack/trunks/textures/trunks_twigs_top.pngbin0 -> 471 bytes
-rw-r--r--plantlife_modpack/trunks/trunks_settings.txt70
36 files changed, 1182 insertions, 0 deletions
diff --git a/plantlife_modpack/trunks/crafting.lua b/plantlife_modpack/trunks/crafting.lua
new file mode 100644
index 0000000..02f3991
--- /dev/null
+++ b/plantlife_modpack/trunks/crafting.lua
@@ -0,0 +1,133 @@
+-- Code by Mossmanikin
+-----------------------------------------------------------------------------------------------
+-- TWiGS
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- *leaves --> twigs
+ output = "trunks:twig_1 2",
+ recipe = {{"group:leafdecay"}}
+})
+if minetest.get_modpath("moretrees") ~= nil then
+minetest.register_craft({ -- moretrees_leaves --> twigs
+ output = "trunks:twig_1 2",
+ recipe = {{"group:moretrees_leaves"}}
+})
+minetest.register_craft({ -- except moretrees:palm_leaves
+ output = "moretrees:palm_leaves",
+ recipe = {{"moretrees:palm_leaves"}}
+})
+end
+if minetest.get_modpath("bushes") ~= nil then
+minetest.register_craft({ -- BushLeaves --> twigs
+ output = "trunks:twig_1 2",
+ recipe = {{"bushes:BushLeaves1"}}
+})
+minetest.register_craft({
+ output = "trunks:twig_1 2",
+ recipe = {{"bushes:BushLeaves2"}}
+})
+minetest.register_craft({ -- bushbranches --> twigs
+ output = "trunks:twig_1 4",
+ recipe = {{"bushes:bushbranches1"}}
+})
+minetest.register_craft({
+ output = "trunks:twig_1 4",
+ recipe = {{"bushes:bushbranches2"}}
+})
+minetest.register_craft({
+ output = "trunks:twig_1 4",
+ recipe = {{"bushes:bushbranches2a"}}
+})
+minetest.register_craft({
+ output = "trunks:twig_1 4",
+ recipe = {{"bushes:bushbranches3"}}
+})
+end
+minetest.register_craft({ -- twigs block --> twigs
+ output = "trunks:twig_1 8",
+ recipe = {{"trunks:twigs"}}
+})
+minetest.register_craft({ -- twigs_slab --> twigs
+ output = "trunks:twig_1 4",
+ recipe = {{"trunks:twigs_slab"}}
+})
+minetest.register_craft({ -- twigs_roof --> twigs
+ output = "trunks:twig_1 4",
+ recipe = {{"trunks:twigs_roof"}}
+})
+minetest.register_craft({ -- twigs_roof_corner --> twigs
+ output = "trunks:twig_1 3",
+ recipe = {{"trunks:twigs_roof_corner"}}
+})
+minetest.register_craft({ -- twigs_roof_corner_2 --> twigs
+ output = "trunks:twig_1 3",
+ recipe = {{"trunks:twigs_roof_corner_2"}}
+})
+-----------------------------------------------------------------------------------------------
+-- STiCK
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twig --> stick
+ output = "default:stick",
+ recipe = {{"trunks:twig_1"}}
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS BLoCK
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twigs --> twigs block
+ output = "trunks:twigs",
+ recipe = {
+ {"trunks:twig_1","trunks:twig_1","trunks:twig_1"},
+ {"trunks:twig_1", "" ,"trunks:twig_1"},
+ {"trunks:twig_1","trunks:twig_1","trunks:twig_1"},
+ }
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS SLaBS
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twigs blocks --> twigs_slabs
+ output = "trunks:twigs_slab 6",
+ recipe = {
+ {"trunks:twigs","trunks:twigs","trunks:twigs"},
+ }
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooFS
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twigs blocks --> twigs_roofs
+ output = "trunks:twigs_roof 4",
+ recipe = {
+ {"trunks:twigs",""},
+ {"","trunks:twigs"},
+ }
+})
+minetest.register_craft({
+ output = "trunks:twigs_roof 4",
+ recipe = {
+ {"","trunks:twigs"},
+ {"trunks:twigs",""},
+ }
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooF CoRNeRS
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twigs blocks --> twigs_roof_corners
+ output = "trunks:twigs_roof_corner 8",
+ recipe = {
+ { "" ,"trunks:twigs", "" },
+ {"trunks:twigs", "" ,"trunks:twigs"},
+ }
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooF CoRNeRS 2
+-----------------------------------------------------------------------------------------------
+minetest.register_craft({ -- twigs blocks --> twigs_roof_corner_2's
+ output = "trunks:twigs_roof_corner_2 8",
+ recipe = {
+ {"trunks:twigs", "" ,"trunks:twigs"},
+ { "" ,"trunks:twigs", "" },
+ }
+}) \ No newline at end of file
diff --git a/plantlife_modpack/trunks/depends.txt b/plantlife_modpack/trunks/depends.txt
new file mode 100644
index 0000000..99cfba1
--- /dev/null
+++ b/plantlife_modpack/trunks/depends.txt
@@ -0,0 +1,6 @@
+default
+biome_lib
+bushes?
+ferns?
+moretrees?
+trees? \ No newline at end of file
diff --git a/plantlife_modpack/trunks/generating.lua b/plantlife_modpack/trunks/generating.lua
new file mode 100644
index 0000000..e544a21
--- /dev/null
+++ b/plantlife_modpack/trunks/generating.lua
@@ -0,0 +1,554 @@
+-- Code by Mossmanikin, Neuromancer, and others
+
+local function clone_node(name)
+ local node2 = {}
+ local node = minetest.registered_nodes[name]
+ for k,v in pairs(node) do
+ node2[k]=v
+ end
+ return node2
+end
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS
+-----------------------------------------------------------------------------------------------
+
+abstract_trunks.place_twig = function(pos)
+ local twig_size = math.random(1,27)
+
+ local right_here = {x=pos.x , y=pos.y+1, z=pos.z }
+ local north = {x=pos.x , y=pos.y+1, z=pos.z+1}
+ local north_east = {x=pos.x+1, y=pos.y+1, z=pos.z+1}
+ local east = {x=pos.x+1, y=pos.y+1, z=pos.z }
+ local south_east = {x=pos.x+1, y=pos.y+1, z=pos.z-1}
+ local south = {x=pos.x , y=pos.y+1, z=pos.z-1}
+ local south_west = {x=pos.x-1, y=pos.y+1, z=pos.z-1}
+ local west = {x=pos.x-1, y=pos.y+1, z=pos.z }
+ local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1}
+
+ local node_here = minetest.get_node(right_here)
+ local node_north = minetest.get_node(north)
+ local node_n_e = minetest.get_node(north_east)
+ local node_east = minetest.get_node(east)
+ local node_s_e = minetest.get_node(south_east)
+ local node_south = minetest.get_node(south)
+ local node_s_w = minetest.get_node(south_west)
+ local node_west = minetest.get_node(west)
+ local node_n_w = minetest.get_node(north_west)
+-- small twigs
+ if twig_size <= 16 then
+ minetest.set_node(right_here, {name="trunks:twig_"..math.random(1,4), param2=math.random(0,3)})
+ end
+-- big twigs
+ if Big_Twigs == true then
+-- big twig 1
+ if twig_size == 17 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_5"})
+ end
+ if minetest.registered_nodes[node_n_e.name].buildable_to then
+ minetest.set_node(north_east, {name="trunks:twig_7"})
+ end
+ if minetest.registered_nodes[node_east.name].buildable_to then
+ minetest.set_node(east, {name="trunks:twig_8"})
+ end
+ end
+ elseif twig_size == 18 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_5", param2=1})
+ end
+ if minetest.registered_nodes[node_s_e.name].buildable_to then
+ minetest.set_node(south_east, {name="trunks:twig_7", param2=1})
+ end
+ if minetest.registered_nodes[node_south.name].buildable_to then
+ minetest.set_node(south, {name="trunks:twig_8", param2=1})
+ end
+ end
+ elseif twig_size == 19 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_5", param2=2})
+ end
+ if minetest.registered_nodes[node_s_w.name].buildable_to then
+ minetest.set_node(south_west, {name="trunks:twig_7", param2=2})
+ end
+ if minetest.registered_nodes[node_west.name].buildable_to then
+ minetest.set_node(west, {name="trunks:twig_8", param2=2})
+ end
+ end
+ elseif twig_size == 20 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_5", param2=3})
+ end
+ if minetest.registered_nodes[node_n_w.name].buildable_to then
+ minetest.set_node(north_west, {name="trunks:twig_7", param2=3})
+ end
+ if minetest.registered_nodes[node_north.name].buildable_to then
+ minetest.set_node(north, {name="trunks:twig_8", param2=3})
+ end
+ end
+-- big twig 2
+ elseif twig_size == 21 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_9"})
+ end
+ if minetest.registered_nodes[node_north.name].buildable_to then
+ minetest.set_node(north, {name="trunks:twig_10"})
+ end
+ if minetest.registered_nodes[node_n_e.name].buildable_to then
+ minetest.set_node(north_east, {name="trunks:twig_11"})
+ end
+ end
+ elseif twig_size == 22 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_9", param2=1})
+ end
+ if minetest.registered_nodes[node_east.name].buildable_to then
+ minetest.set_node(east, {name="trunks:twig_10", param2=1})
+ end
+ if minetest.registered_nodes[node_s_e.name].buildable_to then
+ minetest.set_node(south_east, {name="trunks:twig_11", param2=1})
+ end
+ end
+ elseif twig_size == 23 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_9", param2=2})
+ end
+ if minetest.registered_nodes[node_south.name].buildable_to then
+ minetest.set_node(south, {name="trunks:twig_10", param2=2})
+ end
+ if minetest.registered_nodes[node_s_w.name].buildable_to then
+ minetest.set_node(south_west, {name="trunks:twig_11", param2=2})
+ end
+ end
+ elseif twig_size == 24 then
+ if not (minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}).name].buildable_to
+ or minetest.registered_nodes[minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name].buildable_to) then
+
+ if minetest.registered_nodes[node_here.name].buildable_to then
+ minetest.set_node(right_here, {name="trunks:twig_9", param2=3})
+ end
+ if minetest.registered_nodes[node_west.name].buildable_to then
+ minetest.set_node(west, {name="trunks:twig_10", param2=3})
+ end
+ if minetest.registered_nodes[node_n_w.name].buildable_to then
+ minetest.set_node(north_west, {name="trunks:twig_11", param2=3})
+ end
+ end
+ elseif twig_size <= 25 then
+ minetest.set_node(right_here, {name="trunks:twig_"..math.random(12,13), param2=math.random(0,3)})
+ end
+ end
+end
+
+if Twigs_on_ground == true then
+biome_lib:register_generate_plant({
+ surface = {"default:dirt_with_grass"},
+ max_count = Twigs_on_ground_Max_Count,
+ rarity = Twigs_on_ground_Rarity,
+ min_elevation = 1,
+ max_elevation = 40,
+ near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
+ near_nodes_size = 3,
+ near_nodes_vertical = 1,
+ near_nodes_count = 1,
+ plantlife_limit = -0.9,
+ },
+ abstract_trunks.place_twig
+)
+end
+
+if Twigs_on_water == true then
+biome_lib:register_generate_plant({
+ surface = {"default:water_source"},
+ max_count = Twigs_on_water_Max_Count,
+ rarity = Twigs_on_water_Rarity,
+ min_elevation = 1,
+ max_elevation = 40,
+ near_nodes = {"group:tree"},
+ near_nodes_size = 3,
+ near_nodes_vertical = 1,
+ near_nodes_count = 1,
+ plantlife_limit = -0.9,
+ },
+ abstract_trunks.place_twig
+)
+end
+
+-----------------------------------------------------------------------------------------------
+-- TRuNKS
+-----------------------------------------------------------------------------------------------
+local TRuNKS = {
+-- MoD TRuNK NR
+ {"default", "tree", 1},
+ {"default", "jungletree", 2},
+ {"default", "pine_tree", 12},
+
+ {"trees", "tree_conifer", 3},
+ {"trees", "tree_mangrove", 4},
+ {"trees", "tree_palm", 5},
+
+ {"moretrees", "apple_tree_trunk", 6},
+ {"moretrees", "beech_trunk", 7},
+ {"moretrees", "birch_trunk", 8},
+ {"moretrees", "fir_trunk", 9},
+ {"moretrees", "oak_trunk", 10},
+ {"moretrees", "palm_trunk", 11},
+ {"moretrees", "rubber_tree_trunk", 13},
+ {"moretrees", "rubber_tree_trunk_empty", 14},
+ {"moretrees", "sequoia_trunk", 15},
+ {"moretrees", "spruce_trunk", 16},
+ {"moretrees", "willow_trunk", 17},
+}
+
+if Horizontal_Trunks == true then -- see settings.txt
+for i in pairs(TRuNKS) do
+ local MoD = TRuNKS[i][1]
+ local TRuNK = TRuNKS[i][2]
+ local NR = TRuNKS[i][3]
+ local trunkname = MoD..":"..TRuNK
+ if minetest.get_modpath(MoD) ~= nil
+ and NR < 6 -- moretrees trunks allready have facedir
+ and minetest.registered_nodes[trunkname] then -- the node being called exists.
+ temptrunk = clone_node(trunkname)
+ temptrunk.paramtype2 = "facedir"
+ minetest.register_node(":"..trunkname, temptrunk)
+ end
+end
+end
+
+abstract_trunks.place_trunk = function(pos)
+
+ local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
+ local north = {x=pos.x, y=pos.y+1, z=pos.z+1}
+ local north2 = {x=pos.x, y=pos.y+1, z=pos.z+2}
+ local south = {x=pos.x, y=pos.y+1, z=pos.z-1}
+ local south2 = {x=pos.x, y=pos.y+1, z=pos.z-2}
+ local west = {x=pos.x-1, y=pos.y+1, z=pos.z}
+ local west2 = {x=pos.x-2, y=pos.y+1, z=pos.z}
+ local east = {x=pos.x+1, y=pos.y+1, z=pos.z}
+ local east2 = {x=pos.x+2, y=pos.y+1, z=pos.z}
+
+ local node_here = minetest.get_node(right_here)
+ local node_north = minetest.get_node(north)
+ local node_north2 = minetest.get_node(north2)
+ local node_south = minetest.get_node(south)
+ local node_south2 = minetest.get_node(south2)
+ local node_west = minetest.get_node(west)
+ local node_west2 = minetest.get_node(west2)
+ local node_east = minetest.get_node(east)
+ local node_east2 = minetest.get_node(east2)
+ if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
+ for i in pairs(TRuNKS) do
+ local MoD = TRuNKS[i][1]
+ local TRuNK = TRuNKS[i][2]
+ local NR = TRuNKS[i][3]
+ local chance = math.random(1, 17)
+ local length = math.random(3,5)
+ if chance == NR then
+ local trunk_type = math.random(1,3)
+ if trunk_type == 1 then
+ if minetest.get_modpath(MoD) ~= nil then
+ minetest.set_node(right_here, {name=MoD..":"..TRuNK})
+ else
+ minetest.set_node(right_here, {name="default:tree"})
+ end
+ elseif trunk_type == 2 and Horizontal_Trunks == true then
+ if minetest.get_modpath(MoD) ~= nil then
+ if minetest.registered_nodes[node_north.name].buildable_to then
+ minetest.set_node(north, {name=MoD..":"..TRuNK, param2=4})
+ end
+
+ if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
+ minetest.set_node(north2, {name=MoD..":"..TRuNK, param2=4})
+ end
+
+ minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=4})
+ if minetest.registered_nodes[node_south.name].buildable_to then
+ minetest.set_node(south, {name=MoD..":"..TRuNK, param2=4})
+ end
+ if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
+ minetest.set_node(south2, {name=MoD..":"..TRuNK, param2=4})
+ end
+ else
+ if minetest.registered_nodes[node_north.name].buildable_to then
+ minetest.set_node(north, {name="default:tree", param2=4})
+ end
+ if length >= 4 and minetest.registered_nodes[node_north2.name].buildable_to then
+ minetest.set_node(north2, {name="default:tree", param2=4})
+ end
+ minetest.set_node(right_here, {name="default:tree", param2=4})
+ if minetest.registered_nodes[node_south.name].buildable_to then
+ minetest.set_node(south, {name="default:tree", param2=4})
+ end
+ if length == 5 and minetest.registered_nodes[node_south2.name].buildable_to then
+ minetest.set_node(south2, {name="default:tree", param2=4})
+ end
+ end
+ elseif trunk_type == 3 and Horizontal_Trunks == true then
+ if minetest.get_modpath(MoD) ~= nil then
+ if minetest.registered_nodes[node_west.name].buildable_to then
+ minetest.set_node(west, {name=MoD..":"..TRuNK, param2=12})
+ end
+ if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
+ minetest.set_node(west2, {name=MoD..":"..TRuNK, param2=12})
+ end
+ minetest.set_node(right_here, {name=MoD..":"..TRuNK, param2=12})
+ if minetest.registered_nodes[node_east.name].buildable_to then
+ minetest.set_node(east, {name=MoD..":"..TRuNK, param2=12})
+ end
+ if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
+ minetest.set_node(east2, {name=MoD..":"..TRuNK, param2=12})
+ end
+ else
+ if minetest.registered_nodes[node_west.name].buildable_to then
+ minetest.set_node(west, {name="default:tree", param2=12})
+ end
+ if length >= 4 and minetest.registered_nodes[node_west2.name].buildable_to then
+ minetest.set_node(west2, {name="default:tree", param2=12})
+ end
+ minetest.set_node(right_here, {name="default:tree", param2=12})
+ if minetest.registered_nodes[node_east.name].buildable_to then
+ minetest.set_node(east, {name="default:tree", param2=12})
+ end
+ if length == 5 and minetest.registered_nodes[node_east2.name].buildable_to then
+ minetest.set_node(east2, {name="default:tree", param2=12})
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+biome_lib:register_generate_plant({
+ surface = {"default:dirt_with_grass"},
+ max_count = Trunks_Max_Count, -- 320,
+ rarity = Trunks_Rarity, -- 99,
+ min_elevation = 1,
+ max_elevation = 40,
+ avoid_nodes = {"group:tree"},
+ avoid_radius = 1,
+ near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
+ near_nodes_size = 3,
+ near_nodes_vertical = 1,
+ near_nodes_count = 1,
+ plantlife_limit = -0.9,
+ },
+ abstract_trunks.place_trunk
+)
+
+-----------------------------------------------------------------------------------------------
+-- MoSS & FuNGuS -- on ground
+-----------------------------------------------------------------------------------------------
+if Moss_on_ground == true then
+abstract_trunks.grow_moss_on_ground = function(pos)
+ local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
+ local moss_type = math.random(1,21)
+
+ if moss_type == 1 then
+ minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3)})
+ else
+ minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3)})
+ end
+
+end
+
+biome_lib:register_generate_plant({
+ surface = {"default:dirt_with_grass"},
+ max_count = Moss_on_ground_Max_Count,
+ rarity = Moss_on_ground_Rarity,
+ min_elevation = 1,
+ max_elevation = 40,
+ near_nodes = {
+ "group:tree",
+ "ferns:fern_03",
+ "ferns:fern_02",
+ "ferns:fern_01"
+ },
+ near_nodes_size = 2,
+ near_nodes_vertical = 1,
+ near_nodes_count = 1,
+ plantlife_limit = -0.9,
+ },
+ abstract_trunks.grow_moss_on_ground
+)
+end
+
+-----------------------------------------------------------------------------------------------
+-- MoSS & FuNGuS -- on trunks
+-----------------------------------------------------------------------------------------------
+if Moss_on_trunk == true then
+abstract_trunks.grow_moss_on_trunk = function(pos)
+ local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
+ local at_side_n = {x=pos.x, y=pos.y, z=pos.z+1}
+ local at_side_e = {x=pos.x+1, y=pos.y, z=pos.z}
+ local at_side_s = {x=pos.x, y=pos.y, z=pos.z-1}
+ local at_side_w = {x=pos.x-1, y=pos.y, z=pos.z}
+ local undrneath = {x=pos.x, y=pos.y-1, z=pos.z}
+
+ local node_here = minetest.get_node(on_ground)
+ local node_north = minetest.get_node(at_side_n)
+ local node_east = minetest.get_node(at_side_e)
+ local node_south = minetest.get_node(at_side_s)
+ local node_west = minetest.get_node(at_side_w)
+ local node_under = minetest.get_node(undrneath)
+
+ --if minetest.get_item_group(node_under.name, "tree") < 1 then
+ local moss_type = math.random(1,41)
+ if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
+ if moss_type == 1 then
+ minetest.set_node(on_ground, {name="trunks:moss_fungus", param2=math.random(0,3) --[[1]]})
+ elseif moss_type < 22 then
+ minetest.set_node(on_ground, {name="trunks:moss", param2=math.random(0,3) --[[1]]})
+ end
+ end
+ local moss_type = math.random(1,31) -- cliche of more moss at north
+ if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true,
+ if moss_type == 1 then
+ minetest.set_node(at_side_n, {name="trunks:moss_fungus", param2=math.random(4,7)}) -- 5,4,6,7
+ elseif moss_type < 22 then
+ minetest.set_node(at_side_n, {name="trunks:moss", param2=math.random(4,7)})
+ end
+ end
+ local moss_type = math.random(1,41)
+ if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true,
+ if moss_type == 1 then
+ minetest.set_node(at_side_e, {name="trunks:moss_fungus", param2=math.random(12,15)})
+ elseif moss_type < 22 then
+ minetest.set_node(at_side_e, {name="trunks:moss", param2=math.random(12,15)})
+ end
+ end
+ local moss_type = math.random(1,41)
+ if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true,
+ if moss_type == 1 then
+ minetest.set_node(at_side_s, {name="trunks:moss_fungus", param2=math.random(8,11)})
+ elseif moss_type < 22 then
+ minetest.set_node(at_side_s, {name="trunks:moss", param2=math.random(8,11)})
+ end
+ end
+ local moss_type = math.random(1,41)
+ if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true,
+ if moss_type == 1 then
+ minetest.set_node(at_side_w, {name="trunks:moss_fungus", param2=math.random(16,19)})
+ elseif moss_type < 22 then
+ minetest.set_node(at_side_w, {name="trunks:moss", param2=math.random(16,19)})
+ end
+ end
+ --end
+end
+
+biome_lib:register_generate_plant({
+ surface = {
+ "default:tree",
+ "default:jungletree",
+ "default:pine_tree",
+ "trees:tree_conifer",
+ "trees:tree_mangrove",
+ --"trees:tree_palm",
+ "moretrees:apple_tree_trunk",
+ "moretrees:beech_trunk",
+ "moretrees:birch_trunk",
+ "moretrees:fir_trunk",
+ "moretrees:oak_trunk",
+ --"moretrees:palm_trunk",
+ "moretrees:rubber_tree_trunk",
+ "moretrees:rubber_tree_trunk_empty",
+ "moretrees:sequoia_trunk",
+ "moretrees:spruce_trunk",
+ "moretrees:willow_trunk",
+ "default:mossycobble"
+ },
+ max_count = Moss_on_trunk_Max_Count,
+ rarity = Moss_on_trunk_Rarity,
+ min_elevation = 1,
+ max_elevation = 40,
+ plantlife_limit = -0.9,
+ check_air = false,
+ },
+ "abstract_trunks.grow_moss_on_trunk"
+)
+end
+
+-----------------------------------------------------------------------------------------------
+-- RooTS
+-----------------------------------------------------------------------------------------------
+if Roots == true then -- see settings.txt
+
+abstract_trunks.grow_roots = function(pos)
+ local twig_size = math.random(1,27)
+
+ local right_here = {x=pos.x , y=pos.y , z=pos.z }
+ local below = {x=pos.x , y=pos.y-1, z=pos.z }
+ local north = {x=pos.x , y=pos.y , z=pos.z+1}
+ local east = {x=pos.x+1, y=pos.y , z=pos.z }
+ local south = {x=pos.x , y=pos.y , z=pos.z-1}
+ local west = {x=pos.x-1, y=pos.y , z=pos.z }
+
+ local node_here = minetest.get_node(right_here)
+ local node_below = minetest.get_node(below)
+ local node_north = minetest.get_node(north)
+ local node_east = minetest.get_node(east)
+ local node_south = minetest.get_node(south)
+ local node_west = minetest.get_node(west)
+
+ for i in pairs(TRuNKS) do
+ local MoD = TRuNKS[i][1]
+ local TRuNK = TRuNKS[i][2]
+ if minetest.get_modpath(MoD) ~= nil
+ and node_here.name == MoD..":"..TRuNK
+ and string.find(node_below.name, "dirt")
+ and node_here.param2 == 0 then
+ if minetest.registered_nodes[node_north.name].buildable_to then
+ minetest.set_node(north, {name="trunks:"..TRuNK.."root", param2=2})
+ end
+ if minetest.registered_nodes[node_east.name].buildable_to then
+ minetest.set_node(east, {name="trunks:"..TRuNK.."root", param2=3})
+ end
+ if minetest.registered_nodes[node_south.name].buildable_to then
+ minetest.set_node(south, {name="trunks:"..TRuNK.."root", param2=0})
+ end
+ if minetest.registered_nodes[node_west.name].buildable_to then
+ minetest.set_node(west, {name="trunks:"..TRuNK.."root", param2=1})
+ end
+ end
+ end
+end
+
+biome_lib:register_generate_plant({
+ surface = {"group:tree"},
+ max_count = 1000,
+ rarity = 1,
+ min_elevation = 1,
+ max_elevation = 40,
+ near_nodes = {"default:dirt_with_grass"},
+ near_nodes_size = 1,
+ near_nodes_vertical = 1,
+ near_nodes_count = 1,
+ plantlife_limit = -1,
+ check_air = false,
+ },
+ "abstract_trunks.grow_roots"
+)
+
+end
diff --git a/plantlife_modpack/trunks/init.lua b/plantlife_modpack/trunks/init.lua
new file mode 100644
index 0000000..ee9427d
--- /dev/null
+++ b/plantlife_modpack/trunks/init.lua
@@ -0,0 +1,17 @@
+-----------------------------------------------------------------------------------------------
+local title = "Trunks"
+local version = "0.1.4"
+local mname = "trunks"
+-----------------------------------------------------------------------------------------------
+-- Code by Mossmanikin & Neuromancer
+
+abstract_trunks = {}
+
+dofile(minetest.get_modpath("trunks").."/trunks_settings.txt")
+dofile(minetest.get_modpath("trunks").."/generating.lua")
+dofile(minetest.get_modpath("trunks").."/nodes.lua")
+dofile(minetest.get_modpath("trunks").."/crafting.lua")
+
+-----------------------------------------------------------------------------------------------
+print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
+----------------------------------------------------------------------------------------------- \ No newline at end of file
diff --git a/plantlife_modpack/trunks/nodes.lua b/plantlife_modpack/trunks/nodes.lua
new file mode 100644
index 0000000..f490871
--- /dev/null
+++ b/plantlife_modpack/trunks/nodes.lua
@@ -0,0 +1,368 @@
+-- Code by Mossmanikin & Neuromancer
+-----------------------------------------------------------------------------------------------
+-- TWiGS
+-----------------------------------------------------------------------------------------------
+-- For compatibility with older stuff
+minetest.register_alias("trunks:twig", "trunks:twig_1")
+
+local flat_stick = {-1/2, -1/2, -1/2, 1/2, -7/16, 1/2}
+local NoDe = { {1}, {2}, {3}, {4}, {5}, --[[{6},]] {7}, {8}, {9}, {10}, {11}, {12}, {13} }
+
+
+for i in pairs(NoDe) do
+ local NR = NoDe[i][1]
+ local iNV = NR - 1
+ minetest.register_node("trunks:twig_"..NR, {
+ description = "Twig",
+ inventory_image = "trunks_twig_"..NR..".png",
+ wield_image = "trunks_twig_"..NR..".png",
+ drawtype = "nodebox",
+ tiles = {
+ "trunks_twig_"..NR..".png",
+ "trunks_twig_"..NR..".png^[transformFY", -- mirror
+ "trunks_twig_6.png" -- empty
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ walkable = false,
+ sunlight_propagates = true,
+ buildable_to = true,
+ node_box = {type = "fixed", fixed = flat_stick},
+ groups = {
+ choppy=2,
+ oddly_breakable_by_hand=2,
+ flammable=3,
+ attached_node=1,
+ not_in_creative_inventory=iNV
+ },
+ drop = "trunks:twig_1",
+ sounds = default.node_sound_leaves_defaults(),
+ liquids_pointable = true,
+ on_place = function(itemstack, placer, pointed_thing)
+ local pt = pointed_thing
+ local direction = minetest.dir_to_facedir(placer:get_look_dir())
+ if minetest.get_node(pt.above).name=="air" then
+ minetest.set_node(pt.above, {name="trunks:twig_"..math.random(1,4), param2=direction})
+ if not minetest.setting_getbool("creative_mode") then
+ itemstack:take_item()
+ end
+ return itemstack
+ end
+ end,
+ })
+end
+
+-----------------------------------------------------------------------------------------------
+-- MoSS
+-----------------------------------------------------------------------------------------------
+local flat_moss = {-1/2, -1/2, -1/2, 1/2, -15/32--[[<-flickers if smaller]], 1/2}
+
+minetest.register_node("trunks:moss", {
+ description = "Moss",
+ drawtype = "nodebox",--"signlike",
+ tiles = {"trunks_moss.png"},
+ inventory_image = "trunks_moss.png",
+ wield_image = "trunks_moss.png",
+ paramtype = "light",
+ paramtype2 = "facedir",--"wallmounted",
+ sunlight_propagates = true,
+ walkable = false,
+ node_box = {type = "fixed", fixed = flat_moss},
+ selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"},
+ groups = {snappy = 3, flammable = 3 },
+ sounds = default.node_sound_leaves_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- MoSS & FuNGuS
+-----------------------------------------------------------------------------------------------
+minetest.register_node("trunks:moss_fungus", {
+ description = "Moss with Fungus",
+ drawtype = "nodebox",--"signlike",
+ tiles = {"trunks_moss_fungus.png"},
+ inventory_image = "trunks_moss_fungus.png",
+ wield_image = "trunks_moss_fungus.png",
+ paramtype = "light",
+ paramtype2 = "facedir",--"wallmounted",
+ sunlight_propagates = true,
+ walkable = false,
+ node_box = {type = "fixed", fixed = flat_moss},
+ selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"},
+ groups = {snappy = 3, flammable = 3 },
+ sounds = default.node_sound_leaves_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS BLoCK
+-----------------------------------------------------------------------------------------------
+minetest.register_alias("woodstuff:twigs", "trunks:twigs")
+
+minetest.register_node("trunks:twigs", {
+ description = "Twigs Block",
+ paramtype2 = "facedir",
+ tiles = {"trunks_twigs.png"},
+ groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+ sounds = default.node_sound_wood_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS SLaB
+-----------------------------------------------------------------------------------------------
+minetest.register_alias("woodstuff:twigs_slab", "trunks:twigs_slab")
+
+minetest.register_node("trunks:twigs_slab", {
+ description = "Twigs Slab",
+ drawtype = "nodebox",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ tiles = {"trunks_twigs.png"},
+ node_box = {
+ type = "fixed",
+ fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
+ },
+ groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+ sounds = default.node_sound_wood_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooF
+-----------------------------------------------------------------------------------------------
+minetest.register_alias("woodstuff:twigs_roof", "trunks:twigs_roof")
+
+minetest.register_node("trunks:twigs_roof", {
+ description = "Twigs Roof",
+ drawtype = "nodebox",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ tiles = {"trunks_twigs.png"},
+ node_box = {
+ type = "fixed",
+-- { left, bottom, front, right, top, back }
+ fixed = {
+ {-1/2, 0, 0, 1/2, 1/2, 1/2},
+ {-1/2, -1/2, -1/2, 1/2, 0, 0},
+ }
+ },
+ groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+ sounds = default.node_sound_wood_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooF CoRNeR
+-----------------------------------------------------------------------------------------------
+minetest.register_alias("woodstuff:twigs_roof_corner", "trunks:twigs_roof_corner")
+
+minetest.register_node("trunks:twigs_roof_corner", {
+ description = "Twigs Roof Corner 1",
+ drawtype = "nodebox",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ tiles = {
+ "trunks_twigs_corner.png",
+ "trunks_twigs_corner.png",
+ "trunks_twigs.png"
+ },
+ node_box = {
+ type = "fixed",
+-- { left, bottom, front, right, top, back }
+ fixed = {
+ {-1/2, 0, 0, 0, 1/2, 1/2},
+ {0, -1/2, 0, 1/2, 0, 1/2},
+ {-1/2, -1/2, -1/2, 0, 0, 0},
+ }
+ },
+ groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+ sounds = default.node_sound_wood_defaults(),
+})
+
+-----------------------------------------------------------------------------------------------
+-- TWiGS RooF CoRNeR 2
+-----------------------------------------------------------------------------------------------
+minetest.register_alias("woodstuff:twigs_roof_corner_2", "trunks:twigs_roof_corner_2")
+
+minetest.register_node("trunks:twigs_roof_corner_2", {
+ description = "Twigs Roof Corner 2",
+ drawtype = "nodebox",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ tiles = {
+ "trunks_twigs_corner.png",
+ "trunks_twigs_corner.png",
+ "trunks_twigs.png"
+ },
+ node_box = {
+ type = "fixed",
+-- { left, bottom, front, right, top, back }
+ fixed = {
+ {-1/2, -1/2, 0, 0, 0, 1/2},
+ {0, 0, 0, 1/2, 1/2, 1/2},
+ {-1/2, 0, -1/2, 0, 1/2, 0},
+ }
+ },
+ groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+ sounds = default.node_sound_wood_defaults(),
+})
+
+if Auto_Roof_Corner == true then
+
+ local roof = "trunks:twigs_roof"
+ local corner = "trunks:twigs_roof_corner"
+ local corner_2 = "trunks:twigs_roof_corner_2"
+
+ minetest.register_abm({
+ nodenames = {roof},
+ interval = 1,
+ chance = 1,
+ action = function(pos)
+
+ local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z })
+ local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z })
+ local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
+ local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
+ -- corner 1
+ if ((node_west.name == roof and node_west.param2 == 0)
+ or (node_west.name == corner and node_west.param2 == 1))
+ and ((node_north.name == roof and node_north.param2 == 3)
+ or (node_north.name == corner and node_north.param2 == 3))
+ then
+ minetest.set_node(pos, {name=corner, param2=0})
+ end
+
+ if ((node_north.name == roof and node_north.param2 == 1)
+ or (node_north.name == corner and node_north.param2 == 2))
+ and ((node_east.name == roof and node_east.param2 == 0)
+ or (node_east.name == corner and node_east.param2 == 0))
+ then
+ minetest.set_node(pos, {name=corner, param2=1})
+ end
+
+ if ((node_east.name == roof and node_east.param2 == 2)
+ or (node_east.name == corner and node_east.param2 == 3))
+ and ((node_south.name == roof and node_south.param2 == 1)
+ or (node_south.name == corner and node_south.param2 == 1))
+ then
+ minetest.set_node(pos, {name=corner, param2=2})
+ end
+
+ if ((node_south.name == roof and node_south.param2 == 3)
+ or (node_south.name == corner and node_south.param2 == 0))
+ and ((node_west.name == roof and node_west.param2 == 2)
+ or (node_west.name == corner and node_west.param2 == 2))
+ then
+ minetest.set_node(pos, {name=corner, param2=3})
+ end
+ -- corner 2
+ if ((node_west.name == roof and node_west.param2 == 2)
+ or (node_west.name == corner_2 and node_west.param2 == 1))
+ and ((node_north.name == roof and node_north.param2 == 1)
+ or (node_north.name == corner_2 and node_north.param2 == 3))
+ then
+ minetest.set_node(pos, {name=corner_2, param2=0})
+ end
+
+ if ((node_north.name == roof and node_north.param2 == 3)
+ or (node_north.name == corner_2 and node_north.param2 == 2))
+ and ((node_east.name == roof and node_east.param2 == 2)
+ or (node_east.name == corner_2 and node_east.param2 == 0))
+ then
+ minetest.set_node(pos, {name=corner_2, param2=1})
+ end
+
+ if ((node_east.name == roof and node_east.param2 == 0)
+ or (node_east.name == corner_2 and node_east.param2 == 3))
+ and ((node_south.name == roof and node_south.param2 == 3)
+ or (node_south.name == corner_2 and node_south.param2 == 1))
+ then
+ minetest.set_node(pos, {name=corner_2, param2=2})
+ end
+
+ if ((node_south.name == roof and node_south.param2 == 1)
+ or (node_south.name == corner_2 and node_south.param2 == 0))
+ and ((node_west.name == roof and node_west.param2 == 0)
+ or (node_west.name == corner_2 and node_west.param2 == 2))
+ then
+ minetest.set_node(pos, {name=corner_2, param2=3})
+ end
+
+ end,
+ })
+end
+
+-- MM: The following stuff is just for testing purposes for now; no generating of roots.
+-- I'm not satisfied with this; they should be either bigger or a different drawtype.
+-----------------------------------------------------------------------------------------------
+-- RooTS
+-----------------------------------------------------------------------------------------------
+if Roots == true then -- see settings.txt
+
+local roots_cube = {-2/16, -1/2, -3/16, 2/16, 1/16, 1/2}
+
+local roots_sheet = {0, -1/2, -1/2, 0, 1/16, 1/2}
+
+local TRuNKS = {
+-- MoD TRuNK
+ {"default", "tree" },
+ {"default", "jungletree" },
+ {"default", "pine_tree" },
+
+ {"trees", "tree_conifer" },
+ {"trees", "tree_mangrove" },
+ {"trees", "tree_palm" },
+
+ {"moretrees", "apple_tree_trunk" },
+ {"moretrees", "beech_trunk" },
+ {"moretrees", "birch_trunk" },
+ {"moretrees", "fir_trunk" },
+ {"moretrees", "oak_trunk" },
+ {"moretrees", "palm_trunk" },
+ {"moretrees", "rubber_tree_trunk" },
+ {"moretrees", "rubber_tree_trunk_empty" },
+ {"moretrees", "sequoia_trunk" },
+ {"moretrees", "spruce_trunk" },
+ {"moretrees", "willow_trunk" },
+}
+
+for i in pairs(TRuNKS) do
+ local MoD = TRuNKS[i][1]
+ local TRuNK = TRuNKS[i][2]
+ if minetest.get_modpath(MoD) ~= nil then
+
+ local node = minetest.registered_nodes[MoD..":"..TRuNK]
+ if node then
+ local des = node.description
+
+ minetest.register_node("trunks:"..TRuNK.."root", {
+ description = des.." Root",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ tiles = {
+--[[top]] MoD.."_"..TRuNK..".png",
+--[[bottom]] MoD.."_"..TRuNK..".png",
+--[[right]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[makealpha:0,0,0",
+--[[left]] MoD.."_"..TRuNK..".png^trunks_root_mask.png^[transformFX^[makealpha:0,0,0",
+--[[back]] MoD.."_"..TRuNK..".png",
+--[[front]] MoD.."_"..TRuNK..".png"
+ },
+ drawtype = "nodebox",
+ selection_box = {type = "fixed", fixed = roots_cube},
+ node_box = {type = "fixed", fixed = roots_sheet},
+ groups = {
+ tree=1,
+ snappy=1,
+ choppy=2,
+ oddly_breakable_by_hand=1,
+ flammable=2--,
+ --not_in_creative_inventory=1 -- atm in inv for testing
+ },
+ --drop = "trunks:twig_1", -- not sure about this yet
+ sounds = default.node_sound_wood_defaults(),
+ })
+
+ else
+ print(string.format("[Trunks] warning: tree type '%s:%s' not found", MoD, TRuNK))
+ end
+ end
+end
+end
+
+minetest.register_alias("trunks:pine_trunkroot", "trunks:pine_treeroot")
diff --git a/plantlife_modpack/trunks/textures/credit_textures.txt b/plantlife_modpack/trunks/textures/credit_textures.txt
new file mode 100644
index 0000000..b3893d5
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/credit_textures.txt
@@ -0,0 +1,34 @@
+-------------------------------------------------------------
+Credit for textures of "trunks"
+-------------------------------------------------------------
+(If more than one author is listed the names are in alphabetical order)
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+FOLDER TEXTURE AUTHORS
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+../trunks/textures trunks_moss.png Neuromancer
+ trunks_moss_fungus.png Neuromancer
+ trunks_twig_1.png Mossmanikin
+ trunks_twig_2.png Mossmanikin, Neuromancer
+ trunks_twig_3.png Mossmanikin, Neuromancer
+ trunks_twig_4.png Mossmanikin, Neuromancer
+ trunks_twig_5.png Mossmanikin, Neuromancer
+ (trunks_twig_6.png) (Mossmanikin)
+ trunks_twig_7.png Mossmanikin, Neuromancer
+ trunks_twig_8.png Mossmanikin, Neuromancer
+ trunks_twig_9.png Mossmanikin, Neuromancer
+ trunks_twig_10.png Mossmanikin, Neuromancer
+ trunks_twig_11.png Mossmanikin, Neuromancer
+ trunks_twigs.png Mossmanikin
+ trunks_twigs_corner.png Mossmanikin
+ trunks_twigs_top.png Mossmanikin
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+../trunks/textures/old & unused comboSticks.png Mossmanikin, Neuromancer
+ comboSticks_2.png Mossmanikin, Neuromancer
+ trunks_twig_1e.png Mossmanikin, Neuromancer
+ trunks_twig_1n.png Mossmanikin, Neuromancer
+ trunks_twig_2n.png Mossmanikin, Neuromancer
+ trunks_twig_3n.png Mossmanikin, Neuromancer
+ trunks_twig_4n.png Mossmanikin, Neuromancer
+ trunks_twig_5-8.png Mossmanikin, Neuromancer
+ trunks_twig_9-12.png Mossmanikin, Neuromancer
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/plantlife_modpack/trunks/textures/old & unused/comboSticks.png b/plantlife_modpack/trunks/textures/old & unused/comboSticks.png
new file mode 100644
index 0000000..e3b7770
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/comboSticks.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png b/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png
new file mode 100644
index 0000000..2053592
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/comboSticks_2.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png b/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png
new file mode 100644
index 0000000..51071c3
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_root_mask_old.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png
new file mode 100644
index 0000000..518955c
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1e.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png
new file mode 100644
index 0000000..157c957
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_1n.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png
new file mode 100644
index 0000000..9945f22
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_2n.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png
new file mode 100644
index 0000000..6aacf9d
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_3n.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png
new file mode 100644
index 0000000..c5286b6
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_4n.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png
new file mode 100644
index 0000000..9dda478
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_5-8.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png
new file mode 100644
index 0000000..42a5d45
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/old & unused/trunks_twig_9-12.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_moss.png b/plantlife_modpack/trunks/textures/trunks_moss.png
new file mode 100644
index 0000000..5ffe58f
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_moss.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_moss_fungus.png b/plantlife_modpack/trunks/textures/trunks_moss_fungus.png
new file mode 100644
index 0000000..fcd4ae2
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_moss_fungus.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_root_mask.png b/plantlife_modpack/trunks/textures/trunks_root_mask.png
new file mode 100644
index 0000000..5bfdac6
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_root_mask.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_1.png b/plantlife_modpack/trunks/textures/trunks_twig_1.png
new file mode 100644
index 0000000..066bbfa
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_1.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_10.png b/plantlife_modpack/trunks/textures/trunks_twig_10.png
new file mode 100644
index 0000000..062d8f6
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_10.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_11.png b/plantlife_modpack/trunks/textures/trunks_twig_11.png
new file mode 100644
index 0000000..d9f41f8
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_11.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_12.png b/plantlife_modpack/trunks/textures/trunks_twig_12.png
new file mode 100644
index 0000000..b8cf458
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_12.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_13.png b/plantlife_modpack/trunks/textures/trunks_twig_13.png
new file mode 100644
index 0000000..64b08eb
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_13.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_2.png b/plantlife_modpack/trunks/textures/trunks_twig_2.png
new file mode 100644
index 0000000..826253c
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_2.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_3.png b/plantlife_modpack/trunks/textures/trunks_twig_3.png
new file mode 100644
index 0000000..4038e03
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_3.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_4.png b/plantlife_modpack/trunks/textures/trunks_twig_4.png
new file mode 100644
index 0000000..971d649
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_4.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_5.png b/plantlife_modpack/trunks/textures/trunks_twig_5.png
new file mode 100644
index 0000000..5f74334
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_5.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_6.png b/plantlife_modpack/trunks/textures/trunks_twig_6.png
new file mode 100644
index 0000000..2f6464b
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_6.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_7.png b/plantlife_modpack/trunks/textures/trunks_twig_7.png
new file mode 100644
index 0000000..8b5e4e1
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_7.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_8.png b/plantlife_modpack/trunks/textures/trunks_twig_8.png
new file mode 100644
index 0000000..a9441e9
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_8.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twig_9.png b/plantlife_modpack/trunks/textures/trunks_twig_9.png
new file mode 100644
index 0000000..3e7a3f3
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twig_9.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twigs.png b/plantlife_modpack/trunks/textures/trunks_twigs.png
new file mode 100644
index 0000000..20ae6ca
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twigs.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twigs_corner.png b/plantlife_modpack/trunks/textures/trunks_twigs_corner.png
new file mode 100644
index 0000000..60871bf
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twigs_corner.png
Binary files differ
diff --git a/plantlife_modpack/trunks/textures/trunks_twigs_top.png b/plantlife_modpack/trunks/textures/trunks_twigs_top.png
new file mode 100644
index 0000000..baf797c
--- /dev/null
+++ b/plantlife_modpack/trunks/textures/trunks_twigs_top.png
Binary files differ
diff --git a/plantlife_modpack/trunks/trunks_settings.txt b/plantlife_modpack/trunks/trunks_settings.txt
new file mode 100644
index 0000000..7fe8822
--- /dev/null
+++ b/plantlife_modpack/trunks/trunks_settings.txt
@@ -0,0 +1,70 @@
+-- Settings for generation of stuff (at map-generation time)
+
+
+
+
+
+Horizontal_Trunks = true
+
+
+
+Trunks_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes
+
+
+Trunks_Rarity = 99 -- larger values make trunks more rare (100 means chance of 0 %)
+
+
+
+
+
+Big_Twigs = true -- twigs larger than one node
+Twigs_on_ground = true
+
+
+
+Twigs_on_ground_Max_Count = 640 -- absolute maximum number in an area of 80x80x80 nodes
+
+Twigs_on_ground_Rarity = 66 -- larger values make twigs more rare (100 means chance of 0 %)
+
+
+
+
+
+Twigs_on_water = true
+
+
+
+Twigs_on_water_Max_Count = 320 -- absolute maximum number in an area of 80x80x80 nodes
+
+
+Twigs_on_water_Rarity = 33 -- larger values make twigs more rare (100 means chance of 0 %)
+
+
+
+
+
+Moss_on_ground = true
+
+
+
+Moss_on_ground_Max_Count = 400 -- absolute maximum number in an area of 80x80x80 nodes
+
+Moss_on_ground_Rarity = 79 -- larger values makes moss more rare (100 means chance of 0 %)
+
+
+
+
+
+Moss_on_trunk = true
+
+
+
+Moss_on_trunk_Max_Count = 640 -- absolute maximum number in an area of 80x80x80 nodes
+
+Moss_on_trunk_Rarity = 24 -- larger values makes moss more rare (100 means chance of 0 %)
+
+
+Auto_Roof_Corner = true -- behavior is similar (not the same!) to the one of minecraft stairs
+
+
+Roots = true \ No newline at end of file