From 4db9b3076dd368939ef016d77c638bfa997752a4 Mon Sep 17 00:00:00 2001
From: Vanessa Ezekowitz <vanessaezekowitz@gmail.com>
Date: Thu, 24 Jan 2013 23:22:46 -0500
Subject: Modified tree generation and sapling growth calls to comply with new
 plantlife API

In addition to that, there have been numerous other, smaller changes:

* Tweaked palm tree model to add coconuts

* Tweaked size of all "fruit" items (really just cones).  Rotated their images
  in inventory and wield.

* Changed descriptions of sideways trunks to "Sideways Xxxx Trunk"

* Tweaked names of jungle tree leaves to be Jungle Tree Leaves (Xxxx)

* Moved jungletree trunk, sideways trunk, sapling into nodedef loop

* Renamed trunks and trunk tops to bear "_trunk" and "_trunk_top" in their
  filenames.

* Added copies of default jungle tree trunks and tops, with naming similar to
  the above change.

* Re-arranged init.lua to put all leaves/needles definitions in one place.

* Deleted some outdated textures.

* combined leaves definitions back into main loop with an exception for
  jungletrees (if that one is called for, it is skipped, because leaves for
  those trees are explicitly defined later)

* Made all leaves drop saplings when dug, 1/20 chance.

* Added leafdecay radii to main tree table but disabled the use of it.  To be
  implemented in the future.  Disabled leaf decay for firs.
---
 init.lua                                     |  63 ++++--
 node_defs.lua                                | 315 +++++++--------------------
 textures/moretrees_apple_tree.png            | Bin 754 -> 0 bytes
 textures/moretrees_apple_tree_top.png        | Bin 800 -> 0 bytes
 textures/moretrees_apple_tree_trunk.png      | Bin 0 -> 754 bytes
 textures/moretrees_apple_tree_trunk_top.png  | Bin 0 -> 800 bytes
 textures/moretrees_beech.png                 | Bin 706 -> 0 bytes
 textures/moretrees_beech_top.png             | Bin 843 -> 0 bytes
 textures/moretrees_beech_trunk.png           | Bin 0 -> 706 bytes
 textures/moretrees_beech_trunk_top.png       | Bin 0 -> 843 bytes
 textures/moretrees_birch.png                 | Bin 989 -> 0 bytes
 textures/moretrees_birch_top.png             | Bin 830 -> 0 bytes
 textures/moretrees_birch_trunk.png           | Bin 0 -> 989 bytes
 textures/moretrees_birch_trunk_top.png       | Bin 0 -> 830 bytes
 textures/moretrees_fir_trunk_reversed.png    | Bin 721 -> 0 bytes
 textures/moretrees_fir_trunk_top.png         | Bin 0 -> 768 bytes
 textures/moretrees_fir_trunktop.png          | Bin 768 -> 0 bytes
 textures/moretrees_jungletree_bark.png       | Bin 705 -> 0 bytes
 textures/moretrees_jungletree_trunk.png      | Bin 0 -> 751 bytes
 textures/moretrees_jungletree_trunk_top.png  | Bin 0 -> 865 bytes
 textures/moretrees_oak.png                   | Bin 816 -> 0 bytes
 textures/moretrees_oak_top.png               | Bin 792 -> 0 bytes
 textures/moretrees_oak_trunk.png             | Bin 0 -> 816 bytes
 textures/moretrees_oak_trunk_top.png         | Bin 0 -> 792 bytes
 textures/moretrees_palm.png                  | Bin 640 -> 0 bytes
 textures/moretrees_palm_top.png              | Bin 738 -> 0 bytes
 textures/moretrees_palm_trunk.png            | Bin 0 -> 640 bytes
 textures/moretrees_palm_trunk_top.png        | Bin 0 -> 738 bytes
 textures/moretrees_pine.png                  | Bin 872 -> 0 bytes
 textures/moretrees_pine_top.png              | Bin 777 -> 0 bytes
 textures/moretrees_pine_trunk.png            | Bin 0 -> 872 bytes
 textures/moretrees_pine_trunk_top.png        | Bin 0 -> 777 bytes
 textures/moretrees_rubber_tree.png           | Bin 808 -> 0 bytes
 textures/moretrees_rubber_tree_top.png       | Bin 791 -> 0 bytes
 textures/moretrees_rubber_tree_trunk.png     | Bin 0 -> 808 bytes
 textures/moretrees_rubber_tree_trunk_top.png | Bin 0 -> 791 bytes
 textures/moretrees_sequoia.png               | Bin 508 -> 0 bytes
 textures/moretrees_sequoia_top.png           | Bin 787 -> 0 bytes
 textures/moretrees_sequoia_trunk.png         | Bin 0 -> 508 bytes
 textures/moretrees_sequoia_trunk_top.png     | Bin 0 -> 787 bytes
 textures/moretrees_spruce.png                | Bin 699 -> 0 bytes
 textures/moretrees_spruce_top.png            | Bin 738 -> 0 bytes
 textures/moretrees_spruce_trunk.png          | Bin 0 -> 699 bytes
 textures/moretrees_spruce_trunk_top.png      | Bin 0 -> 738 bytes
 textures/moretrees_willow.png                | Bin 510 -> 0 bytes
 textures/moretrees_willow_top.png            | Bin 805 -> 0 bytes
 textures/moretrees_willow_trunk.png          | Bin 0 -> 510 bytes
 textures/moretrees_willow_trunk_top.png      | Bin 0 -> 805 bytes
 tree_models.lua                              |   2 +-
 49 files changed, 116 insertions(+), 264 deletions(-)
 delete mode 100644 textures/moretrees_apple_tree.png
 delete mode 100644 textures/moretrees_apple_tree_top.png
 create mode 100644 textures/moretrees_apple_tree_trunk.png
 create mode 100644 textures/moretrees_apple_tree_trunk_top.png
 delete mode 100755 textures/moretrees_beech.png
 delete mode 100755 textures/moretrees_beech_top.png
 create mode 100755 textures/moretrees_beech_trunk.png
 create mode 100755 textures/moretrees_beech_trunk_top.png
 delete mode 100644 textures/moretrees_birch.png
 delete mode 100644 textures/moretrees_birch_top.png
 create mode 100644 textures/moretrees_birch_trunk.png
 create mode 100644 textures/moretrees_birch_trunk_top.png
 delete mode 100644 textures/moretrees_fir_trunk_reversed.png
 create mode 100644 textures/moretrees_fir_trunk_top.png
 delete mode 100644 textures/moretrees_fir_trunktop.png
 delete mode 100644 textures/moretrees_jungletree_bark.png
 create mode 100644 textures/moretrees_jungletree_trunk.png
 create mode 100644 textures/moretrees_jungletree_trunk_top.png
 delete mode 100644 textures/moretrees_oak.png
 delete mode 100644 textures/moretrees_oak_top.png
 create mode 100644 textures/moretrees_oak_trunk.png
 create mode 100644 textures/moretrees_oak_trunk_top.png
 delete mode 100644 textures/moretrees_palm.png
 delete mode 100644 textures/moretrees_palm_top.png
 create mode 100644 textures/moretrees_palm_trunk.png
 create mode 100644 textures/moretrees_palm_trunk_top.png
 delete mode 100644 textures/moretrees_pine.png
 delete mode 100644 textures/moretrees_pine_top.png
 create mode 100644 textures/moretrees_pine_trunk.png
 create mode 100644 textures/moretrees_pine_trunk_top.png
 delete mode 100644 textures/moretrees_rubber_tree.png
 delete mode 100644 textures/moretrees_rubber_tree_top.png
 create mode 100644 textures/moretrees_rubber_tree_trunk.png
 create mode 100644 textures/moretrees_rubber_tree_trunk_top.png
 delete mode 100644 textures/moretrees_sequoia.png
 delete mode 100644 textures/moretrees_sequoia_top.png
 create mode 100644 textures/moretrees_sequoia_trunk.png
 create mode 100644 textures/moretrees_sequoia_trunk_top.png
 delete mode 100644 textures/moretrees_spruce.png
 delete mode 100644 textures/moretrees_spruce_top.png
 create mode 100644 textures/moretrees_spruce_trunk.png
 create mode 100644 textures/moretrees_spruce_trunk_top.png
 delete mode 100644 textures/moretrees_willow.png
 delete mode 100644 textures/moretrees_willow_top.png
 create mode 100644 textures/moretrees_willow_trunk.png
 create mode 100644 textures/moretrees_willow_trunk_top.png

diff --git a/init.lua b/init.lua
index a05297e..94af930 100644
--- a/init.lua
+++ b/init.lua
@@ -59,10 +59,10 @@ minetest.register_alias("mapgen_leaves", "air")
 plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model)
 ]]--
 
--- sapling growth setup
+-- sapling growth
 
-local sapling_interval = 500    
-local sapling_chance = 10
+local sapling_interval = 1
+local sapling_chance = 1
 
 for i in ipairs(simple_trees) do
 	local tree_name = trees[i][1]
@@ -71,27 +71,46 @@ for i in ipairs(simple_trees) do
 
 	plantslib:dbg(dump(moretrees[tree_biome].surface))
 	
-	plantslib:grow_plants(
-		sapling_interval,
-		sapling_chance,
-		"moretrees:"..tree_name.."_sapling",
-		nil,
-		nil,
-		moretrees[tree_biome].surface,
-		nil,
-		nil,
-		nil,
-		nil,
-		nil,
-		moretrees[tree_model],
-		nil
-	)
+	plantslib:grow_plants({
+		grow_delay = sapling_interval,
+		grow_chance = sapling_chance,
+		grow_plant = "moretrees:"..tree_name.."_sapling",
+		grow_nodes = moretrees[tree_biome].surface,
+		grow_function = moretrees[tree_model],
+	})
 end
 
-plantslib:grow_plants(sapling_interval,sapling_chance,"moretrees:birch_sapling",nil,nil,nil,nil,nil,nil,nil,nil,"moretrees:grow_birch",nil)
-plantslib:grow_plants(sapling_interval,sapling_chance,"moretrees:spruce_sapling",nil,nil,nil,nil,nil,nil,nil,nil,"moretrees:grow_spruce",nil)
-plantslib:grow_plants(sapling_interval,sapling_chance,"moretrees:fir_sapling",nil,nil,nil,nil,nil,nil,nil,nil,"moretrees:grow_fir",nil)
-plantslib:grow_plants(sapling_interval,sapling_chance,"moretrees:jungletree_sapling",nil,nil,nil,nil,nil,nil,nil,nil,"moretrees:grow_jungletree",nil)
+plantslib:grow_plants({
+	grow_delay = sapling_interval,
+	grow_chance = sapling_chance,
+	grow_plant = "moretrees:birch_sapling",
+	grow_nodes = moretrees.birch_biome.surface,
+	grow_function = "moretrees:grow_birch"
+})
+
+plantslib:grow_plants({
+	grow_delay = sapling_interval,
+	grow_chance = sapling_chance,
+	grow_plant = "moretrees:spruce_sapling",
+	grow_nodes = moretrees.spruce_biome.surface,
+	grow_function = "moretrees:grow_spruce"
+})
+
+plantslib:grow_plants({
+	grow_delay = sapling_interval,
+	grow_chance = sapling_chance,
+	grow_plant = "moretrees:fir_sapling",
+	grow_nodes = moretrees.fir_biome.surface,
+	grow_function = "moretrees:grow_fir"
+})
+
+plantslib:grow_plants({
+	grow_delay = sapling_interval,
+	grow_chance = sapling_chance,
+	grow_plant = "moretrees:jungletree_sapling",
+	grow_nodes = moretrees.jungletree_biome.surface,
+	grow_function = "moretrees:grow_jungletree"
+})
 
 -- Code to spawn a birch tree
 
diff --git a/node_defs.lua b/node_defs.lua
index 8e3b21e..396bf67 100644
--- a/node_defs.lua
+++ b/node_defs.lua
@@ -1,16 +1,3 @@
-leaves = {
-	{"beech",		"Beech Leaves"},
-	{"apple_tree", 		"Apple Tree Leaves"},
-	{"oak",			"Oak Leaves"},
-	{"sequoia",		"Sequoia Needles"},
-	{"birch",		"Birch Leaves"},
-	{"palm",		"Palm Leaves"},
-	{"spruce",		"Spruce Needles"},
-	{"pine",		"Pine Needles"},
-	{"willow",		"Willow Leaves"},
-	{"rubber_tree",		"Rubber Tree Leaves"},
-}
-
 moretrees.avoidnodes = {}
 
 table.insert(moretrees.avoidnodes, "default:jungletree")
@@ -21,31 +8,20 @@ table.insert(moretrees.avoidnodes, "moretrees:jungletree_leaves_yellow")
 table.insert(moretrees.avoidnodes, "moretrees:fir_trunk")
 table.insert(moretrees.avoidnodes, "moretrees:fir_leaves")
 table.insert(moretrees.avoidnodes, "moretrees:fir_leaves_bright")
-
-for i in ipairs(leaves) do
-	local name = leaves[i]
-	minetest.register_node("moretrees:"..leaves[i][1].."_leaves", {
-		description = leaves[i][2],
-		drawtype = "allfaces_optional",
-		tiles = { "moretrees_"..leaves[i][1].."_leaves.png" },
-		paramtype = "light",
-		groups = {tree=1, snappy=3, flammable=2},
-		sounds = default.node_sound_leaves_defaults(),
-	})
-	table.insert(moretrees.avoidnodes, "moretrees:"..leaves[i][1].."_leaves")
-	end
 	
 trees = {
-	{"beech",	"Beech",	nil,		nil,		nil				},
-	{"apple_tree",	"Apple Tree",	nil,		nil,		nil				},
-	{"oak",		"Oak",		"acorn",	"Acorn",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}	},
-	{"sequoia",	"Sequoia",	nil,		nil,		nil				},
-	{"birch",	"Birch",	nil,		nil,		nil				},
-	{"palm",	"Palm",		"coconut",	"Coconut",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}	},
-	{"spruce",	"Spruce",	"spruce_cone",	"Spruce Cone",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}	},
-	{"pine",	"Pine",		"pine_cone",	"Pine Cone",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}	},
-	{"willow",	"Willow",	nil,		nil,		nil				},
-	{"rubber_tree",	"Rubber Tree",	nil,		nil,		nil				},
+	{"beech",	"Beech",	 4 },
+	{"apple_tree",	"Apple Tree",	10 },
+	{"oak",		"Oak",		10,	"acorn",	"Acorn",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
+	{"sequoia",	"Sequoia",	 7 },
+	{"birch",	"Birch",	10 },
+	{"palm",	"Palm",		15,	"coconut",	"Coconut",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
+	{"spruce",	"Spruce",	10,	"spruce_cone",	"Spruce Cone",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
+	{"pine",	"Pine",		10,	"pine_cone",	"Pine Cone",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
+	{"willow",	"Willow",	15 },
+	{"rubber_tree",	"Rubber Tree",	 7 },
+	{"jungletree",	"Jungle Tree"},
+	{"fir",		"Fir",		15,	"fir_cone",	"Fir Cone",	{-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
 }
 
 simple_trees = { "beech", "apple_tree", "oak", "sequoia", "palm", "pine", "willow", "rubber_tree"}
@@ -53,18 +29,18 @@ simple_trees = { "beech", "apple_tree", "oak", "sequoia", "palm", "pine", "willo
 for i in ipairs(trees) do
 	local treename = trees[i][1]
 	local treedesc = trees[i][2]
-	local fruit = trees[i][3]
-	local fruitdesc = trees[i][4]
-	local selbox = trees[i][5]
-
-	table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk")
+	local leafdecayradius = trees[i][3]  -- future use, not yet implemented.
+	local fruit = trees[i][4]
+	local fruitdesc = trees[i][5]
+	local selbox = trees[i][6]
+	local vscale = trees[i][7]
 
 	minetest.register_node("moretrees:"..treename.."_trunk", {
-		description = treedesc.." Trunk",
+		description = treedesc.." Tree Trunk",
 		tiles = {
-			"moretrees_"..treename.."_top.png",
-			"moretrees_"..treename.."_top.png",
-			"moretrees_"..treename..".png"
+			"moretrees_"..treename.."_trunk_top.png",
+			"moretrees_"..treename.."_trunk_top.png",
+			"moretrees_"..treename.."_trunk.png"
 		},
 		is_ground_content = true,
 		groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
@@ -72,14 +48,14 @@ for i in ipairs(trees) do
 	})
 
 	minetest.register_node("moretrees:"..treename.."_trunk_sideways", {
-		description = treedesc.." Trunk (sideways)",
+		description = "Sideways "..treedesc.." Tree Trunk",
 		tiles = {
-			"moretrees_"..treename..".png^[transformR90",
-			"moretrees_"..treename..".png^[transformR90",
-			"moretrees_"..treename.."_top.png",
-			"moretrees_"..treename.."_top.png",
-			"moretrees_"..treename..".png^[transformR90",
-			"moretrees_"..treename..".png^[transformR90"
+			"moretrees_"..treename.."_trunk.png^[transformR90",
+			"moretrees_"..treename.."_trunk.png^[transformR90",
+			"moretrees_"..treename.."_trunk_top.png",
+			"moretrees_"..treename.."_trunk_top.png",
+			"moretrees_"..treename.."_trunk.png^[transformR90",
+			"moretrees_"..treename.."_trunk.png^[transformR90"
 		},
 		is_ground_content = true,
 		groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
@@ -87,7 +63,7 @@ for i in ipairs(trees) do
 	})
 
 	minetest.register_node("moretrees:"..treename.."_planks", {
-		description = treedesc.." Planks",
+		description = treedesc.." Beech Planks",
 		tiles = {"moretrees_"..treename.."_wood.png"},
 		is_ground_content = true,
 		groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
@@ -95,7 +71,7 @@ for i in ipairs(trees) do
 	})
 
 	minetest.register_node("moretrees:"..treename.."_sapling", {
-	description = treedesc.." Sapling",
+	description = treedesc.." Tree Sapling",
 	drawtype = "plantlike",
 	tiles = {"moretrees_"..treename.."_sapling.png"},
 	inventory_image = "moretrees_"..treename.."_sapling.png",
@@ -114,7 +90,9 @@ for i in ipairs(trees) do
 			description = fruitdesc,
 			drawtype = "plantlike",
 			tiles = { "moretrees_"..fruit..".png" },
-			inventory_image = "moretrees_"..fruit..".png",
+			inventory_image = "moretrees_"..fruit..".png^[transformR180",
+			wield_image = "moretrees_"..fruit..".png^[transformR180",
+			visual_scale = vscale,
 			paramtype = "light",
 			sunlight_propagates = true,
 			walkable = false,
@@ -127,165 +105,61 @@ for i in ipairs(trees) do
 		})
 	end
 
-end
-
--- Nodes for jungle trees
-
-minetest.register_node("moretrees:jungletree_sapling", {
-	description = "Jungle Tree Sapling",	
-	drawtype = "plantlike",	
-	tiles = {"moretrees_jungletree_sapling.png"},	
-	inventory_image = "moretrees_jungletree_sapling.png",
-	paramtype = "light",	
-	walkable = false,	
-	groups = {snappy=2,dig_immediate=3,flammable=2},
-})
+	-- player will get sapling with 1/20 chance
+	-- player will get leaves only if he get no saplings,
+	-- this is because max_items is 1
 
-minetest.register_node("moretrees:jungletree_trunk", {
-	description = "Jungle Tree trunk (sideways)",	
-	tiles = {
-		"default_jungletree_top.png",
-		"default_jungletree_top.png",
-		"default_jungletree.png",
-		"default_jungletree.png",
-		"default_jungletree.png",
-		"default_jungletree.png"
-	},
-	groups = {wood=1,snappy=2,dig_immediate=3,flammable=2},
-})
+	if treename ~= "jungletree" then
+		minetest.register_node("moretrees:"..treename.."_leaves", {
+			description = treedesc.." Tree Leaves",
+			drawtype = "allfaces_optional",
+			tiles = { "moretrees_"..treename.."_leaves.png" },
+			paramtype = "light",
+			groups = {tree=1, snappy=3, flammable=2 },
+			sounds = default.node_sound_leaves_defaults(),
+
+			-- player will get sapling with 1/20 chance
+			-- player will get leaves only if he/she gets no
+			-- saplings, because max_items is 1.
+
+			drop = {
+				max_items = 1,
+				items = {
+					{items = {"moretrees:"..treename.."_sapling"}, rarity = 20	},
+					{items = {"moretrees:"..treename.."_leaves"} }
+				}
+			},
+		})
+	end
 
-minetest.register_node("moretrees:jungletree_planks", {
-	description = "Jungle Tree Planks",
-	tiles = {
-		"moretrees_jungletree_wood.png",
-	},
-	groups = {wood=1,snappy=2,dig_immediate=3,flammable=2},
-})
+	table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk")
+	table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_leaves")
+end
 
-minetest.register_node("moretrees:jungletree_trunk_sideways", {
-	description = "Jungle Tree trunk (sideways)",	
-	tiles = {
-		"default_jungletree.png^[transformR90",
-		"default_jungletree.png^[transformR90",
-		"default_jungletree_top.png",
-		"default_jungletree_top.png",
-		"default_jungletree.png^[transformR90",
-		"default_jungletree.png^[transformR90"
-	},
-	groups = {wood=1,snappy=2,dig_immediate=3,flammable=2},
-})
+-- Extra leaves for jungle trees:
 
-local leaves = {"green","yellow","red"}
+local jungleleaves = {"green","yellow","red"}
+local jungleleavesnames = {"Green", "Yellow", "Red"}
 for color = 1, 3 do
-	local leave_name = "moretrees:jungletree_leaves_"..leaves[color]
+	local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color]
 	minetest.register_node(leave_name, {
-		description = "Jungle Tree Leaves",
+		description = "Jungle Tree Leaves ("..jungleleavesnames[color]..")",
 		drawtype = "allfaces_optional",
-		tiles = {"moretrees_jungletree_leaves_"..leaves[color]..".png"},
+		tiles = {"moretrees_jungletree_leaves_"..jungleleaves[color]..".png"},
 		paramtype = "light",
-		groups = {snappy=3, leafdecay=3, flammable=2},
+		groups = {snappy=3, flammable=2},
 		drop = {
 			max_items = 1,
 			items = {
-				{
-					-- player will get sapling with 1/20 chance
-					items = {'moretrees:jungletree_sapling'},
-					rarity = 20,
-				},
-				{
-					-- player will get leaves only if he get no saplings,
-					-- this is because max_items is 1
-					items = {"moretrees:jungletree_leaves_"..leaves[color]},
-				}
+				{items = {'moretrees:jungletree_sapling'}, rarity = 20 },
+				{items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} }
 			}
 		},
 		sounds = default.node_sound_leaves_defaults(),
 	})
 end
 
--- Nodes for firs
-
-minetest.register_node("moretrees:fir_trunk", {
-	description = "Fir trunk",
-	tile_images = { 
-		"moretrees_fir_trunktop.png", 
-		"moretrees_fir_trunktop.png", 
-		"moretrees_fir_trunk.png", 
-		"moretrees_fir_trunk.png", 
-		"moretrees_fir_trunk.png", 
-		"moretrees_fir_trunk.png" 
-	},
-	is_ground_content = true,
-	groups = {
-		tree = 1,
-		snappy = 2,
-		choppy = 2,
-		oddly_breakable_by_hand = 1,
-		flammable = 2,
-		wood = 1
-	},
-	sounds = default.node_sound_wood_defaults()
-})
-
-minetest.register_node("moretrees:fir_trunk_sideways", {
-	description = "Fir Trunk (sideways)",
-	tile_images = { 
-		"moretrees_fir_trunk.png^[transformR90", 
-		"moretrees_fir_trunk.png^[transformR90",
-		"moretrees_fir_trunktop.png", 
-		"moretrees_fir_trunktop.png", 
-		"moretrees_fir_trunk.png^[transformR90", 
-		"moretrees_fir_trunk.png^[transformR90" 
-	},
-	paramtype2 = "facedir",
-	material = minetest.digprop_woodlike(1.0),
-
-	groups = {
-		tree = 1,
-		snappy = 2,
-		choppy = 2,
-		oddly_breakable_by_hand = 1,
-		flammable = 2,
-		wood = 1
-	},
-	sounds = default.node_sound_wood_defaults()
-})
-
-minetest.register_node("moretrees:fir_planks", {
-	description = "Fir Planks",
-	tiles = {
-		"moretrees_fir_wood.png",
-	},
-	groups = {wood=1,snappy=2,dig_immediate=3,flammable=2},
-})
-
-minetest.register_node("moretrees:fir_leaves", {
-	drawtype = "allfaces_optional",
-	description = "Fir Leaves",
-	tile_images = { "moretrees_fir_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 = {'moretrees:fir_sapling'},
-				rarity = 20,
-			},
-			{
-				-- player will get leaves only if he get no saplings,
-				-- this is because max_items is 1
-				items = {'moretrees:fir_leaves'},
-			}
-		}
-	},
-	sounds = default.node_sound_leaves_defaults()
-})
+-- Extra needles for firs
 
 minetest.register_node("moretrees:fir_leaves_bright", {
 	drawtype = "allfaces_optional",
@@ -293,59 +167,18 @@ minetest.register_node("moretrees:fir_leaves_bright", {
 	tile_images = { "moretrees_fir_leaves_bright.png" },
 	paramtype = "light",
 
-	groups = {
-		snappy = 3,
-		leafdecay = 3,
-		flammable = 2
-	},
+	groups = {snappy=3, flammable=2 },
 	drop = {
 		max_items = 1,
 		items = {
-			{
-				-- player will get sapling with 1/20 chance
-				items = {'moretrees:fir_sapling'},
-				rarity = 20,
-			},
-			{
-				-- player will get leaves only if he get no saplings,
-				-- this is because max_items is 1
-				items = {'moretrees:fir_leaves'},
-			}
+			{items = {'moretrees:fir_sapling'}, rarity = 20 },
+			{items = {'moretrees:fir_leaves'} }
 		}
 	},
 	sounds = default.node_sound_leaves_defaults()
 })
 
-minetest.register_node("moretrees:fir_sapling", {
-	description = "Fir sapling",
-	drawtype = "plantlike",
-	tile_images = {"moretrees_fir_sapling.png"},
-	inventory_image = "moretrees_fir_sapling.png",
-	paramtype = "light",
-	walkable = false,
-	groups = {
-		snappy = 2,
-		dig_immediate = 3,
-		flammable = 2
-	},
-	sounds = default.node_sound_defaults(),
-})
 
-minetest.register_node("moretrees:fir_cone", {
-	description = "Fir cone",
-	drawtype = "plantlike",
-	tiles = {"moretrees_fir_cone.png"},
-	inventory_image = "moretrees_fir_cone.png",
-	paramtype = "light",
-	sunlight_propagates = true,
-	walkable = false,
-	groups = {fleshy=3,dig_immediate=3,flammable=2},
-	sounds = default.node_sound_defaults(),
-	selection_box = {
-		type = "fixed",
-			fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
-		},
-})
 
 -- Backward compatbility with old mods/nodes:
 
diff --git a/textures/moretrees_apple_tree.png b/textures/moretrees_apple_tree.png
deleted file mode 100644
index 7f2041d..0000000
Binary files a/textures/moretrees_apple_tree.png and /dev/null differ
diff --git a/textures/moretrees_apple_tree_top.png b/textures/moretrees_apple_tree_top.png
deleted file mode 100644
index 2aa3cd2..0000000
Binary files a/textures/moretrees_apple_tree_top.png and /dev/null differ
diff --git a/textures/moretrees_apple_tree_trunk.png b/textures/moretrees_apple_tree_trunk.png
new file mode 100644
index 0000000..7f2041d
Binary files /dev/null and b/textures/moretrees_apple_tree_trunk.png differ
diff --git a/textures/moretrees_apple_tree_trunk_top.png b/textures/moretrees_apple_tree_trunk_top.png
new file mode 100644
index 0000000..2aa3cd2
Binary files /dev/null and b/textures/moretrees_apple_tree_trunk_top.png differ
diff --git a/textures/moretrees_beech.png b/textures/moretrees_beech.png
deleted file mode 100755
index ab12501..0000000
Binary files a/textures/moretrees_beech.png and /dev/null differ
diff --git a/textures/moretrees_beech_top.png b/textures/moretrees_beech_top.png
deleted file mode 100755
index 6d62006..0000000
Binary files a/textures/moretrees_beech_top.png and /dev/null differ
diff --git a/textures/moretrees_beech_trunk.png b/textures/moretrees_beech_trunk.png
new file mode 100755
index 0000000..ab12501
Binary files /dev/null and b/textures/moretrees_beech_trunk.png differ
diff --git a/textures/moretrees_beech_trunk_top.png b/textures/moretrees_beech_trunk_top.png
new file mode 100755
index 0000000..6d62006
Binary files /dev/null and b/textures/moretrees_beech_trunk_top.png differ
diff --git a/textures/moretrees_birch.png b/textures/moretrees_birch.png
deleted file mode 100644
index 3da8013..0000000
Binary files a/textures/moretrees_birch.png and /dev/null differ
diff --git a/textures/moretrees_birch_top.png b/textures/moretrees_birch_top.png
deleted file mode 100644
index 7ca4aa2..0000000
Binary files a/textures/moretrees_birch_top.png and /dev/null differ
diff --git a/textures/moretrees_birch_trunk.png b/textures/moretrees_birch_trunk.png
new file mode 100644
index 0000000..3da8013
Binary files /dev/null and b/textures/moretrees_birch_trunk.png differ
diff --git a/textures/moretrees_birch_trunk_top.png b/textures/moretrees_birch_trunk_top.png
new file mode 100644
index 0000000..7ca4aa2
Binary files /dev/null and b/textures/moretrees_birch_trunk_top.png differ
diff --git a/textures/moretrees_fir_trunk_reversed.png b/textures/moretrees_fir_trunk_reversed.png
deleted file mode 100644
index 0730e31..0000000
Binary files a/textures/moretrees_fir_trunk_reversed.png and /dev/null differ
diff --git a/textures/moretrees_fir_trunk_top.png b/textures/moretrees_fir_trunk_top.png
new file mode 100644
index 0000000..4f21401
Binary files /dev/null and b/textures/moretrees_fir_trunk_top.png differ
diff --git a/textures/moretrees_fir_trunktop.png b/textures/moretrees_fir_trunktop.png
deleted file mode 100644
index 4f21401..0000000
Binary files a/textures/moretrees_fir_trunktop.png and /dev/null differ
diff --git a/textures/moretrees_jungletree_bark.png b/textures/moretrees_jungletree_bark.png
deleted file mode 100644
index d826fdd..0000000
Binary files a/textures/moretrees_jungletree_bark.png and /dev/null differ
diff --git a/textures/moretrees_jungletree_trunk.png b/textures/moretrees_jungletree_trunk.png
new file mode 100644
index 0000000..d8c2635
Binary files /dev/null and b/textures/moretrees_jungletree_trunk.png differ
diff --git a/textures/moretrees_jungletree_trunk_top.png b/textures/moretrees_jungletree_trunk_top.png
new file mode 100644
index 0000000..805272a
Binary files /dev/null and b/textures/moretrees_jungletree_trunk_top.png differ
diff --git a/textures/moretrees_oak.png b/textures/moretrees_oak.png
deleted file mode 100644
index 431695e..0000000
Binary files a/textures/moretrees_oak.png and /dev/null differ
diff --git a/textures/moretrees_oak_top.png b/textures/moretrees_oak_top.png
deleted file mode 100644
index daeb336..0000000
Binary files a/textures/moretrees_oak_top.png and /dev/null differ
diff --git a/textures/moretrees_oak_trunk.png b/textures/moretrees_oak_trunk.png
new file mode 100644
index 0000000..431695e
Binary files /dev/null and b/textures/moretrees_oak_trunk.png differ
diff --git a/textures/moretrees_oak_trunk_top.png b/textures/moretrees_oak_trunk_top.png
new file mode 100644
index 0000000..daeb336
Binary files /dev/null and b/textures/moretrees_oak_trunk_top.png differ
diff --git a/textures/moretrees_palm.png b/textures/moretrees_palm.png
deleted file mode 100644
index c618419..0000000
Binary files a/textures/moretrees_palm.png and /dev/null differ
diff --git a/textures/moretrees_palm_top.png b/textures/moretrees_palm_top.png
deleted file mode 100644
index a2ec676..0000000
Binary files a/textures/moretrees_palm_top.png and /dev/null differ
diff --git a/textures/moretrees_palm_trunk.png b/textures/moretrees_palm_trunk.png
new file mode 100644
index 0000000..c618419
Binary files /dev/null and b/textures/moretrees_palm_trunk.png differ
diff --git a/textures/moretrees_palm_trunk_top.png b/textures/moretrees_palm_trunk_top.png
new file mode 100644
index 0000000..a2ec676
Binary files /dev/null and b/textures/moretrees_palm_trunk_top.png differ
diff --git a/textures/moretrees_pine.png b/textures/moretrees_pine.png
deleted file mode 100644
index 0aa9bfd..0000000
Binary files a/textures/moretrees_pine.png and /dev/null differ
diff --git a/textures/moretrees_pine_top.png b/textures/moretrees_pine_top.png
deleted file mode 100644
index 1584caf..0000000
Binary files a/textures/moretrees_pine_top.png and /dev/null differ
diff --git a/textures/moretrees_pine_trunk.png b/textures/moretrees_pine_trunk.png
new file mode 100644
index 0000000..0aa9bfd
Binary files /dev/null and b/textures/moretrees_pine_trunk.png differ
diff --git a/textures/moretrees_pine_trunk_top.png b/textures/moretrees_pine_trunk_top.png
new file mode 100644
index 0000000..1584caf
Binary files /dev/null and b/textures/moretrees_pine_trunk_top.png differ
diff --git a/textures/moretrees_rubber_tree.png b/textures/moretrees_rubber_tree.png
deleted file mode 100644
index 08067ef..0000000
Binary files a/textures/moretrees_rubber_tree.png and /dev/null differ
diff --git a/textures/moretrees_rubber_tree_top.png b/textures/moretrees_rubber_tree_top.png
deleted file mode 100644
index dc26a7a..0000000
Binary files a/textures/moretrees_rubber_tree_top.png and /dev/null differ
diff --git a/textures/moretrees_rubber_tree_trunk.png b/textures/moretrees_rubber_tree_trunk.png
new file mode 100644
index 0000000..08067ef
Binary files /dev/null and b/textures/moretrees_rubber_tree_trunk.png differ
diff --git a/textures/moretrees_rubber_tree_trunk_top.png b/textures/moretrees_rubber_tree_trunk_top.png
new file mode 100644
index 0000000..dc26a7a
Binary files /dev/null and b/textures/moretrees_rubber_tree_trunk_top.png differ
diff --git a/textures/moretrees_sequoia.png b/textures/moretrees_sequoia.png
deleted file mode 100644
index b0e5536..0000000
Binary files a/textures/moretrees_sequoia.png and /dev/null differ
diff --git a/textures/moretrees_sequoia_top.png b/textures/moretrees_sequoia_top.png
deleted file mode 100644
index 481bbdf..0000000
Binary files a/textures/moretrees_sequoia_top.png and /dev/null differ
diff --git a/textures/moretrees_sequoia_trunk.png b/textures/moretrees_sequoia_trunk.png
new file mode 100644
index 0000000..b0e5536
Binary files /dev/null and b/textures/moretrees_sequoia_trunk.png differ
diff --git a/textures/moretrees_sequoia_trunk_top.png b/textures/moretrees_sequoia_trunk_top.png
new file mode 100644
index 0000000..481bbdf
Binary files /dev/null and b/textures/moretrees_sequoia_trunk_top.png differ
diff --git a/textures/moretrees_spruce.png b/textures/moretrees_spruce.png
deleted file mode 100644
index 6e4e67a..0000000
Binary files a/textures/moretrees_spruce.png and /dev/null differ
diff --git a/textures/moretrees_spruce_top.png b/textures/moretrees_spruce_top.png
deleted file mode 100644
index 84ec816..0000000
Binary files a/textures/moretrees_spruce_top.png and /dev/null differ
diff --git a/textures/moretrees_spruce_trunk.png b/textures/moretrees_spruce_trunk.png
new file mode 100644
index 0000000..6e4e67a
Binary files /dev/null and b/textures/moretrees_spruce_trunk.png differ
diff --git a/textures/moretrees_spruce_trunk_top.png b/textures/moretrees_spruce_trunk_top.png
new file mode 100644
index 0000000..84ec816
Binary files /dev/null and b/textures/moretrees_spruce_trunk_top.png differ
diff --git a/textures/moretrees_willow.png b/textures/moretrees_willow.png
deleted file mode 100644
index 81d7c81..0000000
Binary files a/textures/moretrees_willow.png and /dev/null differ
diff --git a/textures/moretrees_willow_top.png b/textures/moretrees_willow_top.png
deleted file mode 100644
index 385da0f..0000000
Binary files a/textures/moretrees_willow_top.png and /dev/null differ
diff --git a/textures/moretrees_willow_trunk.png b/textures/moretrees_willow_trunk.png
new file mode 100644
index 0000000..81d7c81
Binary files /dev/null and b/textures/moretrees_willow_trunk.png differ
diff --git a/textures/moretrees_willow_trunk_top.png b/textures/moretrees_willow_trunk_top.png
new file mode 100644
index 0000000..385da0f
Binary files /dev/null and b/textures/moretrees_willow_trunk_top.png differ
diff --git a/tree_models.lua b/tree_models.lua
index e9e03e9..01a70f1 100644
--- a/tree_models.lua
+++ b/tree_models.lua
@@ -89,7 +89,7 @@ moretrees.birch_model2={
 }
 
 moretrees.palm_model={
-	axiom="FFccc&FFFFFdddFA//A//A//A//A//A",
+	axiom="FFcccccc&FFFFFddd[^&&&GR][^///&&&GR][^//////&&&GR][^***&&&GR]FA//A//A//A//A//A",
 	rules_a="[&fb&bbb[++f--&ffff&ff][--f++&ffff&ff]&ffff&bbbb&b]",
 	rules_b="f",
 	rules_c="/",
-- 
cgit v1.2.3