Multiple changes, see below:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Mon, 8 Apr 2013 02:09:18 +0000 (22:09 -0400)
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>
Mon, 8 Apr 2013 02:09:18 +0000 (22:09 -0400)
Fix replacement of default trees so that it works correctly.  Beeches
now use default tree nodes, but L-systems models.  This redefines the
default tree, wood, leaves, and saplings so that they use moretrees'
textures "Beech" in their descriptions, but only if replacement of
default trees is enabled.

Added backward-compat aliases for this change.

Moved tree replacement mapgen->air aliases to a more logical spot in the
code.

Also, changed out all leaf decay dig_node() calls for nodeupdate(), since the
former calls the latter anyway, and the latter is what does the job.

Increased the palm leaf decay radius to 12.

init.lua
leafdecay.lua
node_defs.lua
settings.lua
tree_models.lua

index c58b4196f1bb086b300ca791336cec10cd3c4d5e..90e811179a3990ddc4020c092c0bc0f7d3619796 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -1,4 +1,4 @@
--- More trees!  2013-02-11
+-- More trees!  2013-04-07
 --
 -- This mod adds more types of trees to the game
 --
 
 moretrees = {}
 
--- These first two dofile() calls must precede any others, and must remain in
--- this order, otherwise variables and node names will get skipped.
-
 dofile(minetest.get_modpath("moretrees").."/settings.lua")
 dofile(minetest.get_modpath("moretrees").."/node_defs.lua")
-
 dofile(minetest.get_modpath("moretrees").."/tree_models.lua")
 dofile(minetest.get_modpath("moretrees").."/biome_defs.lua")
 dofile(minetest.get_modpath("moretrees").."/crafts.lua")
 dofile(minetest.get_modpath("moretrees").."/leafdecay.lua")
 dofile(minetest.get_modpath("moretrees").."/saplings.lua")
 
+if moretrees.enable_replace_default_trees then
+       minetest.register_alias("mapgen_tree",   "air")
+       minetest.register_alias("mapgen_leaves", "air")
+       minetest.register_alias("mapgen_apple",  "air")
+       plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model)
+end
+
 -- tree spawning setup
 
 if moretrees.enable_apple_tree then
index 174eb347187416ecf9f00dc4e5f556bd13067cc3..7c75f1159a938aaf47d2362ad6cd6f09e3368094 100644 (file)
@@ -11,7 +11,7 @@ if moretrees.enable_leafdecay then
                                action = function(pos, node, active_object_count, active_object_count_wider)
                                        if not minetest.env:find_node_near(pos, moretrees.leafdecay_radius, "moretrees:"..treename.."_trunk") then
                                                minetest.env:remove_node(pos)
-                                               minetest.env:dig_node(pos)
+                                               nodeupdate(pos)
                                        end
                                end
                        })
@@ -25,7 +25,7 @@ if moretrees.enable_leafdecay then
                action = function(pos, node, active_object_count, active_object_count_wider)
                        if not minetest.env:find_node_near(pos, moretrees.leafdecay_radius, {"default:jungletree", "moretrees:jungletree_trunk"}) then
                                minetest.env:remove_node(pos)
-                               minetest.env:dig_node(pos)
+                               nodeupdate(pos)
                        end
                end
        })
@@ -37,7 +37,7 @@ if moretrees.enable_leafdecay then
                action = function(pos, node, active_object_count, active_object_count_wider)
                        if not minetest.env:find_node_near(pos, moretrees.leafdecay_radius, "moretrees:fir_trunk") then
                                minetest.env:remove_node(pos)
-                               minetest.env:dig_node(pos)
+                               nodeupdate(pos)
                        end
                end
        })
@@ -49,19 +49,13 @@ if moretrees.enable_leafdecay then
                action = function(pos, node, active_object_count, active_object_count_wider)
                        if not minetest.env:find_node_near(pos, moretrees.palm_leafdecay_radius, "moretrees:palm_trunk") then
                                minetest.env:remove_node(pos)
-                               minetest.env:dig_node(pos)
+                               nodeupdate(pos)
                        end
                end
        })
 end
 
-if moretrees.enable_replace_default_trees then
-       minetest.register_alias("mapgen_tree", "air")
-       minetest.register_alias("mapgen_leaves", "air")
-       minetest.register_alias("mapgen_apple", "air")
-       plantslib:register_generate_plant(moretrees.beech_biome, moretrees.beech_model)
-
-elseif moretrees.enable_default_leafdecay then
+if moretrees.enable_default_leafdecay then
        minetest.register_abm({
                nodenames = "default:leaves",
                interval = moretrees.default_leafdecay_delay,
@@ -69,7 +63,7 @@ elseif moretrees.enable_default_leafdecay then
                action = function(pos, node, active_object_count, active_object_count_wider)
                        if not minetest.env:find_node_near(pos, moretrees.default_leafdecay_radius, {"default:tree"}) then
                                minetest.env:remove_node(pos)
-                               minetest.env:dig_node(pos)
+                               nodeupdate(pos)
                        end
                end
        })      
index 63bc413d09ecc6d86e56ec89dfc47e79e1d7a526..a56795d0683c3ad9c4d1354515b0c86209d75fa6 100644 (file)
@@ -1,7 +1,6 @@
 moretrees.avoidnodes = {}
        
 moretrees.treelist = {
-       {"beech",       "Beech Tree"},
        {"apple_tree",  "Apple Tree"},
        {"oak",         "Oak Tree",             "acorn",        "Acorn",        {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
        {"sequoia",     "Giant Sequoia"},
@@ -201,19 +200,97 @@ if moretrees.enable_redefine_apple then
        })
 end
 
+if moretrees.enable_replace_default_trees then
+
+       minetest.register_node(":default:tree", {
+               description = "Beech Trunk",
+               tiles = {"moretrees_beech_trunk_top.png", "moretrees_beech_trunk_top.png", "moretrees_beech_trunk.png"},
+               groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
+               sounds = default.node_sound_wood_defaults(),
+       })
+
+       minetest.register_node(":default:leaves", {
+               description = "Beech Leaves",
+               drawtype = "allfaces_optional",
+               visual_scale = 1.3,
+               tiles = {"moretrees_beech_leaves.png"},
+               paramtype = "light",
+               groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
+               drop = {
+                       max_items = 1,
+                       items = {
+                               {
+                                       -- player will get sapling with 1/20 chance
+                                       items = {'default:sapling'},
+                                       rarity = 20,
+                               },
+                               {
+                                       -- player will get leaves only if he get no saplings,
+                                       -- this is because max_items is 1
+                                       items = {'default:leaves'},
+                               }
+                       }
+               },
+               sounds = default.node_sound_leaves_defaults(),
+       })
+
+       minetest.register_node(":default:wood", {
+               description = "Beech Planks",
+               tiles = {"moretrees_beech_wood.png"},
+               groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
+               sounds = default.node_sound_wood_defaults(),
+       })
+
+       minetest.register_node(":default:sapling", {
+               description = "Beech Sapling",
+               drawtype = "plantlike",
+               visual_scale = 1.0,
+               tiles = {"moretrees_beech_sapling.png"},
+               inventory_image = "moretrees_beech_sapling.png",
+               wield_image = "moretrees_beech_sapling.png",
+               paramtype = "light",
+               walkable = false,
+               selection_box = {
+                       type = "fixed",
+                       fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
+               },
+               groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1},
+               sounds = default.node_sound_defaults(),
+       })
+end
+
+minetest.register_node("moretrees:beech_trunk_sideways", {
+       description = "Sideways Beech Trunk",
+       tiles = {
+               "moretrees_beech_trunk.png^[transformR90",
+               "moretrees_beech_trunk.png^[transformR90",
+               "moretrees_beech_trunk_top.png",
+               "moretrees_beech_trunk_top.png",
+               "moretrees_beech_trunk.png^[transformR90",
+               "moretrees_beech_trunk.png^[transformR90"
+       },
+       is_ground_content = true,
+       groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
+       sounds = default.node_sound_wood_defaults(),
+       paramtype2 = "facedir",
+})
+
 table.insert(moretrees.avoidnodes, "default:jungletree")
 table.insert(moretrees.avoidnodes, "moretrees:jungletree_trunk")
 table.insert(moretrees.avoidnodes, "moretrees:fir_trunk")
 
--- For compatibility with newly-re-introduced default jungles and related nodes.
+-- For compatibility with old nodes and recently-changed nodes.
+
+minetest.register_alias("moretrees:beech_trunk",  "default:tree")
+minetest.register_alias("moretrees:beech_leaves", "default:leaves")
+minetest.register_alias("moretrees:beech_planks", "default:wood")
+minetest.register_alias("moretrees:beech_sapling", "default:sapling") 
 
 minetest.register_alias("moretrees:jungletree_trunk", "default:jungletree")
 minetest.register_alias("moretrees:jungletree_planks", "default:junglewood")
 minetest.register_alias("moretrees:jungletree_sapling", "default:junglesapling")
 minetest.register_alias("jungletree:sapling", "default:junglesapling")
 
--- These next ones are for the old jungle trees and conifers mods.
-
 minetest.register_alias("jungletree:leaves_green", "moretrees:jungletree_leaves_green")
 minetest.register_alias("jungletree:leaves_red", "moretrees:jungletree_leaves_red")
 minetest.register_alias("jungletree:leaves_yellow", "moretrees:jungletree_leaves_yellow")
index 9dfb2234904757a67612fbe1035db4fbb3f0f4ef..66fefeb63acd79ad09c0c0a0aa959cebda66d2c5 100644 (file)
@@ -44,7 +44,7 @@ moretrees.leafdecay_delay = 2
 moretrees.leafdecay_chance = 200
 moretrees.leafdecay_radius = 5
 
-moretrees.palm_leafdecay_radius = 8
+moretrees.palm_leafdecay_radius = 12
 
 moretrees.default_leafdecay_delay = 3
 moretrees.default_leafdecay_chance = 100
index 01a70f10b0c20b0252812a420e2b883f5ca1121b..76767b53de314a6f30a8eda64c4bc463a881b19e 100644 (file)
@@ -4,8 +4,8 @@ moretrees.beech_model={
        rules_b="[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&d]//d[+^d][--&d]]////[&&&F[++^Fd][--&Fd]//d[+^d][--&d]]",
        rules_c="/",
        rules_d="F",
-       trunk="moretrees:beech_trunk",
-       leaves="moretrees:beech_leaves",
+       trunk="default:tree",
+       leaves="default:leaves",
        angle=30,
        iterations=2,
        random_level=0,