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,