mirror of
https://github.com/mt-mods/moretrees.git
synced 2025-06-30 23:20:45 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
193
node_defs.lua
193
node_defs.lua
@ -5,19 +5,19 @@ moretrees.avoidnodes = {}
|
||||
moretrees.treelist = {
|
||||
{"beech", S("Beech Tree")},
|
||||
{"apple_tree", S("Apple Tree")},
|
||||
{"oak", S("Oak Tree"), "acorn", S("Acorn"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"oak", S("Oak Tree"), "acorn", S("Acorn"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"sequoia", S("Giant Sequoia")},
|
||||
{"birch", S("Birch Tree")},
|
||||
{"palm", S("Palm Tree"), "palm_fruit_trunk_gen", S("Palm Tree"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
|
||||
{"date_palm", S("Date Palm Tree"), "date_palm_fruit_trunk", S("Date Palm Tree"), {0, 0, 0, 0, 0, 0}, 0.0 },
|
||||
{"spruce", S("Spruce Tree"), "spruce_cone", S("Spruce Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"cedar", S("Cedar Tree"), "cedar_cone", S("Cedar Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"palm", S("Palm Tree"), "palm_fruit_trunk_gen", S("Palm Tree"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
|
||||
{"date_palm", S("Date Palm Tree"), "date_palm_fruit_trunk",S("Date Palm Tree"), {0, 0, 0, 0, 0, 0}, 0.0 },
|
||||
{"spruce", S("Spruce Tree"), "spruce_cone", S("Spruce Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"cedar", S("Cedar Tree"), "cedar_cone", S("Cedar Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"poplar", S("Poplar Tree")},
|
||||
{"poplar_small", S("Poplar Tree")},
|
||||
{"willow", S("Willow Tree")},
|
||||
{"rubber_tree", S("Rubber Tree")},
|
||||
{"fir", S("Douglas Fir"), "fir_cone", S("Fir Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"jungletree", S("Jungle Tree"), nil, nil, nil, nil, "default_junglesapling.png" },
|
||||
{"fir", S("Douglas Fir"), "fir_cone", S("Fir Cone"), {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
|
||||
{"jungletree", S("Jungle Tree"), nil, nil, nil, nil, "default_junglesapling.png" },
|
||||
}
|
||||
|
||||
moretrees.treedesc = {
|
||||
@ -265,9 +265,9 @@ for i in ipairs(moretrees.treelist) do
|
||||
decay = moretrees.date_palm_leafdecay_radius
|
||||
end
|
||||
|
||||
if treename ~= "jungletree" -- the default game provides jungle tree and pine trunk/planks nodes.
|
||||
and treename ~= "poplar_small"
|
||||
and treename ~= "pine" then
|
||||
-- dont register planks/nodes for trees from default and small varients for trees
|
||||
local split_tn = treename:split("_")
|
||||
if treename ~= "jungletree" and treename ~= "pine" and split_tn[2]~="small" then
|
||||
|
||||
saptex = "moretrees_"..treename.."_sapling.png"
|
||||
|
||||
@ -293,35 +293,6 @@ for i in ipairs(moretrees.treelist) do
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("moretrees:"..treename.."_sapling", {
|
||||
description = moretrees.treedesc[treename].sapling,
|
||||
drawtype = "plantlike",
|
||||
tiles = {saptex},
|
||||
inventory_image = saptex,
|
||||
paramtype = "light",
|
||||
paramtype2 = "waving",
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
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,sapling=1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"moretrees:" ..treename.. "_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -3, y = 1, z = -3},
|
||||
{x = 3, y = 6, z = 3},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
local moretrees_leaves_inventory_image = nil
|
||||
|
||||
if moretrees.plantlike_leaves then
|
||||
@ -444,25 +415,31 @@ for i in ipairs(moretrees.treelist) do
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("moretrees:"..treename.."_sapling_ongen", {
|
||||
description = S("@1 (fast growth)", moretrees.treedesc[treename].sapling),
|
||||
drawtype = "plantlike",
|
||||
tiles = {saptex},
|
||||
inventory_image = saptex,
|
||||
paramtype = "light",
|
||||
paramtype2 = "waving",
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
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,sapling=1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
drop = "moretrees:"..treename.."_sapling",
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- the default game provides jungle tree and pine saplings.
|
||||
if treename~="jungletree" and treename ~= "pine" then
|
||||
local regular_groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1}
|
||||
if minetest.settings:get_bool("creative_mode", false) then
|
||||
regular_groups["not_in_creative_inventory"]=1
|
||||
end
|
||||
|
||||
minetest.register_node("moretrees:"..treename.."_sapling", {
|
||||
description = moretrees.treedesc[treename].sapling,
|
||||
drawtype = "plantlike",
|
||||
tiles = {split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex},
|
||||
inventory_image = split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,
|
||||
paramtype = "light",
|
||||
paramtype2 = "waving",
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
||||
},
|
||||
groups = regular_groups,
|
||||
sounds = default.node_sound_defaults(),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"moretrees:" ..treename.. "_sapling_ongen",
|
||||
"moretrees:" ..treename.. "_sapling",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -3, y = 1, z = -3},
|
||||
@ -472,6 +449,75 @@ for i in ipairs(moretrees.treelist) do
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(300)
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if moretrees.can_grow(pos, treename) then
|
||||
--moretrees["grow_" .. treename](pos)
|
||||
minetest.set_node(pos, {name="air"})
|
||||
if type(moretrees["spawn_" .. treename .. "_object"])=="string" then
|
||||
local split = moretrees["spawn_" .. treename .. "_object"]:split(".")
|
||||
moretrees[split[2]](pos)
|
||||
else
|
||||
minetest.spawn_tree(pos, moretrees["spawn_" .. treename .. "_object"])
|
||||
end
|
||||
else
|
||||
minetest.get_node_timer(pos):start(300)
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local ongen_groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1,sapling=1,not_in_creative_inventory=1}
|
||||
if minetest.settings:get_bool("creative_mode", false) then
|
||||
ongen_groups["not_in_creative_inventory"]=nil
|
||||
end
|
||||
minetest.register_node("moretrees:"..treename.."_sapling_ongen", {
|
||||
description = S("@1 (fast growth)", moretrees.treedesc[treename].sapling),
|
||||
drawtype = "plantlike",
|
||||
tiles = {split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,},
|
||||
inventory_image = split_tn[2] and split_tn[2]=="small" and "moretrees_" .. treename .. "_sapling.png" or saptex,
|
||||
paramtype = "light",
|
||||
paramtype2 = "waving",
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
||||
},
|
||||
groups = ongen_groups,
|
||||
sounds = default.node_sound_defaults(),
|
||||
drop = "moretrees:"..treename.."_sapling",
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||
"moretrees:" ..treename.. "_sapling_ongen",
|
||||
-- minp, maxp to be checked, relative to sapling pos
|
||||
-- minp_relative.y = 1 because sapling pos has been checked
|
||||
{x = -3, y = 1, z = -3},
|
||||
{x = 3, y = 6, z = 3},
|
||||
-- maximum interval of interior volume check
|
||||
4)
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if moretrees.can_grow(pos, treename) then
|
||||
--moretrees["grow_" .. treename](pos)
|
||||
minetest.set_node(pos, {name="air"})
|
||||
if type(moretrees["spawn_" .. treename .. "_object"])=="string" then
|
||||
local split = moretrees["spawn_" .. treename .. "_object"]:split(".")
|
||||
moretrees[split[2]](pos)
|
||||
else
|
||||
minetest.spawn_tree(pos, moretrees["spawn_" .. treename .. "_object"])
|
||||
end
|
||||
else
|
||||
minetest.get_node_timer(pos):start(300)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local fruitname = nil
|
||||
@ -494,6 +540,11 @@ for i in ipairs(moretrees.treelist) do
|
||||
},
|
||||
groups = {fleshy=3,dig_immediate=3,flammable=2, attached_node=1, leafdecay = 1, leafdecay_drop = 1},
|
||||
sounds = default.node_sound_defaults(),
|
||||
after_place_node = function(pos, placer)
|
||||
if placer:is_player() then
|
||||
minetest.set_node(pos, {name = "moretrees:"..fruit, param2 = 1})
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
@ -526,33 +577,7 @@ for i in ipairs(moretrees.treelist) do
|
||||
end
|
||||
end
|
||||
|
||||
-- Add small poplar saplings
|
||||
|
||||
local poplar_sapling = minetest.registered_nodes["moretrees:poplar_sapling"]
|
||||
local poplar_sapling_ongen = minetest.registered_nodes["moretrees:poplar_sapling_ongen"]
|
||||
local poplar_small_sapling = {}
|
||||
local poplar_small_sapling_ongen = {}
|
||||
for k,v in pairs(poplar_sapling) do
|
||||
poplar_small_sapling[k] = v
|
||||
end
|
||||
for k,v in pairs(poplar_sapling_ongen) do
|
||||
poplar_small_sapling_ongen[k] = v
|
||||
end
|
||||
poplar_small_sapling.tiles = {"moretrees_poplar_small_sapling.png"}
|
||||
poplar_small_sapling.inventory_image = "moretrees_poplar_small_sapling.png"
|
||||
poplar_small_sapling.is_ground_content = true
|
||||
poplar_small_sapling_ongen.tiles_ongen = {"moretrees_poplar_small_sapling.png"}
|
||||
poplar_small_sapling_ongen.inventory_image_ongen = "moretrees_poplar_small_sapling.png"
|
||||
poplar_small_sapling_ongen.drop = "moretrees:poplar_small_sapling"
|
||||
poplar_small_sapling_ongen.is_ground_content = true
|
||||
|
||||
minetest.register_node("moretrees:poplar_small_sapling", poplar_small_sapling)
|
||||
minetest.register_node("moretrees:poplar_small_sapling_ongen", poplar_small_sapling_ongen)
|
||||
if moretrees.spawn_saplings then
|
||||
table.insert(moretrees.avoidnodes, "moretrees:poplar_sapling")
|
||||
table.insert(moretrees.avoidnodes, "moretrees:poplar_small_sapling_ongen")
|
||||
end
|
||||
|
||||
-- poplar saplings leaves
|
||||
local poplar_leaves_drop = minetest.registered_nodes["moretrees:poplar_leaves"].drop
|
||||
minetest.override_item("moretrees:poplar_leaves", {
|
||||
drop = {
|
||||
|
Reference in New Issue
Block a user