Differences From
Artifact [faad05be60]:
- File
recipes.lua
— part of check-in
[96c5289a2a]
at
2020-10-21 03:35:35
on branch trunk
— add rune forges, runes, amulet frames, write sacrifice spell, touch up amulet graphics, enable enchantment of amulets (though spells cannot yet be cast), defuckulate syncresis core icon, unfuckitize sneaky leycalc bug that's probably been the cause of some long-standing wackiness, add item classes, add some more textures, disbungle various other asstastrophes, remove sneaky old debug code, improve library code, add utility for uploading merge requests
(user:
lexi,
size: 21569)
[annotate]
[blame]
[check-ins using]
1 +-- convenience defs
2 +local D = sorcery.data
3 +local function mtlp(n, p) return D.metals[n].parts[p] end
4 +local function ingot(metal) return mtlp(metal,'ingot') end
1 5 -- tweaks
2 6
3 7 minetest.register_craft {
4 8 type = "shapeless";
5 9 recipe = {
6 10 "group:water_bucket",
7 11 "vessels:glass_bottle",
................................................................................
51 55 replacements = {
52 56 {'group:scissors','group:scissors'};
53 57 };
54 58 }
55 59
56 60 minetest.register_craft {
57 61 recipe = {
58 - {"", "default:gold_ingot"},
59 - {"default:bronze_ingot",""}
62 + {"", ingot('gold')};
63 + {ingot('bronze'),""}
60 64 };
61 65 output = "sorcery:dagger";
62 66 }
63 67
64 68 ---- magitech
65 69
66 70 -- infuser
67 -minetest.register_craftitem('sorcery:infuser_tube', {
68 - inventory_image = 'sorcery_infuser_tube.png';
69 - description = 'Infusion Tube';
70 - groups = {
71 - sorcery_magitech = 1; metal = 1;
72 - sorcery_tech_component = 1;
73 - };
74 -})
75 -minetest.register_craft {
76 - recipe = {
77 - {"basic_materials:copper_strip",'sorcery:infuser_concentrator', "basic_materials:copper_strip"};
78 - {"", "basic_materials:copper_strip", "basic_materials:gold_wire"};
79 - {"", "basic_materials:copper_strip", ""};
80 - };
81 - replacements = {
82 - {"basic_materials:gold_wire", "basic_materials:empty_spool"}
83 - };
84 - output = "sorcery:infuser_tube";
85 -}
86 71
87 -minetest.register_craftitem('sorcery:infuser_chamber', {
88 - inventory_image = 'sorcery_infuser_chamber.png';
89 - description = 'Infusion Chamber';
90 - groups = {
91 - sorcery_magitech = 1;
92 - sorcery_tech_component = 1;
93 - };
94 -})
95 -minetest.register_craft {
96 - recipe = {
97 - {'default:clay_brick','sorcery:grease_sealant','default:clay_brick'};
98 - {'default:clay_brick','stairs:slab_steelblock','default:clay_brick'};
99 - };
100 - replacements = {
101 - {'sorcery:grease_sealant','xdecor:bowl'};
102 - };
103 - output = "sorcery:infuser_chamber";
104 -}
105 -
106 -minetest.register_craftitem('sorcery:infuser_concentrator', {
107 - inventory_image = 'sorcery_infuser_concentrator.png';
108 - description = 'Infusion Concentrator';
109 - groups = {
110 - sorcery_magitech = 1;
111 - sorcery_tech_component = 1;
112 - };
113 -})
114 -
115 -minetest.register_craft {
116 - recipe = {
117 - {'basic_materials:steel_wire'};
118 - {'default:obsidian_shard'};
119 - {'basic_materials:copper_wire'};
120 - };
121 - replacements = {
122 - {'basic_materials:steel_wire', 'basic_materials:empty_spool'};
123 - {'basic_materials:copper_wire', 'basic_materials:empty_spool'};
124 - };
125 - output = "sorcery:infuser_concentrator";
126 -}
127 72
128 73 minetest.register_craft {
129 74 type = 'shapeless';
130 75 recipe = {
131 76 'basic_materials:empty_spool';
132 77 'basic_materials:empty_spool';
133 78 'sorcery:infuser_concentrator';
................................................................................
147 92 'basic_materials:oil_extract';
148 93 };
149 94 output = "sorcery:grease_sealant";
150 95 }
151 96
152 97 minetest.register_craft {
153 98 recipe = {
154 - { 'default:tin_ingot', 'bucket:bucket_empty', 'default:tin_ingot'};
155 - { 'default:bronze_ingot', 'sorcery:infuser_chamber', 'default:copper_ingot'};
99 + { ingot('tin'), 'bucket:bucket_empty',ingot('tin')};
100 + { ingot('bronze'), 'sorcery:infuser_chamber',ingot('copper')};
156 101 { 'sorcery:infuser_tube', 'sorcery:infuser_tube', 'sorcery:infuser_tube' };
157 102 };
158 103 output = "sorcery:infuser";
159 104 }
160 105
161 106 minetest.register_craft {
162 107 output = "sorcery:displacer";
163 108 recipe = {
164 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
109 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
165 110 {'basic_materials:copper_wire','sorcery:core_syncretic','doors:trapdoor_steel'};
166 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
111 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
167 112 };
168 113 replacements = {
169 114 {'basic_materials:copper_wire','basic_materials:empty_spool'};
170 115 };
171 116 }
172 117
173 118 minetest.register_craft {
174 119 output = "sorcery:displacer_transmit_attune";
175 120 recipe = {
176 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
121 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
177 122 {'sorcery:leyline_stabilizer','sorcery:core_mandatic','sorcery:tuning_disc'};
178 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
123 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
179 124 };
180 125 }
181 126
182 127 minetest.register_craft {
183 128 output = "sorcery:displacer_transmit_gem";
184 129 recipe = {
185 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
130 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
186 131 {'sorcery:leyline_stabilizer','sorcery:core_mandatic','sorcery:gem_ruby'};
187 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
132 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
188 133 };
189 134 }
190 135
191 136 minetest.register_craft {
192 137 output = "sorcery:displacer_receive_attune";
193 138 recipe = {
194 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
139 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
195 140 {'sorcery:inverter_coil','sorcery:core_mandatic','sorcery:tuning_disc'};
196 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
141 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
197 142 };
198 143 }
199 144
200 145 minetest.register_craft {
201 146 output = "sorcery:displacer_receive_gem";
202 147 recipe = {
203 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
148 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
204 149 {'sorcery:inverter_coil','sorcery:core_mandatic','sorcery:gem_ruby'};
205 - {'sorcery:platinum_ingot','sorcery:screw_tungsten','sorcery:platinum_ingot'};
150 + {ingot('platinum'),'sorcery:screw_tungsten',ingot('platinum')};
206 151 };
207 152 }
208 153
209 154 minetest.register_craft {
210 155 output = 'sorcery:raycaster';
211 156 recipe = {
212 157 {'sorcery:gem_amethyst', 'sorcery:gem_amethyst', 'sorcery:gem_amethyst'};
213 - {'default:gold_ingot','sorcery:beam_generator','default:gold_ingot'};
158 + {ingot('gold'),'sorcery:beam_generator',ingot('gold')};
214 159 {'sorcery:gem_amethyst', 'sorcery:gem_amethyst', 'sorcery:gem_amethyst'};
215 160 };
216 161 }
217 162
218 163 minetest.register_craft {
219 164 output = 'sorcery:tuning_disc';
220 165 recipe = {
221 - {'sorcery:inverter_coil','sorcery:silver_ingot',''};
166 + {'sorcery:inverter_coil',ingot('silver'),''};
222 167 {'sorcery:leyline_stabilizer','sorcery:silver_ingot','sorcery:gem_emerald'};
223 - {'sorcery:inverter_coil','sorcery:silver_ingot',''};
168 + {'sorcery:inverter_coil',ingot('silver'),''};
224 169 };
225 170 }
226 171
227 172 minetest.register_craft {
228 173 output = 'sorcery:farcaster';
229 174 recipe = {
230 - {'default:gold_ingot','sorcery:iridium_ingot','default:gold_ingot'};
175 + {ingot('gold'),ingot('iridium'),ingot('gold')};
231 176 {'sorcery:core_mandatic','default:diamondblock','sorcery:tuning_disc'};
232 - {'default:gold_ingot','sorcery:iridium_ingot','default:gold_ingot'};
177 + {ingot('gold'),ingot('iridium'),ingot('gold')};
233 178 };
234 179 }
235 180
236 181 minetest.register_craft {
237 182 output = 'sorcery:portal_node';
238 183 recipe = {
239 - {'sorcery:tungsten_ingot','sorcery:core_mandatic','sorcery:tungsten_ingot'};
240 - {'sorcery:aluminum_ingot','sorcery:platinumblock','sorcery:aluminum_ingot'};
241 - {'sorcery:tungsten_ingot','sorcery:core_mandatic','sorcery:tungsten_ingot'};
184 + {ingot('tungsten'),'sorcery:core_mandatic',ingot('tungsten')};
185 + {ingot('aluminum'),mtlp('platinum','block'),ingot('aluminum')};
186 + {ingot('tungsten'),'sorcery:core_mandatic',ingot('tungsten')};
242 187 };
243 188 }
244 189
245 190 minetest.register_craft {
246 191 output = 'sorcery:portal_reflector';
247 192 recipe = {
248 - {'basic_materials:steel_bar','default:tin_ingot','basic_materials:steel_bar'};
193 + {'basic_materials:steel_bar',ingot('tin'),'basic_materials:steel_bar'};
249 194 {'sorcery:gem_amethyst','sorcery:inverter_coil','sorcery:gem_amethyst'};
250 195 {'basic_materials:steel_bar','xpanes:bar_flat','basic_materials:steel_bar'};
251 196 }
252 197 }
253 198
254 199 minetest.register_craft {
255 200 output = 'sorcery:portal_pad';
256 201 recipe = {
257 202 {'basic_materials:steel_bar','xpanes:bar_flat','basic_materials:steel_bar'};
258 203 {'sorcery:gem_amethyst','sorcery:beam_generator','sorcery:gem_amethyst'};
259 - {'basic_materials:steel_bar','default:tin_ingot','basic_materials:steel_bar'};
204 + {'basic_materials:steel_bar',ingot('tin'),'basic_materials:steel_bar'};
260 205 }
261 206 }
262 207
263 208 minetest.register_craft {
264 209 output = 'sorcery:gravity_manipulator';
265 210 recipe = {
266 - {'sorcery:cobalt_ingot','sorcery:screw_platinum','basic_materials:silver_wire'};
267 - {'sorcery:inverter_coil','sorcery:core_counterpraxic','sorcery:levitanium_ingot'};
268 - {'sorcery:cobalt_ingot','sorcery:screw_platinum','basic_materials:silver_wire'};
211 + {ingot('cobalt'),'sorcery:screw_platinum','basic_materials:silver_wire'};
212 + {'sorcery:inverter_coil','sorcery:core_counterpraxic',ingot('levitanium')};
213 + {ingot('cobalt'),'sorcery:screw_platinum','basic_materials:silver_wire'};
269 214 };
270 215 }
271 216
272 217 minetest.register_craft {
273 218 output = 'sorcery:gravitator_off';
274 219 recipe = {
275 - {'sorcery:platinum_ingot','basic_materials:plastic_sheet','sorcery:platinum_ingot'};
220 + {ingot('platinum'),'basic_materials:plastic_sheet',ingot('platinum')};
276 221 {'xpanes:pane_flat','sorcery:gravity_manipulator','basic_materials:plastic_sheet'};
277 - {'sorcery:platinum_ingot','basic_materials:plastic_sheet','sorcery:platinum_ingot'};
222 + {ingot('platinum'),'basic_materials:plastic_sheet',ingot('platinum')};
278 223 };
279 224 }
280 225
281 226 minetest.register_craft {
282 - output = 'sorcery:powder_firestorm 4';
227 + output = 'sorcery:powder_firestorm 5';
283 228 type = 'shapeless';
284 229 recipe = {
285 - 'sorcery:powder_lithium', 'sorcery:powder_lithium';
286 - 'sorcery:powder_silver';
230 + mtlp('lithium','powder'), mtlp('lithium','powder');
231 + mtlp('silver','powder');
287 232 'basic_materials:oil_extract';
288 233 'sorcery:flame_oil';
289 234 'tnt:gunpowder';
290 235 'farming:mixing_bowl';
291 236 };
292 237 replacements = {
293 238 {'sorcery:flame_oil', 'xdecor:bowl'};
................................................................................
316 261 _sorcery = {
317 262 material = {
318 263 gem = true;
319 264 sacrifice_value = 900;
320 265 };
321 266 }
322 267 })
268 +
269 +minetest.register_craft {
270 + output = 'sorcery:powder_firestorm 6';
271 + type = 'shapeless';
272 + recipe = {'sorcery:inferno_crystal', 'xdecor:hammer'};
273 + replacements = {
274 + {'xdecor:hammer','xdecor:hammer'};
275 + {'sorcery:inferno_crystal', 'sorcery:shard_ruby 5'};
276 + }
277 +}
323 278
324 279 minetest.register_craftitem('sorcery:powder_firestorm', {
325 280 inventory_image = 'sorcery_powder_firestorm.png';
326 281 description = 'Firestorm Powder';
282 + groups = { sorcery_ingredient = 1, fuel = 1 };
327 283 })
328 284
329 285 minetest.register_craft {
330 286 type = 'fuel', burntime = 8 * 15;
331 287 recipe = 'sorcery:powder_firestorm';
332 288 };
333 289
334 290 minetest.register_craft {
335 291 type = 'fuel', burntime = 8 * 85;
336 292 recipe = 'sorcery:inferno_crystal';
337 293 replacement = {{'sorcery:inferno_crystal', 'sorcery:shard_ruby 6'}};
338 294 };
339 -
340 -minetest.register_craftitem('sorcery:essence_flame', {
341 - inventory_image = 'sorcery_essence_flame.png';
342 - description = 'Flame Essence';
343 -})
344 -
345 295
346 296 minetest.register_craftitem('sorcery:gravity_manipulator', {
347 297 description = 'Gravity Manipulator';
348 298 inventory_image = 'sorcery_gravity_manipulator.png';
349 299 groups = {
350 300 sorcery_magitech = 1;
351 301 sorcery_tech_component = 1;
352 302 };
353 303 })
354 304
355 -minetest.register_craftitem('sorcery:tuning_disc',{
356 - description = 'Tuning Disc';
357 - inventory_image = 'sorcery_tuning_disc.png';
358 - groups = {
359 - sorcery_magitech = 1; metal = 1;
360 - sorcery_tech_component = 1;
361 - };
362 -});
363 -
364 -minetest.register_craftitem('sorcery:core_counterpraxic',{
365 - description = 'Counterpraxis Core';
366 - inventory_image = 'sorcery_core_counterpraxic.png';
367 - groups = {
368 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
369 - sorcery_tech_component = 1;
370 - };
371 -});
372 -
373 -minetest.register_craftitem('sorcery:core_mandatic',{
374 - description = 'Mandatic Core';
375 - inventory_image = 'sorcery_core_mandatic.png';
376 - groups = {
377 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
378 - sorcery_tech_component = 1;
379 - };
380 -});
381 -
382 -minetest.register_craftitem('sorcery:core_syncretic',{
383 - description = 'Syncresis Core';
384 - inventory_image = 'sorcery_core_syncretic.png';
385 - groups = {
386 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
387 - sorcery_tech_component = 1;
388 - };
389 -});
390 -
391 -minetest.register_craftitem('sorcery:suppression_matrix',{
392 - description = 'Suppression Matrix';
393 - inventory_image = 'sorcery_suppression_matrix.png';
394 - groups = {
395 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
396 - sorcery_tech_component = 1;
397 - };
398 -});
399 -
400 -minetest.register_craftitem('sorcery:inverter_coil',{
401 - description = 'Inverter Coil';
402 - inventory_image = 'sorcery_inverter_coil.png';
403 - groups = {
404 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
405 - sorcery_tech_component = 1;
406 - };
407 -});
408 -
409 -minetest.register_craftitem('sorcery:beam_generator',{
410 - description = 'Beam Generator';
411 - inventory_image = 'sorcery_beam_generator.png';
412 - groups = {
413 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
414 - sorcery_tech_component = 1;
415 - };
416 -});
417 -
418 -minetest.register_craftitem('sorcery:leyline_stabilizer',{
419 - description = 'Leyline Stabilizer';
420 - inventory_image = 'sorcery_leyline_stabilizer.png';
421 - groups = {
422 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
423 - sorcery_tech_component = 1;
424 - };
425 -});
426 -
427 -minetest.register_craftitem('sorcery:field_emitter',{
428 - description = 'Field Emitter';
429 - inventory_image = 'sorcery_field_emitter.png';
430 - groups = {
431 - sorcery_magitech = 1; metal = 1; sorcery_magitech_core = 1;
432 - sorcery_tech_component = 1;
433 - };
305 +
306 +local regtech = function(id, desc, groups, recipe, qty, replacements)
307 + minetest.register_craftitem('sorcery:' .. id,{
308 + description = desc;
309 + inventory_image = 'sorcery_'..id..'.png';
310 + groups = sorcery.lib.tbl.merge({
311 + sorcery_magitech = 1;
312 + sorcery_tech_component = 1;
313 + }, groups or {});
314 + })
315 + if recipe then
316 + minetest.register_craft {
317 + output = string.format('sorcery:%s %u', id, qty or 1);
318 + recipe = recipe;
319 + replacements = replacements;
320 + }
321 + end
322 +end
323 +
324 +local regcore = function(core,name)
325 + regtech('core_'..core, name .. ' Core', {sorcery_magitech_core = 1})
326 +end
327 +
328 +
329 +regtech('field_emitter', 'Field Emitter', {metal = 1})
330 +regtech('leyline_stabilizer', 'Leyline Stabilizer', {metal = 1})
331 +regtech('beam_generator', 'Beam Generator', {metal = 1})
332 +regtech('inversion_matrix', 'Inversion Matrix', {metal = 1})
333 +regtech('inverter_coil', 'Inverter Coil', {metal = 1})
334 +regtech('suppression_matrix', 'Suppression Matrix', {metal = 1})
335 +regtech('tuning_disc', 'Tuning Disc', {metal = 1})
336 + -- used in constructing devices that are subject to attunement wand
337 +regtech('gravity_manipulator', 'Gravity Manipulator', {metal = 1})
338 +regtech('valve','Valve', {metal = 1}, {
339 + {'','default:bronze_ingot',''};
340 + {'basic_materials:plastic_sheet','basic_materials:steel_bar','basic_materials:plastic_sheet'};
341 + {'','default:bronze_ingot',''};
342 +},3)
343 +regtech('pipe','Pipe', {metal = 1}, {
344 + {ingot('aluminum'),'',ingot('aluminum')};
345 + {ingot('aluminum'),'',ingot('aluminum')};
346 + {ingot('aluminum'),'',ingot('aluminum')};
347 +}, 6)
348 +
349 +minetest.register_craft {
350 + output = 'sorcery:trough';
351 + recipe = {
352 + {ingot('aluminum'),'',ingot('aluminum')};
353 + {ingot('aluminum'),'',ingot('aluminum')};
354 + {ingot('aluminum'),ingot('aluminum'),ingot('aluminum')};
355 + };
356 +}
357 +
358 +regtech('infuser_tube', 'Infusion Tube', {metal = 1}, {
359 + {"basic_materials:copper_strip",'sorcery:infuser_concentrator', "basic_materials:copper_strip"};
360 + {"", "basic_materials:copper_strip", "basic_materials:gold_wire"};
361 + {"", "basic_materials:copper_strip", ""};
362 +}, 1, {
363 + {"basic_materials:gold_wire", "basic_materials:empty_spool"}
364 +})
365 +regtech('infuser_chamber', 'Infuser Chamber', nil, {
366 + {'default:clay_brick','sorcery:grease_sealant','default:clay_brick'};
367 + {'default:clay_brick','stairs:slab_steelblock','default:clay_brick'};
368 +}, 1, {
369 + {'sorcery:grease_sealant','xdecor:bowl'};
370 +})
371 +regtech('infuser_concentrator', 'Infuser Concentrator', nil, {
372 + {'basic_materials:steel_wire'};
373 + {'default:obsidian_shard'};
374 + {'basic_materials:copper_wire'};
375 +}, 1, {
376 + {'basic_materials:steel_wire', 'basic_materials:empty_spool'};
377 + {'basic_materials:copper_wire', 'basic_materials:empty_spool'};
378 +})
379 +
380 +
381 +regtech('warding_plate', 'Warding Plate', {metal = 1}, {
382 + {'basic_materials:gold_wire','basic_materials:gold_wire','basic_materials:gold_wire'};
383 + {'',mtlp('vidrium','block'),''};
384 + {'basic_materials:gold_wire','basic_materials:gold_wire','basic_materials:gold_wire'};
385 +}, 4)
386 +regtech('ley_puncture', 'Ley Puncture', {metal = 1})
387 +regtech('pulse_rectifier', 'Pulse Rectifier', {metal = 1})
388 +regtech('current_felicitator', 'Current Felicitator', {metal = 1})
389 +
390 +regtech('conduction_plate', 'Conduction Plate', {metal = 1}, {
391 + {'','default:copper_ingot',''};
392 + {'','stairs:slab_stone',''};
393 + {'basic_materials:copper_wire','basic_materials:steel_bar','basic_materials:copper_wire'};
394 +})
395 +
396 +regtech('catalytic_convector', 'Catalytic Convector', {metal = 1}, {
397 + {'basic_materials:heating_element','default:gold_ingot','basic_materials:heating_element'};
398 + {'default:mese_crystal','default:mese_crystal','default:mese_crystal'};
399 + {'sorcery:tungsten_ingot','sorcery:oil_flame','sorcery:tungsten_ingot'};
400 +}, 1, {
401 + {'sorcery:oil_flame',sorcery.register.residue.db['sorcery:oil_flame']};
434 402 })
403 +
404 +
405 +regcore('syncretic', 'Syncresis')
406 +regcore('mandatic', 'Mandatic')
407 +-- regcore('praxic', 'Praxis')
408 +regcore('counterpraxic', 'Counterpraxis')
409 +
435 410
436 411 --- possible other components
437 412 -- felicitator
438 413 -- flux rectifier
439 414 -- flux suppressor
440 415 -- flux amplifier
441 416 -- tacit web
................................................................................
520 495 replacements = {
521 496 {'basic_materials:steel_wire', 'basic_materials:empty_spool'};
522 497 {'basic_materials:copper_wire', 'basic_materials:empty_spool'};
523 498 {'basic_materials:copper_wire', 'basic_materials:empty_spool'};
524 499 {'basic_materials:steel_wire', 'basic_materials:empty_spool'};
525 500 };
526 501 }
502 +
503 +minetest.register_craft {
504 + output = 'sorcery:inversion_matrix';
505 + recipe = {
506 + {'','sorcery:inverter_coil','basic_materials:gold_wire'};
507 + {'sorcery:inverter_coil','sorcery:leyline_stabilizer','sorcery:inverter_coil'};
508 + {'basic_materials:gold_wire','sorcery:inverter_coil',''};
509 + };
510 +}
511 +
527 512
528 513 minetest.register_craft {
529 514 output = 'sorcery:field_emitter';
530 515 recipe = {
531 516 {'basic_materials:steel_bar','xpanes:pane_flat','basic_materials:steel_bar'};
532 517 {'sorcery:beam_generator','sorcery:leyline_stabilizer','sorcery:beam_generator'};
533 518 {'sorcery:beam_generator','basic_materials:copper_wire','sorcery:beam_generator'};
................................................................................
683 668 [{'vidrium','cobalt','levitanium'}] = 'azure';
684 669 }
685 670
686 671 for metals,color in pairs(auxdyes) do
687 672 local dye = 'dye:' .. color
688 673 if minetest.registered_items[dye] then
689 674 local pd = {} for i=1,3 do
690 - pd[i] = sorcery.data.metals[metals[i]].parts.powder
675 + pd[i] = mtlp(metals[i],'powder')
691 676 end
692 677 minetest.register_craft {
693 678 output = dye .. ' 4';
694 679 recipe = {
695 680 {'', pd[2], ''};
696 681 {pd[1],'basic_materials:paraffin', pd[3]};
697 682 {'', 'bucket:bucket_water', ''};