diff --git a/README.md b/README.md deleted file mode 100644 index 1e1c25b..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -trees -===== - -Bigger but tiny trees for minetest \ No newline at end of file diff --git a/conifertree.lua b/conifertree.lua new file mode 100644 index 0000000..7495e1a --- /dev/null +++ b/conifertree.lua @@ -0,0 +1,125 @@ +abstract_trees.grow_conifertree = function(pos) + local size = 5+math.random(10) + local slope = size/3 + local rad = 1 + minetest.env:add_node({x=pos.x, y=pos.y+size, z=pos.z}, {name="trees:leaves_conifer"}) + for i=1,size,1 do + local spawn = {x=pos.x, y=pos.y+size-i, z=pos.z} + + if i < size * 0.75 then + for k=-rad,rad,1 do + for n=-rad,rad,1 do + minetest.env:add_node({x=pos.x+k, y=pos.y+size-i, z=pos.z+n}, {name="trees:leaves_conifer"}) + end + end + if i > slope*rad then + i = i - 1 + minetest.env:add_node({x=pos.x+rad, y=pos.y+size-i, z=pos.z+rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x+rad, y=pos.y+size-i, z=pos.z-rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x-rad, y=pos.y+size-i, z=pos.z+rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x-rad, y=pos.y+size-i, z=pos.z-rad}, {name="trees:leaves_conifer"}) + i = i + 1 + rad = rad + 1 + minetest.env:add_node({x=pos.x+rad, y=pos.y+size-i, z=pos.z+rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x+rad, y=pos.y+size-i, z=pos.z-rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x-rad, y=pos.y+size-i, z=pos.z+rad}, {name="trees:leaves_conifer"}) + minetest.env:add_node({x=pos.x-rad, y=pos.y+size-i, z=pos.z-rad}, {name="trees:leaves_conifer"}) + end + end + minetest.env:add_node(spawn, {name="trees:tree_conifer"}) + end +end +--nodes +minetest.register_node("trees:tree_conifer", { + description = "Conifer trunk", + tile_images = { + "conifers_trunktop.png", + "conifers_trunktop.png", + "conifers_trunk.png", + "conifers_trunk.png", + "conifers_trunk.png", + "conifers_trunk.png" + }, + is_ground_content = true, + groups = { + tree = 1, + snappy = 2, + choppy = 2, + oddly_breakable_by_hand = 1, + flammable = 2 + }, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("trees:leaves_conifer", { + description = "Conifer leaves", + drawtype = "allfaces_optional", + visual_scale = 1.3, + tile_images = { "conifers_leaves.png" }, + --inventory_image = "conifers_leaves.png", + paramtype = "light", + groups = { + snappy = 3, + leafdecay = 3, + flammable = 2 + }, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'trees:sapling_conifer'}, + rarity = 20, + }, + } + }, + sounds = default.node_sound_leaves_defaults() +}) + +minetest.register_node("trees:sapling_conifer", { + description = "Conifer sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tile_images = {"conifers_sapling.png"}, + inventory_image = "conifers_sapling.png", + wield_image = "conifers_sapling.png", + paramtype = "light", + walkable = false, + groups = { + snappy = 2, + dig_immediate = 3, + flammable = 2 + }, + sounds = default.node_sound_defaults(), +}) +-- abm +minetest.register_abm({ + nodenames = "trees:sapling_conifer", + interval = INTERVAL, + chance = SAPLING_CHANCE, + + action = function(pos, node, _, _) + if minetest.env:get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name == "air" then + conifers:make_conifer({x = pos.x, y = pos.y, z = pos.z}, math.random(0, 1)) + end + end +}) + +--spawn +plantslib:register_generate_plant({ + surface = {"default:dirt", "default:dirt_with_grass", "snow:dirt_with_snow", "snow:snow"}, + max_count = 30, + avoid_nodes = {"group:tree"}, + avoid_radius = 2, + rarity = 50, + seed_diff = 777, + min_elevation = -1, + max_elevation = 100, + plantlife_limit = -0.6, + humidity_max = -1, + humidity_min = 0.2, + temp_max = 0, + temp_min = -0.8, + }, + "abstract_trees.grow_conifertree" +) diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..bde0bdf --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +default +plants_lib \ No newline at end of file diff --git a/functions.lua b/functions.lua new file mode 100644 index 0000000..fe51ca7 --- /dev/null +++ b/functions.lua @@ -0,0 +1,21 @@ +abstrac_trees.add_tree_branch = function(pos, leaves) + local leave = "jungletree:leaves_"..leaves[math.random(1,3)] + minetest.env:add_node(pos, {name="default:jungletree"}) + for i = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + for k = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + local p = {x=pos.x+i, y=pos.y, z=pos.z+k} + local n = minetest.env:get_node(p) + if (n.name=="air") then + minetest.env:add_node(p, {name=leave}) + end + local chance = math.abs(i+k) + if (chance < 1) then + p = {x=pos.x+i, y=pos.y+1, z=pos.z+k} + n = minetest.env:get_node(p) + if (n.name=="air") then + minetest.env:add_node(p, {name=leave}) + end + end + end + end +end diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..932facf --- /dev/null +++ b/init.lua @@ -0,0 +1,19 @@ +abstract_trees = {} + +dofile(minetest.get_modpath("trees").."/jungletree.lua") +dofile(minetest.get_modpath("trees").."/mangrovetree.lua") +dofile(minetest.get_modpath("trees").."/palmtree.lua") +dofile(minetest.get_modpath("trees").."/conifertree.lua") + +--testing tool +minetest.register_tool("trees:drawer", { + description = "palmtree spawner", + inventory_image = "default_stick.png", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.under then + local height = 4+math.ceil(math.random(11)) + abstract_trees.grow_conifertree(pointed_thing.above, height) + end + end, +}) + diff --git a/jungletree.lua b/jungletree.lua new file mode 100644 index 0000000..e073256 --- /dev/null +++ b/jungletree.lua @@ -0,0 +1,143 @@ +local function add_tree_branch(pos) + --chooze random leave + local leaves = {"green","yellow","red"} + local leave = "trees:leaves_"..leaves[math.random(1,3)] + minetest.env:add_node(pos, {name="default:jungletree"}) + for i = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + for k = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + local p = {x=pos.x+i, y=pos.y, z=pos.z+k} + local n = minetest.env:get_node(p) + if (n.name=="air") then + minetest.env:add_node(p, {name=leave}) + end + local chance = math.abs(i+k) + if (chance < 1) then + p = {x=pos.x+i, y=pos.y+1, z=pos.z+k} + n = minetest.env:get_node(p) + if (n.name=="air") then + minetest.env:add_node(p, {name=leave}) + end + end + end + end +end + +abstract_trees.grow_jungletree = function(pos) + local size = 5+math.random(6) + if size < 8 then + for i = size, -2, -1 do + local p = {x=pos.x, y=pos.y+i, z=pos.z} + minetest.env:add_node(p, {name="default:jungletree"}) + if i == size then + add_tree_branch({x=pos.x, y=pos.y+size+math.random(0, 1), z=pos.z}) + add_tree_branch({x=pos.x+1, y=pos.y+i-math.random(2), z=pos.z}) + add_tree_branch({x=pos.x-1, y=pos.y+i-math.random(2), z=pos.z}) + add_tree_branch({x=pos.x, y=pos.y+i-math.random(2), z=pos.z+1}) + add_tree_branch({x=pos.x, y=pos.y+i-math.random(2), z=pos.z-1}) + end + if i < 0 then + minetest.env:add_node({x=pos.x+1, y=pos.y+i-math.random(2), z=pos.z}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x, y=pos.y+i-math.random(2), z=pos.z+1}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x-1, y=pos.y+i-math.random(2), z=pos.z}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x, y=pos.y+i-math.random(2), z=pos.z-1}, {name="default:jungletree"}) + end + if (math.sin(i/size*i) < 0.2 and i > 3 and math.random(0,2) < 1.5) then + branch_pos = {x=pos.x+math.random(0,1), y=pos.y+i, z=pos.z-math.random(0,1)} + add_tree_branch(branch_pos) + end + end + else + for i = size, -1, -1 do + if (math.sin(i/size*i) < 0.2 and i > 3 and math.random(0,2) < 1.5) then + branch_pos = {x=pos.x+math.random(0,1), y=pos.y+i, z=pos.z-math.random(0,1)} + add_tree_branch(branch_pos) + end + if i < math.random(0,1) then + minetest.env:add_node({x=pos.x+1, y=pos.y+i, z=pos.z+1}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x+2, y=pos.y+i, z=pos.z-1}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x, y=pos.y+i, z=pos.z-2}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x-1, y=pos.y+i, z=pos.z}, {name="default:jungletree"}) + end + if i == size then + add_tree_branch({x=pos.x+1, y=pos.y+i, z=pos.z+1}) + add_tree_branch({x=pos.x+2, y=pos.y+i, z=pos.z-1}) + add_tree_branch({x=pos.x, y=pos.y+i, z=pos.z-2}) + add_tree_branch({x=pos.x-1, y=pos.y+i, z=pos.z}) + add_tree_branch({x=pos.x+1, y=pos.y+i, z=pos.z+2}) + add_tree_branch({x=pos.x+3, y=pos.y+i, z=pos.z-1}) + add_tree_branch({x=pos.x, y=pos.y+i, z=pos.z-3}) + add_tree_branch({x=pos.x-2, y=pos.y+i, z=pos.z}) + add_tree_branch({x=pos.x+1, y=pos.y+i, z=pos.z}) + add_tree_branch({x=pos.x+1, y=pos.y+i, z=pos.z-1}) + add_tree_branch({x=pos.x, y=pos.y+i, z=pos.z-1}) + add_tree_branch({x=pos.x, y=pos.y+i, z=pos.z}) + else + minetest.env:add_node({x=pos.x+1, y=pos.y+i, z=pos.z}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x+1, y=pos.y+i, z=pos.z-1}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x, y=pos.y+i, z=pos.z-1}, {name="default:jungletree"}) + minetest.env:add_node({x=pos.x, y=pos.y+i, z=pos.z}, {name="default:jungletree"}) + end + end + end +end + +--nodes +local leaves = {"green","yellow","red"} +for color = 1, 3 do + local leave_name = "trees:leaves_"..leaves[color] + minetest.register_node(leave_name, { + description = "Jungle Tree Leaves", + drawtype = "allfaces_optional", + tiles = {"trees_leaves_"..leaves[color]..".png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2}, + drop = { + max_items = 1, + items = { + {items = {'trees:jungletree_sapling'},rarity = 20}, + } + }, + sounds = default.node_sound_leaves_defaults(), + }) +end + +minetest.register_node("trees:jungletree_sapling", { + description = "Jungle Tree Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"trees_jungletree_sapling.png"}, + inventory_image = "trees_jungletree_sapling.png", + wield_image = "trees_jungletree_sapling.png", + paramtype = "light", + walkable = false, + groups = {snappy=2,dig_immediate=3,flammable=2}, +}) + +--abm +minetest.register_abm({ + nodenames = {"trees:jungletree_sapling"}, + interval = 5, + chance = 2, + action = function(pos, node) + abstract_trees.grow_jungletree(pos) + end, +}) + +--spawn +plantslib:register_generate_plant({ + surface = "default:dirt_with_grass", + max_count = 30, + avoid_nodes = {"group:tree"}, + avoid_radius = 2, + rarity = 40, + seed_diff = 112, + min_elevation = -1, + max_elevation = 40, + plantlife_limit = -0.6, + humidity_max = -0.9, + humidity_min = 0.4, + temp_max = -0.9, + temp_min = 0, + }, + "abstract_trees.grow_jungletree" +) diff --git a/mangrovetree.lua b/mangrovetree.lua new file mode 100644 index 0000000..74a091d --- /dev/null +++ b/mangrovetree.lua @@ -0,0 +1,127 @@ +--function +local function add_leaves(pos, leave) + for i = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + for k = math.floor(math.random(2)), -math.floor(math.random(2)), -1 do + for n = math.floor(math.random(1)), 0, -1 do + local p = {x=pos.x+i, y=pos.y+n, z=pos.z+k} + local n = minetest.env:get_node(p) + if (n.name=="air") then + minetest.env:add_node(p, {name=leave}) + end + end + end + end +end +abstract_trees.grow_mangrovetree = function(pos) + local size = 6+math.random(6) + local trunk_node + local leaves_node + if math.ceil(math.random(2)) == 1 then + trunk_node = "trees:tree_dead_mangrove" + leaves_node = "trees:leaves_dead_mangrove" + else + trunk_node = "trees:tree_mangrove" + leaves_node = "trees:leaves_mangrove" + end + local top = {x=pos.x, y=pos.y+size, z=pos.z} + if math.ceil(math.random(2)) == 1 then + minetest.env:add_node({x=top.x+1, y=top.y, z=top.z}, {name=trunk_node}) + add_leaves({x=top.x+1, y=top.y, z=top.z},leaves_node) + minetest.env:add_node({x=top.x-1, y=top.y, z=top.z}, {name=trunk_node}) + add_leaves({x=top.x-1, y=top.y, z=top.z},leaves_node) + else + minetest.env:add_node({x=top.x, y=top.y, z=top.z-1}, {name=trunk_node}) + add_leaves({x=top.x, y=top.y, z=top.z-1},leaves_node) + minetest.env:add_node({x=top.x, y=top.y, z=top.z+1}, {name=trunk_node}) + add_leaves({x=top.x, y=top.y, z=top.z+1},leaves_node) + end + for i=1, size, 1 do + if math.ceil(math.random(2)) == 1 then + local dir = { + x=math.ceil(math.random(3))-2, + y=math.ceil(math.random(3))-2, + z=math.ceil(math.random(3))-2, + } + if i > size/2 then + minetest.env:add_node({x=pos.x+dir.x, y=top.y-i, z=pos.z+dir.z}, {name=leaves_node}) + else + minetest.env:add_node({x=pos.x+dir.x*2, y=top.y-i, z=pos.z+dir.z*2}, {name=leaves_node}) + minetest.env:add_node({x=pos.x+dir.x, y=top.y-i, z=pos.z+dir.z}, {name=trunk_node}) + end + end + minetest.env:add_node({x=top.x, y=top.y-i, z=top.z}, {name=trunk_node}) + end + minetest.env:add_node({x=pos.x-1, y=pos.y, z=pos.z}, {name=trunk_node}) + minetest.env:add_node({x=pos.x+1, y=pos.y, z=pos.z}, {name=trunk_node}) + minetest.env:add_node({x=pos.x, y=pos.y, z=pos.z+1}, {name=trunk_node}) + minetest.env:add_node({x=pos.x, y=pos.y, z=pos.z-1}, {name=trunk_node}) +end +--nodes +name = "dead_mangrove" +minetest.register_node("trees:leaves_"..name, { + description = name.. " Leaves", + drawtype = "allfaces_optional", + tiles = {"trees_leaves_"..name..".png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2}, + sounds = default.node_sound_leaves_defaults(), +}) +minetest.register_node("trees:tree_"..name, { + description = name.. " Tree", + tiles = {"trees_tree_top_"..name..".png", "trees_tree_top_"..name..".png", "trees_tree_"..name..".png"}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) +name = "mangrove" +minetest.register_node("trees:leaves_"..name, { + description = name.. " Leaves", + drawtype = "allfaces_optional", + tiles = {"trees_leaves_"..name..".png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2}, + drop = { + max_items = 1, + items = { + {items = {'jungletree:sapling'},rarity = 20}, + } + }, + sounds = default.node_sound_leaves_defaults(), +}) +minetest.register_node("trees:tree_"..name, { + description = name.. " Tree", + tiles = {"trees_tree_top_"..name..".png", "trees_tree_top_"..name..".png", "trees_tree_"..name..".png"}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) +minetest.register_node("trees:wood_"..name, { + description = name.. " Wood", + tiles = {"trees_wood_"..name..".png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +--spawning +plantslib:register_generate_plant({ + surface = "default:dirt", + max_count = 30, + near_nodes = {"default:water_source"}, + near_nodes_size = 1, + near_nodes_vertical = 3, + near_nodes_count = 6, + avoid_nodes = {"group:tree", "default:sand"}, + avoid_radius = 3, + rarity = 50, + seed_diff = 666, + min_elevation = -3, + max_elevation = 2, + plantlife_limit = -0.5, + check_air = false, + humidity_max = -1, + humidity_min = 0.5, + temp_max = -0.8, + temp_min = 0, + }, + "abstract_trees.grow_mangrovetree" +) + +--abstract_trees.grow_mangrovetree(pointed_thing.above, height) diff --git a/nodes.lua b/nodes.lua new file mode 100644 index 0000000..7e89466 --- /dev/null +++ b/nodes.lua @@ -0,0 +1,36 @@ +abstract_trees.trees_register_nodes_tree = function(name) + + minetest.register_node("trees:leaves_"..name, { + description = name.. " Leaves", + drawtype = "allfaces_optional", + tiles = {"trees_leaves_"..name..".png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2}, + drop = { + max_items = 1, + items = { + {items = {'jungletree:sapling'},rarity = 20}, + } + }, + sounds = default.node_sound_leaves_defaults(), + }) + + minetest.register_node("trees:tree_"..name, { + description = name.. " Tree", + + tiles = {"trees_tree_top_"..name..".png", "trees_tree_top_"..name..".png", "trees_tree_"..name..".png"}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + }) + + minetest.register_node("trees:wood_"..name, { + description = name.. " Wood", + tiles = {"trees_wood_"..name..".png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), + }) +end + +abstract_trees.trees_register_nodes_tree("palm") +abstract_trees.trees_register_nodes_tree("mangrove") + diff --git a/palmtree.lua b/palmtree.lua new file mode 100644 index 0000000..2b3a2c1 --- /dev/null +++ b/palmtree.lua @@ -0,0 +1,86 @@ +--function +abstract_trees.grow_palmtree = function(pos, size) + local size = 4+math.random(6) + local trunk_section_height = 2 + local trunk_node = "trees:tree_palm" + local leaves_node = "trees:leaves_palm" + local offset = {x=pos.x, y=pos.y+size+1, z=pos.z} + local total_size = 0 + local leavetrav = 0 + for i=0,size/2.5,1 do + for ii=0,size/2.5-i,1 do + local spawn_pos = {x=offset.x, y=offset.y-i, z=offset.z+leavetrav} + minetest.env:add_node(spawn_pos, {name=leaves_node}) + local spawn_pos = {x=offset.x, y=offset.y-i, z=offset.z-leavetrav} + minetest.env:add_node(spawn_pos, {name=leaves_node}) + local spawn_pos = {x=offset.x+leavetrav, y=offset.y-i, z=offset.z} + minetest.env:add_node(spawn_pos, {name=leaves_node}) + local spawn_pos = {x=offset.x-leavetrav, y=offset.y-i, z=offset.z} + minetest.env:add_node(spawn_pos, {name=leaves_node}) + leavetrav = leavetrav + 1 + end + leavetrav = leavetrav - 1 + end + local offset = {x=pos.x, y=pos.y, z=pos.z} + while total_size < size do + for i=trunk_section_height-2,trunk_section_height*2-4,1 do + if total_size > size then return end + local spawn_pos = {x=offset.x, y=pos.y+size-i, z=offset.z} + minetest.env:add_node(spawn_pos, {name=trunk_node}) + total_size = total_size + 1 + end + offset = {x=offset.x+math.ceil(math.random(3))-2, y=offset.y, z=offset.z+math.ceil(math.random(3))-2} + trunk_section_height = trunk_section_height * 2 -1 + end +end + +--nodes +name = "palm" +minetest.register_node("trees:leaves_"..name, { + description = name.. " Leaves", + drawtype = "allfaces_optional", + tiles = {"trees_leaves_palm.png"}, + paramtype = "light", + groups = {snappy=3, flammable=2}, + drop = { + max_items = 1, + items = { + {items = {'trees:sapling_palm'},rarity = 20}, + } + }, + sounds = default.node_sound_leaves_defaults(), +}) +minetest.register_node("trees:tree_"..name, { + description = name.. " Tree", + tiles = {"trees_tree_top_"..name..".png", "trees_tree_top_"..name..".png", "trees_tree_"..name..".png"}, + groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) +minetest.register_node("trees:wood_"..name, { + description = name.. " Wood", + tiles = {"trees_wood_"..name..".png"}, + groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + sounds = default.node_sound_wood_defaults(), +}) + +--spawn +plantslib:register_generate_plant({ + surface = "default:sand", + seed_diff = 330, + min_elevation = -1, + max_elevation = 5, + near_nodes = {"default:water_source"}, + near_nodes_size = 15, + near_nodes_count = 6, + avoid_nodes = {"group:tree"}, + avoid_radius = 9, + plantlife_limit = -0.8, + temp_min = 0.15, + temp_max = -0.25, + rarity = 50, + max_count = 10, +}, + "abstract_trees.grow_palmtree" +) + + diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..1ab8eaa --- /dev/null +++ b/readme.txt @@ -0,0 +1,22 @@ + _______ ______ _______ _______ _______ +| || _ | | || || | +|_ _|| | || | ___|| ___|| _____| + | | | |_||_ | |___ | |___ | |_____ + | | | __ || ___|| ___||_____ | + | | | | | || |___ | |___ _____| | + |___| |___| |_||_______||_______||_______| + +BY: bas080 +DESCRIPTION: Bigger trees but still tiny trees +VERSION: 1.0 +LICENCE: WTFPL +FORUM: http://forum.minetest.net/viewtopic.php?id=2344 + +Changelog +--------- +1.0 +* Trees + - Palm + - Mangrove + - Jungle +* Spawning of trees \ No newline at end of file diff --git a/textures/trees_jungletree_sapling.png b/textures/trees_jungletree_sapling.png new file mode 100644 index 0000000..1ba0fd1 Binary files /dev/null and b/textures/trees_jungletree_sapling.png differ diff --git a/textures/trees_leaves_dead_mangrove.png b/textures/trees_leaves_dead_mangrove.png new file mode 100644 index 0000000..c7eeadc Binary files /dev/null and b/textures/trees_leaves_dead_mangrove.png differ diff --git a/textures/trees_leaves_green.png b/textures/trees_leaves_green.png new file mode 100644 index 0000000..11df032 Binary files /dev/null and b/textures/trees_leaves_green.png differ diff --git a/textures/trees_leaves_mangrove.png b/textures/trees_leaves_mangrove.png new file mode 100644 index 0000000..ab500fc Binary files /dev/null and b/textures/trees_leaves_mangrove.png differ diff --git a/textures/trees_leaves_palm.png b/textures/trees_leaves_palm.png new file mode 100644 index 0000000..77db491 Binary files /dev/null and b/textures/trees_leaves_palm.png differ diff --git a/textures/trees_leaves_red.png b/textures/trees_leaves_red.png new file mode 100644 index 0000000..3f3ea19 Binary files /dev/null and b/textures/trees_leaves_red.png differ diff --git a/textures/trees_leaves_yellow.png b/textures/trees_leaves_yellow.png new file mode 100644 index 0000000..a9d2e51 Binary files /dev/null and b/textures/trees_leaves_yellow.png differ diff --git a/textures/trees_tree_dead_mangrove.png b/textures/trees_tree_dead_mangrove.png new file mode 100644 index 0000000..e332b2d Binary files /dev/null and b/textures/trees_tree_dead_mangrove.png differ diff --git a/textures/trees_tree_mangrove.png b/textures/trees_tree_mangrove.png new file mode 100644 index 0000000..58d43e5 Binary files /dev/null and b/textures/trees_tree_mangrove.png differ diff --git a/textures/trees_tree_palm.png b/textures/trees_tree_palm.png new file mode 100644 index 0000000..c618419 Binary files /dev/null and b/textures/trees_tree_palm.png differ diff --git a/textures/trees_tree_top_dead_mangrove.png b/textures/trees_tree_top_dead_mangrove.png new file mode 100644 index 0000000..ec27917 Binary files /dev/null and b/textures/trees_tree_top_dead_mangrove.png differ diff --git a/textures/trees_tree_top_mangrove.png b/textures/trees_tree_top_mangrove.png new file mode 100644 index 0000000..dc08c04 Binary files /dev/null and b/textures/trees_tree_top_mangrove.png differ diff --git a/textures/trees_tree_top_palm.png b/textures/trees_tree_top_palm.png new file mode 100644 index 0000000..a2ec676 Binary files /dev/null and b/textures/trees_tree_top_palm.png differ diff --git a/textures/trees_tree_top_palm2.png b/textures/trees_tree_top_palm2.png new file mode 100644 index 0000000..2d93a80 Binary files /dev/null and b/textures/trees_tree_top_palm2.png differ diff --git a/textures/trees_wood_mangrove.png b/textures/trees_wood_mangrove.png new file mode 100644 index 0000000..432dbd5 Binary files /dev/null and b/textures/trees_wood_mangrove.png differ