Rename mod: walls → hades_walls
[minetest_hades/hades_revisited.git] / mods / hades_refruit / init.lua
blob1e2c12dfb10ec6f098ce1d2a360b80fa4e004312
1 local S = minetest.get_translator("hades_refruit")
3 -- hades_refruit for Minetest.
4 -- Makes fruit regrow on the trees.
5 hades_refruit = {}
7 function hades_refruit.add_hades_refruit(id, def)
8 local ndef = minetest.registered_nodes[def.fruit_itemstring]
9 local groups = ndef.groups
10 if not groups then
11 groups = {}
12 else
13 groups = table.copy(ndef.groups)
14 end
15 local groups_fruit
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,
25 place_param2 = 1,
26 after_dig_node = function(pos, oldnode, oldmetadta, digger)
27 if oldnode.name == def.fruit_itemstring then
28 if oldnode.param2 ~= 0 then
29 return
30 end
31 minetest.set_node(pos, {name = "hades_refruit:bud_"..id})
32 else
33 return
34 end
35 end,
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",
48 paramtype = "light",
49 sunlight_propagates = true,
50 walkable = false,
51 floodable = true,
52 selection_box = {
53 type = "fixed",
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",
69 paramtype = "light",
70 sunlight_propagates = true,
71 walkable = false,
72 floodable = true,
73 selection_box = {
74 type = "fixed",
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})
92 end,
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})
103 end,
109 local stick_drop = function(rarity)
110 return {
111 max_items = 1,
112 items = {
114 items = {'hades_core:stick'},
115 rarity = rarity,
118 items = {'hades_core:stick'},
119 rarity = rarity
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),
135 bud_interval = 34,
136 bud_chance = 10,
137 flower_interval = 33,
138 flower_chance = 60,
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),
153 bud_interval = 35,
154 bud_chance = 10,
155 flower_interval = 34,
156 flower_chance = 60,
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"),
169 bud_interval = 34,
170 bud_chance = 10,
171 flower_interval = 33,
172 flower_chance = 60,
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"),
185 bud_interval = 35,
186 bud_chance = 10,
187 flower_interval = 34,
188 flower_chance = 60,
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"),
201 bud_interval = 35,
202 bud_chance = 10,
203 flower_interval = 34,
204 flower_chance = 60,
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"),
217 bud_interval = 35,
218 bud_chance = 10,
219 flower_interval = 34,
220 flower_chance = 60,
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},