Create API for fence.register, and use it.
[oweals/minetest_game.git] / mods / default / crafting.lua
1 -- mods/default/crafting.lua
2
3 minetest.register_craft({
4         output = 'default:wood 4',
5         recipe = {
6                 {'default:tree'},
7         }
8 })
9
10 minetest.register_craft({
11         output = 'default:junglewood 4',
12         recipe = {
13                 {'default:jungletree'},
14         }
15 })
16
17 minetest.register_craft({
18         output = 'default:pine_wood 4',
19         recipe = {
20                 {'default:pine_tree'},
21         }
22 })
23
24 minetest.register_craft({
25         output = 'default:acacia_wood 4',
26         recipe = {
27                 {'default:acacia_tree'},
28         }
29 })
30
31 minetest.register_craft({
32         output = 'default:aspen_wood 4',
33         recipe = {
34                 {'default:aspen_tree'},
35         }
36 })
37
38 minetest.register_craft({
39         output = 'default:stick 4',
40         recipe = {
41                 {'group:wood'},
42         }
43 })
44
45 minetest.register_craft({
46         output = 'default:sign_wall',
47         recipe = {
48                 {'group:wood', 'group:wood', 'group:wood'},
49                 {'group:wood', 'group:wood', 'group:wood'},
50                 {'', 'group:stick', ''},
51         }
52 })
53
54 minetest.register_craft({
55         output = 'default:torch 4',
56         recipe = {
57                 {'default:coal_lump'},
58                 {'group:stick'},
59         }
60 })
61
62 minetest.register_craft({
63         output = 'default:pick_wood',
64         recipe = {
65                 {'group:wood', 'group:wood', 'group:wood'},
66                 {'', 'group:stick', ''},
67                 {'', 'group:stick', ''},
68         }
69 })
70
71 minetest.register_craft({
72         output = 'default:pick_stone',
73         recipe = {
74                 {'group:stone', 'group:stone', 'group:stone'},
75                 {'', 'group:stick', ''},
76                 {'', 'group:stick', ''},
77         }
78 })
79
80 minetest.register_craft({
81         output = 'default:pick_steel',
82         recipe = {
83                 {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
84                 {'', 'group:stick', ''},
85                 {'', 'group:stick', ''},
86         }
87 })
88
89 minetest.register_craft({
90         output = 'default:pick_bronze',
91         recipe = {
92                 {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
93                 {'', 'group:stick', ''},
94                 {'', 'group:stick', ''},
95         }
96 })
97
98 minetest.register_craft({
99         output = 'default:pick_mese',
100         recipe = {
101                 {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
102                 {'', 'group:stick', ''},
103                 {'', 'group:stick', ''},
104         }
105 })
106
107 minetest.register_craft({
108         output = 'default:pick_diamond',
109         recipe = {
110                 {'default:diamond', 'default:diamond', 'default:diamond'},
111                 {'', 'group:stick', ''},
112                 {'', 'group:stick', ''},
113         }
114 })
115
116 minetest.register_craft({
117         output = 'default:shovel_wood',
118         recipe = {
119                 {'group:wood'},
120                 {'group:stick'},
121                 {'group:stick'},
122         }
123 })
124
125 minetest.register_craft({
126         output = 'default:shovel_stone',
127         recipe = {
128                 {'group:stone'},
129                 {'group:stick'},
130                 {'group:stick'},
131         }
132 })
133
134 minetest.register_craft({
135         output = 'default:shovel_steel',
136         recipe = {
137                 {'default:steel_ingot'},
138                 {'group:stick'},
139                 {'group:stick'},
140         }
141 })
142
143 minetest.register_craft({
144         output = 'default:shovel_bronze',
145         recipe = {
146                 {'default:bronze_ingot'},
147                 {'group:stick'},
148                 {'group:stick'},
149         }
150 })
151
152 minetest.register_craft({
153         output = 'default:shovel_mese',
154         recipe = {
155                 {'default:mese_crystal'},
156                 {'group:stick'},
157                 {'group:stick'},
158         }
159 })
160
161 minetest.register_craft({
162         output = 'default:shovel_diamond',
163         recipe = {
164                 {'default:diamond'},
165                 {'group:stick'},
166                 {'group:stick'},
167         }
168 })
169
170 minetest.register_craft({
171         output = 'default:axe_wood',
172         recipe = {
173                 {'group:wood', 'group:wood'},
174                 {'group:wood', 'group:stick'},
175                 {'', 'group:stick'},
176         }
177 })
178
179 minetest.register_craft({
180         output = 'default:axe_stone',
181         recipe = {
182                 {'group:stone', 'group:stone'},
183                 {'group:stone', 'group:stick'},
184                 {'', 'group:stick'},
185         }
186 })
187
188 minetest.register_craft({
189         output = 'default:axe_steel',
190         recipe = {
191                 {'default:steel_ingot', 'default:steel_ingot'},
192                 {'default:steel_ingot', 'group:stick'},
193                 {'', 'group:stick'},
194         }
195 })
196
197 minetest.register_craft({
198         output = 'default:axe_bronze',
199         recipe = {
200                 {'default:bronze_ingot', 'default:bronze_ingot'},
201                 {'default:bronze_ingot', 'group:stick'},
202                 {'', 'group:stick'},
203         }
204 })
205
206 minetest.register_craft({
207         output = 'default:axe_mese',
208         recipe = {
209                 {'default:mese_crystal', 'default:mese_crystal'},
210                 {'default:mese_crystal', 'group:stick'},
211                 {'', 'group:stick'},
212         }
213 })
214
215 minetest.register_craft({
216         output = 'default:axe_diamond',
217         recipe = {
218                 {'default:diamond', 'default:diamond'},
219                 {'default:diamond', 'group:stick'},
220                 {'', 'group:stick'},
221         }
222 })
223
224 minetest.register_craft({
225         output = 'default:axe_wood',
226         recipe = {
227                 {'group:wood', 'group:wood'},
228                 {'group:stick', 'group:wood'},
229                 {'group:stick',''},
230         }
231 })
232
233 minetest.register_craft({
234         output = 'default:axe_stone',
235         recipe = {
236                 {'group:stone', 'group:stone'},
237                 {'group:stick', 'group:stone'},
238                 {'group:stick', ''},
239         }
240 })
241
242 minetest.register_craft({
243         output = 'default:axe_steel',
244         recipe = {
245                 {'default:steel_ingot', 'default:steel_ingot'},
246                 {'group:stick', 'default:steel_ingot'},
247                 {'group:stick', ''},
248         }
249 })
250
251 minetest.register_craft({
252         output = 'default:axe_bronze',
253         recipe = {
254                 {'default:bronze_ingot', 'default:bronze_ingot'},
255                 {'group:stick', 'default:bronze_ingot'},
256                 {'group:stick', ''},
257         }
258 })
259
260 minetest.register_craft({
261         output = 'default:axe_mese',
262         recipe = {
263                 {'default:mese_crystal', 'default:mese_crystal'},
264                 {'group:stick', 'default:mese_crystal'},
265                 {'group:stick', ''},
266         }
267 })
268
269 minetest.register_craft({
270         output = 'default:axe_diamond',
271         recipe = {
272                 {'default:diamond', 'default:diamond'},
273                 {'group:stick', 'default:diamond'},
274                 {'group:stick', ''},
275         }
276 })
277
278 minetest.register_craft({
279         output = 'default:sword_wood',
280         recipe = {
281                 {'group:wood'},
282                 {'group:wood'},
283                 {'group:stick'},
284         }
285 })
286
287 minetest.register_craft({
288         output = 'default:sword_stone',
289         recipe = {
290                 {'group:stone'},
291                 {'group:stone'},
292                 {'group:stick'},
293         }
294 })
295
296 minetest.register_craft({
297         output = 'default:sword_steel',
298         recipe = {
299                 {'default:steel_ingot'},
300                 {'default:steel_ingot'},
301                 {'group:stick'},
302         }
303 })
304
305 minetest.register_craft({
306         output = 'default:sword_bronze',
307         recipe = {
308                 {'default:bronze_ingot'},
309                 {'default:bronze_ingot'},
310                 {'group:stick'},
311         }
312 })
313
314 minetest.register_craft({
315         output = 'default:sword_mese',
316         recipe = {
317                 {'default:mese_crystal'},
318                 {'default:mese_crystal'},
319                 {'group:stick'},
320         }
321 })
322
323 minetest.register_craft({
324         output = 'default:sword_diamond',
325         recipe = {
326                 {'default:diamond'},
327                 {'default:diamond'},
328                 {'group:stick'},
329         }
330 })
331
332 minetest.register_craft({
333         output = 'default:rail 24',
334         recipe = {
335                 {'default:steel_ingot', '', 'default:steel_ingot'},
336                 {'default:steel_ingot', 'group:stick', 'default:steel_ingot'},
337                 {'default:steel_ingot', '', 'default:steel_ingot'},
338         }
339 })
340
341 minetest.register_craft({
342         output = 'default:chest',
343         recipe = {
344                 {'group:wood', 'group:wood', 'group:wood'},
345                 {'group:wood', '', 'group:wood'},
346                 {'group:wood', 'group:wood', 'group:wood'},
347         }
348 })
349
350 minetest.register_craft({
351         output = 'default:chest_locked',
352         recipe = {
353                 {'group:wood', 'group:wood', 'group:wood'},
354                 {'group:wood', 'default:steel_ingot', 'group:wood'},
355                 {'group:wood', 'group:wood', 'group:wood'},
356         }
357 })
358
359 minetest.register_craft({
360         output = 'default:furnace',
361         recipe = {
362                 {'group:stone', 'group:stone', 'group:stone'},
363                 {'group:stone', '', 'group:stone'},
364                 {'group:stone', 'group:stone', 'group:stone'},
365         }
366 })
367
368 minetest.register_craft({
369         type = "shapeless",
370         output = "default:bronze_ingot",
371         recipe = {"default:steel_ingot", "default:copper_ingot"},
372 })
373
374 minetest.register_craft({
375         output = 'default:coalblock',
376         recipe = {
377                 {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
378                 {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
379                 {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
380         }
381 })
382
383 minetest.register_craft({
384         output = 'default:coal_lump 9',
385         recipe = {
386                 {'default:coalblock'},
387         }
388 })
389
390 minetest.register_craft({
391         output = 'default:steelblock',
392         recipe = {
393                 {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
394                 {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
395                 {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
396         }
397 })
398
399 minetest.register_craft({
400         output = 'default:steel_ingot 9',
401         recipe = {
402                 {'default:steelblock'},
403         }
404 })
405
406 minetest.register_craft({
407         output = 'default:copperblock',
408         recipe = {
409                 {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
410                 {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
411                 {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
412         }
413 })
414
415 minetest.register_craft({
416         output = 'default:copper_ingot 9',
417         recipe = {
418                 {'default:copperblock'},
419         }
420 })
421
422 minetest.register_craft({
423         output = 'default:bronzeblock',
424         recipe = {
425                 {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
426                 {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
427                 {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
428         }
429 })
430
431 minetest.register_craft({
432         output = 'default:bronze_ingot 9',
433         recipe = {
434                 {'default:bronzeblock'},
435         }
436 })
437
438 minetest.register_craft({
439         output = 'default:goldblock',
440         recipe = {
441                 {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
442                 {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
443                 {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
444         }
445 })
446
447 minetest.register_craft({
448         output = 'default:gold_ingot 9',
449         recipe = {
450                 {'default:goldblock'},
451         }
452 })
453
454 minetest.register_craft({
455         output = 'default:diamondblock',
456         recipe = {
457                 {'default:diamond', 'default:diamond', 'default:diamond'},
458                 {'default:diamond', 'default:diamond', 'default:diamond'},
459                 {'default:diamond', 'default:diamond', 'default:diamond'},
460         }
461 })
462
463 minetest.register_craft({
464         output = 'default:diamond 9',
465         recipe = {
466                 {'default:diamondblock'},
467         }
468 })
469
470 minetest.register_craft({
471         output = 'default:sandstone',
472         recipe = {
473                 {'group:sand', 'group:sand'},
474                 {'group:sand', 'group:sand'},
475         }
476 })
477
478 minetest.register_craft({
479         output = 'default:sand 4',
480         recipe = {
481                 {'default:sandstone'},
482         }
483 })
484
485 minetest.register_craft({
486         output = 'default:sandstonebrick 4',
487         recipe = {
488                 {'default:sandstone', 'default:sandstone'},
489                 {'default:sandstone', 'default:sandstone'},
490         }
491 })
492
493 minetest.register_craft({
494         output = 'default:clay',
495         recipe = {
496                 {'default:clay_lump', 'default:clay_lump'},
497                 {'default:clay_lump', 'default:clay_lump'},
498         }
499 })
500
501 minetest.register_craft({
502         output = 'default:brick',
503         recipe = {
504                 {'default:clay_brick', 'default:clay_brick'},
505                 {'default:clay_brick', 'default:clay_brick'},
506         }
507 })
508
509 minetest.register_craft({
510         output = 'default:clay_brick 4',
511         recipe = {
512                 {'default:brick'},
513         }
514 })
515
516 minetest.register_craft({
517         output = 'default:paper',
518         recipe = {
519                 {'default:papyrus', 'default:papyrus', 'default:papyrus'},
520         }
521 })
522
523 minetest.register_craft({
524         output = 'default:book',
525         recipe = {
526                 {'default:paper'},
527                 {'default:paper'},
528                 {'default:paper'},
529         }
530 })
531
532 minetest.register_craft({
533         output = 'default:bookshelf',
534         recipe = {
535                 {'group:wood', 'group:wood', 'group:wood'},
536                 {'default:book', 'default:book', 'default:book'},
537                 {'group:wood', 'group:wood', 'group:wood'},
538         }
539 })
540
541 minetest.register_craft({
542         output = 'default:ladder',
543         recipe = {
544                 {'group:stick', '', 'group:stick'},
545                 {'group:stick', 'group:stick', 'group:stick'},
546                 {'group:stick', '', 'group:stick'},
547         }
548 })
549
550 minetest.register_craft({
551         output = 'default:mese',
552         recipe = {
553                 {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
554                 {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
555                 {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
556         }
557 })
558
559 minetest.register_craft({
560         output = 'default:mese_crystal 9',
561         recipe = {
562                 {'default:mese'},
563         }
564 })
565
566 minetest.register_craft({
567         output = 'default:mese_crystal_fragment 9',
568         recipe = {
569                 {'default:mese_crystal'},
570         }
571 })
572
573 minetest.register_craft({
574         output = 'default:meselamp 1',
575         recipe = {
576                 {'', 'default:mese_crystal',''},
577                 {'default:mese_crystal', 'default:glass', 'default:mese_crystal'},
578         }
579 })
580
581 minetest.register_craft({
582         output = 'default:obsidian_shard 9',
583         recipe = {
584                 {'default:obsidian'}
585         }
586 })
587
588 minetest.register_craft({
589         output = 'default:obsidian',
590         recipe = {
591                 {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
592                 {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
593                 {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
594         }
595 })
596
597 minetest.register_craft({
598         output = 'default:obsidianbrick 4',
599         recipe = {
600                 {'default:obsidian', 'default:obsidian'},
601                 {'default:obsidian', 'default:obsidian'}
602         }
603 })
604
605 minetest.register_craft({
606         output = 'default:stonebrick 4',
607         recipe = {
608                 {'default:stone', 'default:stone'},
609                 {'default:stone', 'default:stone'},
610         }
611 })
612
613 minetest.register_craft({
614         output = 'default:desert_stonebrick 4',
615         recipe = {
616                 {'default:desert_stone', 'default:desert_stone'},
617                 {'default:desert_stone', 'default:desert_stone'},
618         }
619 })
620
621 minetest.register_craft({
622         output = 'default:snowblock',
623         recipe = {
624                 {'default:snow', 'default:snow', 'default:snow'},
625                 {'default:snow', 'default:snow', 'default:snow'},
626                 {'default:snow', 'default:snow', 'default:snow'},
627         }
628 })
629
630 minetest.register_craft({
631         output = 'default:snow 9',
632         recipe = {
633                 {'default:snowblock'},
634         }
635 })
636
637 --
638 -- Crafting (tool repair)
639 --
640 minetest.register_craft({
641         type = "toolrepair",
642         additional_wear = -0.02,
643 })
644
645 --
646 -- Cooking recipes
647 --
648
649 minetest.register_craft({
650         type = "cooking",
651         output = "default:glass",
652         recipe = "group:sand",
653 })
654
655 minetest.register_craft({
656         type = "cooking",
657         output = "default:obsidian_glass",
658         recipe = "default:obsidian_shard",
659 })
660
661 minetest.register_craft({
662         type = "cooking",
663         output = "default:stone",
664         recipe = "default:cobble",
665 })
666
667 minetest.register_craft({
668         type = "cooking",
669         output = "default:stone",
670         recipe = "default:mossycobble",
671 })
672
673 minetest.register_craft({
674         type = "cooking",
675         output = "default:desert_stone",
676         recipe = "default:desert_cobble",
677 })
678
679 minetest.register_craft({
680         type = "cooking",
681         output = "default:steel_ingot",
682         recipe = "default:iron_lump",
683 })
684
685 minetest.register_craft({
686         type = "cooking",
687         output = "default:copper_ingot",
688         recipe = "default:copper_lump",
689 })
690
691 minetest.register_craft({
692         type = "cooking",
693         output = "default:gold_ingot",
694         recipe = "default:gold_lump",
695 })
696
697 minetest.register_craft({
698         type = "cooking",
699         output = "default:clay_brick",
700         recipe = "default:clay_lump",
701 })
702
703 --
704 -- Fuels
705 --
706
707 minetest.register_craft({
708         type = "fuel",
709         recipe = "group:tree",
710         burntime = 30,
711 })
712
713 minetest.register_craft({
714         type = "fuel",
715         recipe = "default:junglegrass",
716         burntime = 2,
717 })
718
719 minetest.register_craft({
720         type = "fuel",
721         recipe = "group:leaves",
722         burntime = 1,
723 })
724
725 minetest.register_craft({
726         type = "fuel",
727         recipe = "default:cactus",
728         burntime = 15,
729 })
730
731 minetest.register_craft({
732         type = "fuel",
733         recipe = "default:papyrus",
734         burntime = 1,
735 })
736
737 minetest.register_craft({
738         type = "fuel",
739         recipe = "default:bookshelf",
740         burntime = 30,
741 })
742
743 minetest.register_craft({
744         type = "fuel",
745         recipe = "default:fence_wood",
746         burntime = 15,
747 })
748
749 minetest.register_craft({
750         type = "fuel",
751         recipe = "default:ladder",
752         burntime = 5,
753 })
754
755 minetest.register_craft({
756         type = "fuel",
757         recipe = "group:wood",
758         burntime = 7,
759 })
760
761 minetest.register_craft({
762         type = "fuel",
763         recipe = "default:lava_source",
764         burntime = 60,
765 })
766
767 minetest.register_craft({
768         type = "fuel",
769         recipe = "default:torch",
770         burntime = 4,
771 })
772
773 minetest.register_craft({
774         type = "fuel",
775         recipe = "default:sign_wall",
776         burntime = 10,
777 })
778
779 minetest.register_craft({
780         type = "fuel",
781         recipe = "default:chest",
782         burntime = 30,
783 })
784
785 minetest.register_craft({
786         type = "fuel",
787         recipe = "default:chest_locked",
788         burntime = 30,
789 })
790
791 minetest.register_craft({
792         type = "fuel",
793         recipe = "default:nyancat",
794         burntime = 1,
795 })
796
797 minetest.register_craft({
798         type = "fuel",
799         recipe = "default:nyancat_rainbow",
800         burntime = 1,
801 })
802
803 minetest.register_craft({
804         type = "fuel",
805         recipe = "group:sapling",
806         burntime = 10,
807 })
808
809 minetest.register_craft({
810         type = "fuel",
811         recipe = "default:apple",
812         burntime = 3,
813 })
814
815 minetest.register_craft({
816         type = "fuel",
817         recipe = "default:coal_lump",
818         burntime = 40,
819 })
820
821 minetest.register_craft({
822         type = "fuel",
823         recipe = "default:coalblock",
824         burntime = 370,
825 })
826
827 minetest.register_craft({
828         type = "fuel",
829         recipe = "default:grass_1",
830         burntime = 2,
831 })
832
833 minetest.register_craft({
834         type = "fuel",
835         recipe = "default:dry_grass_1",
836         burntime = 2,
837 })
838