forked from mtcontrib/moretrees
bc86a3e2ab
leaves out of the avoidnodes table, there's really no reason to have them there and having them causes too much spacing between trees. Reduced the prevalence of sequoias.
216 lines
7.5 KiB
Lua
216 lines
7.5 KiB
Lua
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"},
|
|
{"birch", "Birch Tree"},
|
|
{"palm", "Palm Tree", "coconut", "Coconut", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
|
|
{"spruce", "Spruce Tree", "spruce_cone", "Spruce Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
|
{"pine", "Pine Tree", "pine_cone", "Pine Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
|
{"willow", "Willow Tree"},
|
|
{"rubber_tree", "Rubber Tree"},
|
|
{"jungletree", "Jungle Tree"},
|
|
{"fir", "Douglas Fir", "fir_cone", "Fir Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
|
}
|
|
|
|
for i in ipairs(moretrees.treelist) do
|
|
local treename = moretrees.treelist[i][1]
|
|
local treedesc = moretrees.treelist[i][2]
|
|
local fruit = moretrees.treelist[i][3]
|
|
local fruitdesc = moretrees.treelist[i][4]
|
|
local selbox = moretrees.treelist[i][5]
|
|
local vscale = moretrees.treelist[i][6]
|
|
|
|
|
|
minetest.register_node("moretrees:"..treename.."_trunk", {
|
|
description = treedesc.." Trunk",
|
|
tiles = {
|
|
"moretrees_"..treename.."_trunk_top.png",
|
|
"moretrees_"..treename.."_trunk_top.png",
|
|
"moretrees_"..treename.."_trunk.png"
|
|
},
|
|
is_ground_content = true,
|
|
groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
})
|
|
|
|
minetest.register_node("moretrees:"..treename.."_trunk_sideways", {
|
|
description = "Sideways "..treedesc.." Trunk",
|
|
tiles = {
|
|
"moretrees_"..treename.."_trunk.png^[transformR90",
|
|
"moretrees_"..treename.."_trunk.png^[transformR90",
|
|
"moretrees_"..treename.."_trunk_top.png",
|
|
"moretrees_"..treename.."_trunk_top.png",
|
|
"moretrees_"..treename.."_trunk.png^[transformR90",
|
|
"moretrees_"..treename.."_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",
|
|
})
|
|
|
|
minetest.register_node("moretrees:"..treename.."_planks", {
|
|
description = treedesc.." Planks",
|
|
tiles = {"moretrees_"..treename.."_wood.png"},
|
|
is_ground_content = true,
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
})
|
|
|
|
minetest.register_node("moretrees:"..treename.."_sapling", {
|
|
description = treedesc.." Sapling",
|
|
drawtype = "plantlike",
|
|
tiles = {"moretrees_"..treename.."_sapling.png"},
|
|
inventory_image = "moretrees_"..treename.."_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(),
|
|
})
|
|
|
|
if (fruit ~= nil) then
|
|
minetest.register_node("moretrees:"..fruit, {
|
|
description = fruitdesc,
|
|
drawtype = "plantlike",
|
|
tiles = { "moretrees_"..fruit..".png" },
|
|
inventory_image = "moretrees_"..fruit..".png^[transformR180",
|
|
wield_image = "moretrees_"..fruit..".png^[transformR180",
|
|
visual_scale = vscale,
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = selbox
|
|
},
|
|
groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1},
|
|
sounds = default.node_sound_defaults(),
|
|
})
|
|
end
|
|
|
|
-- player will get a sapling with 1/100 chance
|
|
-- player will get leaves only if he/she gets no saplings,
|
|
-- this is because max_items is 1
|
|
|
|
if treename ~= "jungletree" then
|
|
minetest.register_node("moretrees:"..treename.."_leaves", {
|
|
description = treedesc.." Leaves",
|
|
drawtype = "allfaces_optional",
|
|
tiles = { "moretrees_"..treename.."_leaves.png" },
|
|
paramtype = "light",
|
|
groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1},
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{items = {"moretrees:"..treename.."_sapling"}, rarity = 100 },
|
|
{items = {"moretrees:"..treename.."_leaves"} }
|
|
}
|
|
},
|
|
})
|
|
end
|
|
|
|
table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk")
|
|
end
|
|
|
|
-- Extra leaves for jungle trees:
|
|
|
|
local jungleleaves = {"green","yellow","red"}
|
|
local jungleleavesnames = {"Green", "Yellow", "Red"}
|
|
for color = 1, 3 do
|
|
local leave_name = "moretrees:jungletree_leaves_"..jungleleaves[color]
|
|
minetest.register_node(leave_name, {
|
|
description = "Jungle Tree Leaves ("..jungleleavesnames[color]..")",
|
|
drawtype = "allfaces_optional",
|
|
tiles = {"moretrees_jungletree_leaves_"..jungleleaves[color]..".png"},
|
|
paramtype = "light",
|
|
groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1},
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{items = {'moretrees:jungletree_sapling'}, rarity = 100 },
|
|
{items = {"moretrees:jungletree_leaves_"..jungleleaves[color]} }
|
|
}
|
|
},
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
end
|
|
|
|
-- Extra needles for firs
|
|
|
|
minetest.register_node("moretrees:fir_leaves_bright", {
|
|
drawtype = "allfaces_optional",
|
|
description = "Douglas Fir Leaves (Bright)",
|
|
tile_images = { "moretrees_fir_leaves_bright.png" },
|
|
paramtype = "light",
|
|
|
|
groups = {snappy=3, flammable=2, leaves=1, moretrees_leaves=1 },
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{items = {'moretrees:fir_sapling'}, rarity = 100 },
|
|
{items = {'moretrees:fir_leaves'} }
|
|
}
|
|
},
|
|
sounds = default.node_sound_leaves_defaults()
|
|
})
|
|
|
|
if moretrees.enable_redefine_apple then
|
|
minetest.register_node(":default:apple", {
|
|
description = "Apple",
|
|
drawtype = "plantlike",
|
|
visual_scale = 1.0,
|
|
tiles = {"default_apple.png"},
|
|
inventory_image = "default_apple.png",
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
|
|
},
|
|
groups = {fleshy=3,dig_immediate=3,flammable=2,attached_node=1},
|
|
on_use = minetest.item_eat(4),
|
|
sounds = default.node_sound_defaults(),
|
|
})
|
|
end
|
|
|
|
table.insert(moretrees.avoidnodes, "default:jungletree")
|
|
table.insert(moretrees.avoidnodes, "moretrees:jungletree_trunk")
|
|
table.insert(moretrees.avoidnodes, "moretrees:fir_trunk")
|
|
|
|
-- Backward compatbility with old mods/nodes:
|
|
minetest.registered_items["jungletree"] = nil
|
|
minetest.registered_aliases["jungletree"] = nil
|
|
minetest.registered_items["default:jungletree"] = nil
|
|
minetest.registered_aliases["default:jungletree"] = nil
|
|
|
|
minetest.register_alias("jungletree", "moretrees:jungletree_trunk")
|
|
minetest.register_alias("default:jungletree", "moretrees:jungletree_trunk")
|
|
|
|
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")
|
|
minetest.register_alias("jungletree:sapling", "moretrees:jungletree_sapling")
|
|
|
|
minetest.register_alias("moretrees:conifer_trunk", "moretrees:fir_trunk")
|
|
minetest.register_alias("moretrees:conifer_trunk_sideways", "moretrees:fir_trunk_sideways")
|
|
minetest.register_alias("moretrees:conifer_leaves", "moretrees:fir_leaves")
|
|
minetest.register_alias("moretrees:conifer_leaves_bright", "moretrees:fir_leaves_bright")
|
|
minetest.register_alias("moretrees:conifer_sapling", "moretrees:fir_sapling")
|
|
|
|
minetest.register_alias("conifers:trunk", "moretrees:fir_trunk")
|
|
minetest.register_alias("conifers:trunk_reversed", "moretrees:fir_trunk_sideways")
|
|
minetest.register_alias("conifers:leaves", "moretrees:fir_leaves")
|
|
minetest.register_alias("conifers:leaves_special", "moretrees:fir_leaves_bright")
|
|
minetest.register_alias("conifers:sapling", "moretrees:fir_sapling")
|
|
|