forked from mtcontrib/moretrees
293 lines
7.8 KiB
Lua
293 lines
7.8 KiB
Lua
leaves = {
|
|
{"beech", "Beech Leaves"},
|
|
{"apple_tree", "Apple Tree Leaves"},
|
|
{"oak", "Oak Leaves"},
|
|
{"sequoia", "Sequoia Needles"},
|
|
{"birch", "Birch Leaves"},
|
|
{"palm", "Palm Leaves"},
|
|
{"spruce", "Spruce Needles"},
|
|
{"pine", "Pine Needles"},
|
|
{"willow", "Willow Leaves"},
|
|
{"rubber_tree", "Rubber Tree Leaves"},
|
|
}
|
|
|
|
moretrees.avoidnodes = {}
|
|
|
|
table.insert(moretrees.avoidnodes, "default:jungletree")
|
|
table.insert(moretrees.avoidnodes, "jungletree:leaves_red")
|
|
table.insert(moretrees.avoidnodes, "jungletree:leaves_green")
|
|
table.insert(moretrees.avoidnodes, "jungletree:leaves_yellow")
|
|
table.insert(moretrees.avoidnodes, "conifers:trunk")
|
|
table.insert(moretrees.avoidnodes, "conifers:leaves")
|
|
table.insert(moretrees.avoidnodes, "conifers:leaves_special")
|
|
|
|
for i in ipairs(leaves) do
|
|
local name = leaves[i]
|
|
minetest.register_node("moretrees:"..leaves[i][1].."_leaves", {
|
|
description = leaves[i][2],
|
|
drawtype = "allfaces_optional",
|
|
visual_scale = 1.3,
|
|
tiles = { "moretrees_"..leaves[i][1].."_leaves.png" },
|
|
paramtype = "light",
|
|
groups = {tree=1, snappy=3, flammable=2},
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
table.insert(moretrees.avoidnodes, "moretrees:"..leaves[i][1].."_leaves")
|
|
end
|
|
|
|
trees = {
|
|
{"beech", "Beech", nil, nil, nil },
|
|
{"apple_tree", "Apple Tree", nil, nil, nil },
|
|
{"oak", "Oak", "acorn", "Acorn", {-0.2, -0.5, -0.2, 0.2, 0, 0.2} },
|
|
{"sequoia", "Sequoia", nil, nil, nil },
|
|
{"birch", "Birch", nil, nil, nil },
|
|
{"palm", "Palm", "coconut", "Coconut", {-0.2, -0.5, -0.2, 0.2, 0, 0.2} },
|
|
{"spruce", "Spruce", "spruce_cone", "Spruce Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2} },
|
|
{"pine", "Pine", "pine_cone", "Pine Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2} },
|
|
{"willow", "Willow", nil, nil, nil },
|
|
{"rubber_tree", "Rubber Tree", nil, nil, nil },
|
|
}
|
|
|
|
simple_trees = { "beech", "apple_tree", "oak", "sequoia", "palm", "pine", "willow", "rubber_tree"}
|
|
|
|
for i in ipairs(trees) do
|
|
local treename = trees[i][1]
|
|
local treedesc = trees[i][2]
|
|
local fruit = trees[i][3]
|
|
local fruitdesc = trees[i][4]
|
|
local selbox = trees[i][5]
|
|
|
|
table.insert(moretrees.avoidnodes, "moretrees:"..treename.."_trunk")
|
|
|
|
minetest.register_node("moretrees:"..treename.."_trunk", {
|
|
description = treedesc.." Trunk",
|
|
tiles = {
|
|
"moretrees_"..treename.."_top.png",
|
|
"moretrees_"..treename.."_top.png",
|
|
"moretrees_"..treename..".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.."_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",
|
|
visual_scale = 1.0,
|
|
tiles = {"moretrees_"..treename.."_sapling.png"},
|
|
inventory_image = "moretrees_"..treename.."_sapling.png",
|
|
wield_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",
|
|
visual_scale = 0.8,
|
|
tiles = { "moretrees_"..fruit..".png" },
|
|
inventory_image = "moretrees_"..fruit..".png",
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = selbox
|
|
},
|
|
groups = {fleshy=3,dig_immediate=3,flammable=2},
|
|
sounds = default.node_sound_defaults(),
|
|
})
|
|
end
|
|
|
|
end
|
|
|
|
--- For backward compatibility, jungle trees and firs ("conifers") are defined
|
|
--- separately.
|
|
|
|
-- Nodes for jungle trees
|
|
|
|
minetest.register_node(":jungletree:sapling", {
|
|
description = "Jungle Tree Sapling",
|
|
drawtype = "plantlike",
|
|
visual_scale = 1.0,
|
|
tiles = {"jungletree_sapling.png"},
|
|
inventory_image = "jungletree_sapling.png",
|
|
wield_image = "default_sapling.png",
|
|
paramtype = "light",
|
|
walkable = false,
|
|
groups = {snappy=2,dig_immediate=3,flammable=2},
|
|
})
|
|
|
|
local leaves = {"green","yellow","red"}
|
|
for color = 1, 3 do
|
|
local leave_name = ":jungletree:leaves_"..leaves[color]
|
|
minetest.register_node(leave_name, {
|
|
description = "Jungle Tree Leaves",
|
|
drawtype = "allfaces_optional",
|
|
tiles = {"jungletree_leaves_"..leaves[color]..".png"},
|
|
paramtype = "light",
|
|
groups = {snappy=3, leafdecay=3, flammable=2},
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{
|
|
-- player will get sapling with 1/20 chance
|
|
items = {'jungletree:sapling'},
|
|
rarity = 20,
|
|
},
|
|
{
|
|
-- player will get leaves only if he get no saplings,
|
|
-- this is because max_items is 1
|
|
items = {"jungletree:leaves_"..leaves[color]},
|
|
}
|
|
}
|
|
},
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
end
|
|
|
|
-- Nodes for conifers
|
|
|
|
minetest.register_node(":conifers:trunk", {
|
|
description = "Conifer trunk",
|
|
tile_images = {
|
|
"conifers_trunktop.png",
|
|
"conifers_trunktop.png",
|
|
"conifers_trunk.png",
|
|
"conifers_trunk.png",
|
|
"conifers_trunk.png",
|
|
"conifers_trunk.png"
|
|
},
|
|
paramtype = "facedir_simple",
|
|
is_ground_content = true,
|
|
groups = {
|
|
tree = 1,
|
|
snappy = 2,
|
|
choppy = 2,
|
|
oddly_breakable_by_hand = 1,
|
|
flammable = 2
|
|
},
|
|
sounds = default.node_sound_wood_defaults()
|
|
})
|
|
|
|
minetest.register_node(":conifers:trunk_reversed", {
|
|
description = "Conifer reversed trunk",
|
|
tile_images = {
|
|
"conifers_trunk_reversed.png",
|
|
"conifers_trunk_reversed.png",
|
|
"conifers_trunktop.png",
|
|
"conifers_trunktop.png",
|
|
"conifers_trunk_reversed.png",
|
|
"conifers_trunk_reversed.png"
|
|
},
|
|
--inventory_image = minetest.inventorycube(
|
|
--"conifers_trunk.png",
|
|
--"conifers_trunktop.png",
|
|
--"conifers_trunk.png"
|
|
--),
|
|
paramtype = "facedir_simple",
|
|
material = minetest.digprop_woodlike(1.0),
|
|
legacy_facedir_simple = true,
|
|
is_ground_content = true,
|
|
groups = {
|
|
tree = 1,
|
|
snappy = 2,
|
|
choppy = 2,
|
|
oddly_breakable_by_hand = 1,
|
|
flammable = 2
|
|
},
|
|
sounds = default.node_sound_wood_defaults()
|
|
})
|
|
|
|
minetest.register_node(":conifers:leaves", {
|
|
description = "Conifer leaves",
|
|
drawtype = "allfaces_optional",
|
|
visual_scale = 1.3,
|
|
tile_images = { "conifers_leaves.png" },
|
|
paramtype = "light",
|
|
groups = {
|
|
snappy = 3,
|
|
leafdecay = 3,
|
|
flammable = 2
|
|
},
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{
|
|
-- player will get sapling with 1/20 chance
|
|
items = {'conifers:sapling'},
|
|
rarity = 20,
|
|
},
|
|
{
|
|
-- player will get leaves only if he get no saplings,
|
|
-- this is because max_items is 1
|
|
items = {'conifers:leaves'},
|
|
}
|
|
}
|
|
},
|
|
sounds = default.node_sound_leaves_defaults()
|
|
})
|
|
|
|
minetest.register_node(":conifers:leaves_special", {
|
|
description = "Bright conifer leaves",
|
|
drawtype = "allfaces_optional",
|
|
visual_scale = 1.3,
|
|
tile_images = { "conifers_leaves_special.png" },
|
|
paramtype = "light",
|
|
groups = {
|
|
snappy = 3,
|
|
leafdecay = 3,
|
|
flammable = 2
|
|
},
|
|
drop = {
|
|
max_items = 1,
|
|
items = {
|
|
{
|
|
-- player will get sapling with 1/20 chance
|
|
items = {'conifers:sapling'},
|
|
rarity = 20,
|
|
},
|
|
{
|
|
-- player will get leaves only if he get no saplings,
|
|
-- this is because max_items is 1
|
|
items = {'conifers:leaves'},
|
|
}
|
|
}
|
|
},
|
|
sounds = default.node_sound_leaves_defaults()
|
|
})
|
|
|
|
minetest.register_node(":conifers:sapling", {
|
|
description = "Conifer sapling",
|
|
drawtype = "plantlike",
|
|
visual_scale = 1.0,
|
|
tile_images = {"conifers_sapling.png"},
|
|
inventory_image = "conifers_sapling.png",
|
|
wield_image = "conifers_sapling.png",
|
|
paramtype = "light",
|
|
walkable = false,
|
|
groups = {
|
|
snappy = 2,
|
|
dig_immediate = 3,
|
|
flammable = 2
|
|
},
|
|
sounds = default.node_sound_defaults(),
|
|
})
|
|
|