summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-04-07 22:09:18 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2013-04-07 22:09:18 -0400
commit4c198fad78428ac7695626fc39cf6db63d25c7d3 (patch)
tree98ab0b563791f28011792c4d831ef1a37ba239f7
parentd877bd51bb0246addc01477396af31c6d67fe0f4 (diff)
Multiple changes, see below:
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.
-rw-r--r--init.lua13
-rw-r--r--leafdecay.lua18
-rw-r--r--node_defs.lua85
-rw-r--r--settings.lua2
-rw-r--r--tree_models.lua4
5 files changed, 98 insertions, 24 deletions
diff --git a/init.lua b/init.lua
index c58b419..90e8111 100644
--- 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
--
@@ -18,18 +18,21 @@
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
diff --git a/leafdecay.lua b/leafdecay.lua
index 174eb34..7c75f11 100644
--- a/leafdecay.lua
+++ b/leafdecay.lua
@@ -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
})
diff --git a/node_defs.lua b/node_defs.lua
index 63bc413..a56795d 100644
--- a/node_defs.lua
+++ b/node_defs.lua
@@ -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")
diff --git a/settings.lua b/settings.lua
index 9dfb223..66fefeb 100644
--- a/settings.lua
+++ b/settings.lua
@@ -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
diff --git a/tree_models.lua b/tree_models.lua
index 01a70f1..76767b5 100644
--- a/tree_models.lua
+++ b/tree_models.lua
@@ -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,