1 local S
= minetest
.get_translator("refruit")
3 -- refruit for minetest
4 -- makes fruits regrowing on the trees.
5 -- images and code are WTFPL license (2015 by Glünggi)
8 function refruit
.add_refruit(id
, def
)
9 local ndef
= minetest
.registered_nodes
[def
.fruit_itemstring
]
10 local groups
= ndef
.groups
14 groups
= table.copy(ndef
.groups
)
17 groups_fruit
= table.copy(groups
)
18 groups_fruit
.fruit_regrow
= 3
20 minetest
.override_item(def
.fruit_itemstring
, {
21 groups
= groups_fruit
,
23 after_dig_node
= function(pos
, oldnode
, oldmetadta
, digger
)
24 if oldnode
.name
== def
.fruit_itemstring
then
25 if oldnode
.param2
~= 0 then
28 minetest
.set_node(pos
, {name
= "refruit:bud_"..id
})
35 local bud_itemstring
= "refruit:bud_"..id
36 local flower_itemstring
= "refruit:flower_"..id
38 minetest
.register_node(bud_itemstring
, {
39 description
= def
.bud_description
,
40 _tt_help
= def
.bud_tt
,
41 drawtype
= ndef
.drawtype
,
42 tiles
= {"refruit_bud_"..id
..".png"},
43 inventory_image
= "refruit_bud_"..id
..".png",
44 wield_image
= "refruit_bud_"..id
..".png",
46 sunlight_propagates
= true,
51 fixed
= def
.bud_selbox
,
53 groups
= {fruit_regrow
=1, snappy
=2,oddly_breakable_by_hand
=3,flammable
=2,leafdecay
=3,leafdecay_drop
=1},
54 drop
= def
.bud_drop
or {},
55 sounds
= hades_sounds
.node_sound_leaves_defaults(),
57 minetest
.register_node(flower_itemstring
, {
58 description
= def
.flower_description
,
59 _tt_help
= def
.flower_tt
,
60 drawtype
= ndef
.drawtype
,
61 tiles
= {"refruit_flower_"..id
..".png"},
62 inventory_image
= "refruit_flower_"..id
..".png",
63 wield_image
= "refruit_flower_"..id
..".png",
65 sunlight_propagates
= true,
70 fixed
= def
.flower_selbox
,
72 groups
= {fruit_regrow
=2, snappy
=2,oddly_breakable_by_hand
=3,flammable
=2,leafdecay
=3,leafdecay_drop
=1},
73 drop
= def
.flower_drop
or {},
74 sounds
= hades_sounds
.node_sound_leaves_defaults(),
77 minetest
.register_abm({
78 label
= "Grow "..bud_itemstring
.." to "..flower_itemstring
,
79 nodenames
= {"refruit:bud_"..id
},
80 neighbors
= def
.neighbors
,
81 interval
= def
.bud_interval
,
82 chance
= def
.bud_chance
,
83 action
= function(pos
, node
)
84 minetest
.set_node(pos
, {name
="refruit:flower_"..id
})
88 minetest
.register_abm({
89 label
= "Grow "..flower_itemstring
.." to "..def
.fruit_itemstring
,
90 nodenames
= {"refruit:flower_"..id
},
91 neighbors
= def
.neighbors
,
92 interval
= def
.flower_interval
,
93 chance
= def
.flower_chance
,
94 action
= function(pos
, node
)
95 minetest
.set_node(pos
, {name
=def
.fruit_itemstring
})
102 local stick_drop
= function(rarity
)
107 items
= {'hades_core:stick'},
111 items
= {'hades_core:stick'},
118 local surv
= S("Needs a tree trunk to survive")
120 refruit
.add_refruit("apple", {
121 fruit_itemstring
= "hades_trees:apple",
122 bud_description
= S("Apple Bud"),
123 bud_tt
= S("Grows to an Apple Flower").."\n"..surv
.."\n"..S("Needs Common Leaves to grow"),
124 flower_description
= S("Apple Flower"),
125 flower_tt
= S("Grows to an Apple").."\n"..surv
.."\n"..S("Needs Common Leaves to grow"),
126 bud_drop
= stick_drop(99),
127 flower_drop
= stick_drop(99),
130 flower_interval
= 33,
132 neighbors
= {"hades_trees:leaves"},
133 bud_selbox
= {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
134 flower_selbox
= {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875},
137 refruit
.add_refruit("olive", {
138 fruit_itemstring
= "hades_trees:olive",
139 bud_description
= S("Olive Bud"),
140 bud_tt
= S("Grows to an Olive Flower").."\n"..surv
.."\n"..S("Needs Olive Leaves to grow"),
141 flower_description
= S("Olive Flower"),
142 flower_tt
= S("Grows to an Olive").."\n"..surv
.."\n"..S("Needs Olive Leaves to grow"),
143 bud_drop
= stick_drop(99),
144 flower_drop
= stick_drop(76),
147 flower_interval
= 34,
149 neighbors
= {"hades_trees:olive_leaves"},
150 bud_selbox
= {-2/16, 1/16, -2/16, 2/16, 0.5, 2/16},
151 flower_selbox
= {-4/16, -1/16, -4/16, 4/16, 0.5, 4/16},
154 refruit
.add_refruit("orange", {
155 fruit_itemstring
= "hades_trees:orange",
156 bud_description
= S("Orange Bud"),
157 bud_tt
= S("Grows to an Orange Flower").."\n"..surv
.."\n"..S("Needs Orange Leaves to grow"),
158 flower_description
= S("Orange Flower"),
159 flower_tt
= S("Grows to an Orange").."\n"..surv
.."\n"..S("Needs Orange Leaves to grow"),
162 flower_interval
= 33,
164 neighbors
= {"hades_trees:orange_leaves"},
165 bud_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
166 flower_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
169 refruit
.add_refruit("banana", {
170 fruit_itemstring
= "hades_trees:banana",
171 bud_description
= S("Banana Bud"),
172 bud_tt
= S("Grows to a Banana Flower").."\n"..surv
.."\n"..S("Needs Banana Leaves to grow"),
173 flower_description
= S("Banana Flower"),
174 flower_tt
= S("Grows to an Banana").."\n"..surv
.."\n"..S("Needs Banana Leaves to grow"),
177 flower_interval
= 34,
179 neighbors
= {"hades_trees:banana_leaves"},
180 bud_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
181 flower_selbox
= {-0.1875, -0.4375, -0.1875, 0.1875, 0.25, 0.1875},
184 refruit
.add_refruit("cocoa", {
185 fruit_itemstring
= "hades_trees:cocoa_pod",
186 bud_description
= S("Cocoa Bud"),
187 bud_tt
= S("Grows to a Cocoa Flower").."\n"..surv
.."\n"..S("Needs Common Jungle Leaves to grow"),
188 flower_description
= S("Cocoa Flower"),
189 flower_tt
= S("Grows to Cocoa").."\n"..surv
.."\n"..S("Needs Common Jungle Leaves to grow"),
192 flower_interval
= 34,
194 neighbors
= {"hades_trees:jungle_leaves"},
195 bud_selbox
= {-0.1875, -0.25, -0.1875, 0.1875, 0.375, 0.1875},
196 flower_selbox
= {-0.1875, -0.1875, -0.1875, 0.1875, 0.5, 0.1875},
199 refruit
.add_refruit("coconut", {
200 fruit_itemstring
= "hades_trees:coconut",
201 bud_description
= S("Coconut Bud"),
202 bud_tt
= S("Grows to a Coconut Flower").."\n"..surv
.."\n"..S("Needs Common Jungle Leaves to grow"),
203 flower_description
= S("Coconut Flower"),
204 flower_tt
= S("Grows to a Coconut").."\n"..surv
.."\n"..S("Needs Common Jungle Leaves to grow"),
207 flower_interval
= 34,
209 neighbors
= {"hades_trees:jungle_leaves"},
210 bud_selbox
= {-2/16, -6/16, -2/16, 2/16, 3/16, 2/16},
211 flower_selbox
= {-5/16, -7/16, -5/16, 5/16, 7/16, 5/16},