2022-01-16 16:13:42 -05:00

96 lines
3.5 KiB
Lua

minetest.register_craftitem("fl_trees:stick", {
description = "stick",
inventory_image = "farlands_stick.png",
_dungeon_loot = {name = "fl_trees:stick", chance = 0.6, count = {3, 6}},
})
local function tree_nodes(name, tgroup, lgroup, pgroup)
local tgp = tgroup or {dig_tree = 1, wood_related = 1, tree = 1, trunk = 1}
local lgp = lgroup or {dig_tree = 3, wood_related = 1, tree = 1, leaf = 1, spawn_blacklist = 1}
local pgp = pgroup or {dig_tree = 2, wood_related = 1, plank = 1, fenceable = 1, stairable = 1}
local fgp = table.copy(pgp)
fgp.stairable, fgp.fenceable, fgp.fence, fgp.not_in_creative_inventory, fgp.spawn_blacklist = nil, nil, 1, 1, 1
minetest.register_node("fl_trees:" .. name .. "_trunk", {
--nodes
description = name .. " tree trunk",
tiles = {
"farlands_" .. name .. "_trunk_top.png",
"farlands_" .. name .. "_trunk_top.png",
"farlands_" .. name .. "_trunk.png"
},
paramtype2 = "facedir",
sounds = fl_trees.sounds.wood(),
groups = tgp,
on_place = minetest.rotate_node
})
minetest.register_node("fl_trees:" .. name .. "_leaves", {
description = name .. " leaves",
drawtype = "allfaces_optional",
paramtype = "light",
tiles = {"farlands_" .. name .. "_leaves.png"},
groups = lgp,
})
minetest.register_node("fl_trees:" .. name .. "_plank", {
description = name .. " plank",
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"farlands_" .. name .. "_planks.png"},
sounds = fl_trees.sounds.wood(),
groups = pgp,
on_place = minetest.rotate_node
})
minetest.register_node("fl_trees:" .. name .. "_plank_fence", {
description = name .. " fence",
paramtype = "light",
drawtype = "nodebox",
node_box = {
type = "connected",
fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8},
connect_front = {{-1/16, 3/16, -1/2, 1/16, 5/16, -1/8 }, {-1/16, -5/16, -1/2, 1/16, -3/16, -1/8 }},
connect_left = {{-1/2, 3/16, -1/16, -1/8, 5/16, 1/16}, {-1/2, -5/16, -1/16, -1/8, -3/16, 1/16}},
connect_back = {{-1/16, 3/16, 1/8, 1/16, 5/16, 1/2 }, {-1/16, -5/16, 1/8, 1/16, -3/16, 1/2 }},
connect_right = {{ 1/8, 3/16, -1/16, 1/2, 5/16, 1/16}, { 1/8, -5/16, -1/16, 1/2, -3/16, 1/16}},
},
connects_to = {"group:fence", "group:wood_related"},
tiles = {"farlands_" .. name .. "_planks.png"},
sounds = fl_trees.sounds.wood(),
groups = fgp,
})
--crafts
minetest.register_craft({
output = "fl_trees:" .. name .. "_plank 4",
recipe = {{"fl_trees:" .. name .. "_trunk",}}
})
minetest.register_craft({
output = "fl_trees:stick 4",
recipe = {{"fl_trees:" .. name .. "_plank"}},
})
end
minetest.register_node("fl_trees:dead_aspen_leaves", {
description = "dead aspen leaves",
drawtype = "allfaces_optional",
paramtype = "light",
tiles = {"farlands_dead_aspen_leaves.png"},
groups = {dig_tree = 3, tree = 1, leaf = 1},
})
local wtypes = {"acacia", "aspen", "pine", "spruce", "yellow_ipe", "willow", "baobab", "palm", "jungletree", "apple"}
for _, wood in pairs(wtypes) do
tree_nodes(wood)
end
if minetest.get_modpath("i3") then
local types = {"plank", "trunk", "leaves"}
wtypes[#wtypes] = nil
for _, type in pairs(types) do
i3.compress("fl_trees:apple_" .. type, {
replace = "apple",
by = wtypes
})
end
end