--- 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
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
})
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
})
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
})
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,
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
})
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"},
})
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")