summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,