1 local S
= minetest
.get_translator("hades_refruit")
3 -- hades_refruit for Minetest.
4 -- Makes fruit regrow on the trees.
7 function hades_refruit
.add_hades_refruit(id
, def
)
8 local ndef
= minetest
.registered_nodes
[def
.fruit_itemstring
]
9 local groups
= ndef
.groups
13 groups
= table.copy(ndef
.groups
)
16 groups_fruit
= table.copy(groups
)
17 groups_fruit
.fruit_regrow
= 3
20 local bud_itemstring
= "hades_refruit:bud_"..id
21 local flower_itemstring
= "hades_refruit:flower_"..id
23 minetest
.override_item(def
.fruit_itemstring
, {
24 groups
= groups_fruit
,
26 after_dig_node
= function(pos
, oldnode
, oldmetadta
, digger
)
27 if oldnode
.name
== def
.fruit_itemstring
then
28 if oldnode
.param2
~= 0 then
31 minetest
.set_node(pos
, {name
= "hades_refruit:bud_"..id
})
36 node_dig_prediction
= bud_itemstring
,
37 _hades_magic_next
= bud_itemstring
,
38 _hades_trees_trunk
= def
.trunk
,
41 minetest
.register_node(bud_itemstring
, {
42 description
= def
.bud_description
,
43 _tt_help
= def
.bud_tt
,
44 drawtype
= ndef
.drawtype
,
45 tiles
= {"hades_refruit_bud_"..id
..".png"},
46 inventory_image
= "hades_refruit_bud_"..id
..".png",
47 wield_image
= "hades_refruit_bud_"..id
..".png",
49 sunlight_propagates
= true,
54 fixed
= def
.bud_selbox
,
56 groups
= {fruit_regrow
=1, snappy
=2,oddly_breakable_by_hand
=3,flammable
=2,leafdecay
=3,leafdecay_drop
=1},
57 drop
= def
.bud_drop
or {},
58 sounds
= hades_sounds
.node_sound_leaves_defaults(),
59 _hades_magic_next
= flower_itemstring
,
60 _hades_trees_trunk
= def
.trunk
,
62 minetest
.register_node(flower_itemstring
, {
63 description
= def
.flower_description
,
64 _tt_help
= def
.flower_tt
,
65 drawtype
= ndef
.drawtype
,
66 tiles
= {"hades_refruit_flower_"..id
..".png"},
67 inventory_image
= "hades_refruit_flower_"..id
..".png",
68 wield_image
= "hades_refruit_flower_"..id
..".png",
70 sunlight_propagates
= true,
75 fixed
= def
.flower_selbox
,
77 groups
= {fruit_regrow
=2, snappy
=2,oddly_breakable_by_hand
=3,flammable
=2,leafdecay
=3,leafdecay_drop
=1},
78 drop
= def
.flower_drop
or {},
79 sounds
= hades_sounds
.node_sound_leaves_defaults(),
80 _hades_magic_next
= def
.fruit_itemstring
,
81 _hades_trees_trunk
= def
.trunk
,
84 minetest
.register_abm({
85 label
= "Grow "..bud_itemstring
.." to "..flower_itemstring
,
86 nodenames
= {"hades_refruit:bud_"..id
},
87 neighbors
= def
.neighbors
,
88 interval
= def
.bud_interval
,
89 chance
= def
.bud_chance
,
90 action
= function(pos
, node
)
91 minetest
.set_node(pos
, {name
="hades_refruit:flower_"..id
})
95 minetest
.register_abm({
96 label
= "Grow "..flower_itemstring
.." to "..def
.fruit_itemstring
,
97 nodenames
= {"hades_refruit:flower_"..id
},
98 neighbors
= def
.neighbors
,
99 interval
= def
.flower_interval
,
100 chance
= def
.flower_chance
,
101 action
= function(pos
, node
)
102 minetest
.set_node(pos
, {name
=def
.fruit_itemstring
})
109 local stick_drop
= function(rarity
)
114 items
= {'hades_core:stick'},
118 items
= {'hades_core:stick'},
125 local surv
= S("Needs a matching tree trunk to survive")
127 hades_refruit
.add_hades_refruit("apple", {
128 fruit_itemstring
= "hades_trees:apple",
129 bud_description
= S("Apple Bud"),
130 bud_tt
= S("Grows to an Apple Flower").."\n"..surv
.."\n"..S("Needs Common Leaves to grow"),
131 flower_description
= S("Apple Flower"),
132 flower_tt
= S("Grows to an Apple").."\n"..surv
.."\n"..S("Needs Common Leaves to grow"),
133 bud_drop
= stick_drop(99),
134 flower_drop
= stick_drop(99),
137 flower_interval
= 33,
139 neighbors
= {"hades_trees:leaves"},
140 trunk
= "hades_trees:tree",
141 bud_selbox
= {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
142 flower_selbox
= {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
145 hades_refruit
.add_hades_refruit("olive", {
146 fruit_itemstring
= "hades_trees:olive",
147 bud_description
= S("Olive Bud"),
148 bud_tt
= S("Grows to an Olive Flower").."\n"..surv
.."\n"..S("Needs Olive Leaves to grow"),
149 flower_description
= S("Olive Flower"),
150 flower_tt
= S("Grows to an Olive").."\n"..surv
.."\n"..S("Needs Olive Leaves to grow"),
151 bud_drop
= stick_drop(99),
152 flower_drop
= stick_drop(76),
155 flower_interval
= 34,
157 neighbors
= {"hades_trees:olive_leaves"},
158 trunk
= "hades_trees:tree",
159 bud_selbox
= {-2/16, 1/16, -2/16, 2/16, 0.5, 2/16},
160 flower_selbox
= {-4/16, -1/16, -4/16, 4/16, 0.5, 4/16},
163 hades_refruit
.add_hades_refruit("orange", {
164 fruit_itemstring
= "hades_trees:orange",
165 bud_description
= S("Orange Bud"),
166 bud_tt
= S("Grows to an Orange Flower").."\n"..surv
.."\n"..S("Needs Orange Leaves to grow"),
167 flower_description
= S("Orange Flower"),
168 flower_tt
= S("Grows to an Orange").."\n"..surv
.."\n"..S("Needs Orange Leaves to grow"),
171 flower_interval
= 33,
173 neighbors
= {"hades_trees:orange_leaves"},
174 trunk
= "hades_trees:orange_tree",
175 bud_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
176 flower_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
179 hades_refruit
.add_hades_refruit("banana", {
180 fruit_itemstring
= "hades_trees:banana",
181 bud_description
= S("Banana Bud"),
182 bud_tt
= S("Grows to a Banana Flower").."\n"..surv
.."\n"..S("Needs Banana Leaves to grow"),
183 flower_description
= S("Banana Flower"),
184 flower_tt
= S("Grows to an Banana").."\n"..surv
.."\n"..S("Needs Banana Leaves to grow"),
187 flower_interval
= 34,
189 neighbors
= {"hades_trees:banana_leaves"},
190 trunk
= "hades_trees:tree",
191 bud_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
192 flower_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
195 hades_refruit
.add_hades_refruit("cocoa", {
196 fruit_itemstring
= "hades_trees:cocoa_pod",
197 bud_description
= S("Cocoa Bud"),
198 bud_tt
= S("Grows to a Cocoa Flower").."\n"..surv
.."\n"..S("Needs Common Tropical Leaves to grow"),
199 flower_description
= S("Cocoa Flower"),
200 flower_tt
= S("Grows to Cocoa").."\n"..surv
.."\n"..S("Needs Common Tropical Leaves to grow"),
203 flower_interval
= 34,
205 neighbors
= {"hades_trees:jungle_leaves"},
206 trunk
= "hades_trees:jungle_tree",
207 bud_selbox
= {-0.1875, -0.25, -0.1875, 0.1875, 0.375, 0.1875},
208 flower_selbox
= {-0.1875, -0.1875, -0.1875, 0.1875, 0.5, 0.1875},
211 hades_refruit
.add_hades_refruit("coconut", {
212 fruit_itemstring
= "hades_trees:coconut",
213 bud_description
= S("Coconut Bud"),
214 bud_tt
= S("Grows to a Coconut Flower").."\n"..surv
.."\n"..S("Needs Common Tropical Leaves to grow"),
215 flower_description
= S("Coconut Flower"),
216 flower_tt
= S("Grows to a Coconut").."\n"..surv
.."\n"..S("Needs Common Tropical Leaves to grow"),
219 flower_interval
= 34,
221 neighbors
= {"hades_trees:jungle_leaves"},
222 trunk
= "hades_trees:jungle_tree",
223 bud_selbox
= {-2/16, -6/16, -2/16, 2/16, 3/16, 2/16},
224 flower_selbox
= {-5/16, -7/16, -5/16, 5/16, 7/16, 5/16},