Leaves now require matching trunk, not any trunk
parent
eb1b4d9ed3
commit
e58142c6b5
|
@ -5,8 +5,6 @@ Note: If no group rating is specified, use 1.
|
|||
|
||||
Node identities:
|
||||
* `tree`: Tree Trunk
|
||||
* `tree=1`: Prevents leaf decay
|
||||
* `tree=2`: Does not prevent leaf decay
|
||||
* `sapling`: Sapling
|
||||
* `leaves`: Leaves
|
||||
* `bark`: Bark
|
||||
|
@ -91,7 +89,8 @@ Action groups:
|
|||
* `food=2`: Food (eating)
|
||||
* `food=3`: Food (drinking)
|
||||
* `eatable=X`: Item can be eaten or consumed (restoring X food points)
|
||||
* `leafdecay`: Leaves that decay when not near a `group:tree` node
|
||||
* `leafdecay=X`: Leaves that decay when not near a node specified in `_hades_trees_trunk` field (X=distance from node)
|
||||
* `leafdecay_any`: In combination with `leafdecay`, will expect a `group:tree` node instead to prevent decay
|
||||
* `leafdecay_drop`: Node will drop itself when leaf-decaying
|
||||
* `wet` Considered wet for farming purposes
|
||||
* `fruit_regrow=3`: Regrowing fruit
|
||||
|
|
|
@ -35,6 +35,7 @@ function hades_refruit.add_hades_refruit(id, def)
|
|||
end,
|
||||
node_dig_prediction = bud_itemstring,
|
||||
_hades_magic_next = bud_itemstring,
|
||||
_hades_trees_trunk = def.trunk,
|
||||
})
|
||||
|
||||
minetest.register_node(bud_itemstring, {
|
||||
|
@ -56,6 +57,7 @@ function hades_refruit.add_hades_refruit(id, def)
|
|||
drop = def.bud_drop or {},
|
||||
sounds = hades_sounds.node_sound_leaves_defaults(),
|
||||
_hades_magic_next = flower_itemstring,
|
||||
_hades_trees_trunk = def.trunk,
|
||||
})
|
||||
minetest.register_node(flower_itemstring, {
|
||||
description = def.flower_description,
|
||||
|
@ -76,6 +78,7 @@ function hades_refruit.add_hades_refruit(id, def)
|
|||
drop = def.flower_drop or {},
|
||||
sounds = hades_sounds.node_sound_leaves_defaults(),
|
||||
_hades_magic_next = def.fruit_itemstring,
|
||||
_hades_trees_trunk = def.trunk,
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
|
@ -119,7 +122,7 @@ local stick_drop = function(rarity)
|
|||
}
|
||||
end
|
||||
|
||||
local surv = S("Needs a tree trunk to survive")
|
||||
local surv = S("Needs a matching tree trunk to survive")
|
||||
|
||||
hades_refruit.add_hades_refruit("apple", {
|
||||
fruit_itemstring = "hades_trees:apple",
|
||||
|
@ -134,6 +137,7 @@ hades_refruit.add_hades_refruit("apple", {
|
|||
flower_interval = 33,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:leaves"},
|
||||
trunk = "hades_trees:tree",
|
||||
bud_selbox = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
|
||||
flower_selbox = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
|
||||
})
|
||||
|
@ -151,6 +155,7 @@ hades_refruit.add_hades_refruit("olive", {
|
|||
flower_interval = 34,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:olive_leaves"},
|
||||
trunk = "hades_trees:tree",
|
||||
bud_selbox = {-2/16, 1/16, -2/16, 2/16, 0.5, 2/16},
|
||||
flower_selbox = {-4/16, -1/16, -4/16, 4/16, 0.5, 4/16},
|
||||
})
|
||||
|
@ -166,6 +171,7 @@ hades_refruit.add_hades_refruit("orange", {
|
|||
flower_interval = 33,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:orange_leaves"},
|
||||
trunk = "hades_trees:orange_tree",
|
||||
bud_selbox = {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
|
||||
flower_selbox = {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
|
||||
})
|
||||
|
@ -181,6 +187,7 @@ hades_refruit.add_hades_refruit("banana", {
|
|||
flower_interval = 34,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:banana_leaves"},
|
||||
trunk = "hades_trees:tree",
|
||||
bud_selbox = {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
|
||||
flower_selbox = {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
|
||||
})
|
||||
|
@ -196,6 +203,7 @@ hades_refruit.add_hades_refruit("cocoa", {
|
|||
flower_interval = 34,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:jungle_leaves"},
|
||||
trunk = "hades_trees:jungle_tree",
|
||||
bud_selbox = {-0.1875, -0.25, -0.1875, 0.1875, 0.375, 0.1875},
|
||||
flower_selbox = {-0.1875, -0.1875, -0.1875, 0.1875, 0.5, 0.1875},
|
||||
})
|
||||
|
@ -211,6 +219,7 @@ hades_refruit.add_hades_refruit("coconut", {
|
|||
flower_interval = 34,
|
||||
flower_chance = 60,
|
||||
neighbors = {"hades_trees:jungle_leaves"},
|
||||
trunk = "hades_trees:jungle_tree",
|
||||
bud_selbox = {-2/16, -6/16, -2/16, 2/16, 3/16, 2/16},
|
||||
flower_selbox = {-5/16, -7/16, -5/16, 5/16, 7/16, 5/16},
|
||||
})
|
||||
|
|
|
@ -21,7 +21,7 @@ hades_trees.register_trunk = function(id, def)
|
|||
fixed = {{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }},
|
||||
},
|
||||
is_ground_content = false,
|
||||
groups = {tree=(def.tree_group or 1),choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
sounds = def.sounds or hades_sounds.node_sound_wood_defaults(),
|
||||
})
|
||||
end
|
||||
|
@ -91,9 +91,11 @@ hades_trees.register_leaves = function(id, def)
|
|||
waving = 1,
|
||||
is_ground_content = false,
|
||||
place_param2 = 1,
|
||||
groups = {snappy=3, leafdecay=def.leafdecay or 3, flammable=2, leaves=1, ash_fertilizer=def.ash_fertilizer, porous=1},
|
||||
groups = {snappy=3, leafdecay=def.leafdecay or 3, leafdecay_any=def.leafdecay_any, flammable=2, leaves=1, ash_fertilizer=def.ash_fertilizer, porous=1},
|
||||
drop = drop,
|
||||
sounds = def.sounds or hades_sounds.node_sound_leaves_defaults(),
|
||||
-- Store node name of corresponding trunk node
|
||||
_hades_trees_trunk = def.trunk,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -104,7 +106,7 @@ hades_trees.register_fruit = function(id, def)
|
|||
food = 2
|
||||
on_use = minetest.item_eat(sat)
|
||||
end
|
||||
local groups = {dig_immediate=3,flammable=2,leafdecay=3,leafdecay_drop=1,food=food,eatable=sat}
|
||||
local groups = {dig_immediate=3,flammable=2,leafdecay=def.leafdecay or 3,leafdecay_drop=1,food=food,eatable=sat}
|
||||
if def.groups then
|
||||
for k,v in pairs(def.groups) do
|
||||
if v == 0 then
|
||||
|
|
|
@ -11,6 +11,7 @@ hades_trees.register_leaves("leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:sapling",
|
||||
drop_rarity = 20,
|
||||
trunk = "hades_trees:tree",
|
||||
})
|
||||
hades_trees.register_fruit("apple", {
|
||||
description = S("Apple"),
|
||||
|
|
|
@ -6,6 +6,7 @@ hades_trees.register_leaves("banana_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:banana_sapling",
|
||||
drop_rarity = 10,
|
||||
trunk = "hades_trees:tree",
|
||||
})
|
||||
hades_trees.register_sapling("banana_sapling", {
|
||||
description = S("Banana Sapling"),
|
||||
|
|
|
@ -14,6 +14,7 @@ hades_trees.register_leaves("birch_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:birch_sapling",
|
||||
drop_rarity = 30,
|
||||
trunk = "hades_trees:birch_tree",
|
||||
})
|
||||
hades_trees.register_sapling("birch_sapling", {
|
||||
description = S("Birch Sapling"),
|
||||
|
|
|
@ -10,6 +10,7 @@ hades_trees.register_leaves("canvas_leaves", {
|
|||
ash_fertilizer = 0,
|
||||
drop_item = "hades_trees:canvas_sapling",
|
||||
drop_rarity = 20,
|
||||
trunk = "hades_trees:canvas_tree",
|
||||
})
|
||||
|
||||
hades_trees.register_bark("canvas_bark", {
|
||||
|
|
|
@ -8,8 +8,6 @@ hades_trees.register_trunk("charred_tree", {
|
|||
"hades_trees_charred_tree.png",
|
||||
},
|
||||
sounds = hades_sounds.node_sound_wood_defaults({pitch=0.8}),
|
||||
-- set tree group to 2 to force leafdecay
|
||||
tree_group = 2,
|
||||
})
|
||||
hades_trees.register_bark("charred_bark", {
|
||||
description = S("Charred Bark"),
|
||||
|
@ -21,7 +19,9 @@ hades_trees.register_leaves("burned_branches", {
|
|||
description = S("Burned Branches"),
|
||||
image = "hades_trees_burned_branches.png",
|
||||
sounds = hades_sounds.node_sound_straw_defaults(),
|
||||
leafdecay = 0,
|
||||
-- Can survive near any trunk
|
||||
leafdecay_any = 1,
|
||||
trunk = "hades_trees:charred_tree",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
|
|
@ -6,6 +6,7 @@ hades_trees.register_leaves("cultivated_jungle_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:cultivated_jungle_sapling",
|
||||
drop_rarity = 25,
|
||||
trunk = "hades_trees:jungle_tree",
|
||||
})
|
||||
hades_trees.register_sapling("cultivated_jungle_sapling", {
|
||||
description = S("Cultivated Tropical Tree Sapling"),
|
||||
|
|
|
@ -15,6 +15,7 @@ hades_trees.register_leaves("jungle_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:jungle_sapling",
|
||||
drop_rarity = 25,
|
||||
trunk = "hades_trees:jungle_tree",
|
||||
})
|
||||
hades_trees.register_sapling("jungle_sapling", {
|
||||
description = S("Common Tropical Tree Sapling"),
|
||||
|
|
|
@ -56,7 +56,8 @@ minetest.register_abm({
|
|||
action = function(p0, node, _, _)
|
||||
minetest.log("verbose", "[hades_trees] leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
|
||||
local do_preserve = false
|
||||
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local d = def.groups.leafdecay
|
||||
if not d or d == 0 then
|
||||
minetest.log("verbose", "[hades_trees] not groups.leafdecay")
|
||||
return
|
||||
|
@ -66,6 +67,8 @@ minetest.register_abm({
|
|||
-- Prevent decay
|
||||
return
|
||||
end
|
||||
local trunk_to_check = def._hades_trees_trunk
|
||||
local any = def.groups.leafdecay_any == 1
|
||||
local p0_hash = nil
|
||||
if hades_trees.leafdecay_enable_cache then
|
||||
p0_hash = minetest.hash_node_position(p0)
|
||||
|
@ -74,7 +77,7 @@ minetest.register_abm({
|
|||
local n = minetest.get_node(trunkp)
|
||||
local reg = minetest.registered_nodes[n.name]
|
||||
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
||||
if n.name == "ignore" or (reg and reg.groups.tree == 1) then
|
||||
if (n.name == "ignore") or (any and reg and reg.groups.tree ~= 0) or (n.name == trunk_to_check) then
|
||||
minetest.log("verbose", "[hades_trees] leafdecay: cached trunk still exists")
|
||||
return
|
||||
end
|
||||
|
@ -92,7 +95,7 @@ minetest.register_abm({
|
|||
local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"})
|
||||
if p1 then
|
||||
local n1 = minetest.get_node(p1)
|
||||
if n1.name == "ignore" or minetest.get_item_group(n1.name, "tree") == 1 then
|
||||
if (n1.name == "ignore") or (any and minetest.get_item_group(n1.name, "tree") ~= 0) or (n1.name == trunk_to_check) then
|
||||
do_preserve = true
|
||||
if hades_trees.leafdecay_enable_cache then
|
||||
minetest.log("verbose", "[hades_trees] leafdecay: caching trunk")
|
||||
|
|
|
@ -6,6 +6,7 @@ hades_trees.register_leaves("olive_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:olive_sapling",
|
||||
drop_rarity = 25,
|
||||
trunk = "hades_trees:tree",
|
||||
})
|
||||
hades_trees.register_sapling("olive_sapling", {
|
||||
description = S("Olive Tree Sapling"),
|
||||
|
|
|
@ -15,6 +15,7 @@ hades_trees.register_leaves("orange_leaves", {
|
|||
ash_fertilizer = 3,
|
||||
drop_item = "hades_trees:orange_sapling",
|
||||
drop_rarity = 20,
|
||||
trunk = "hades_trees:orange_tree",
|
||||
})
|
||||
hades_trees.register_sapling("orange_sapling", {
|
||||
description = S("Orange Tree Sapling"),
|
||||
|
|
|
@ -13,6 +13,7 @@ hades_trees.register_leaves("pale_leaves", {
|
|||
image = "hades_trees_pale_leaves.png",
|
||||
drop_item = "hades_trees:pale_sapling",
|
||||
drop_rarity = 10,
|
||||
trunk = "hades_trees:pale_tree",
|
||||
})
|
||||
hades_trees.register_sapling("pale_sapling", {
|
||||
description = S("Pale Tree Sapling"),
|
||||
|
|
Loading…
Reference in New Issue