]> git.lizzy.rs Git - dragonfireclient.git/blob - data/mods/legacy/init.lua
ec691c5e78a32ba00b46448c144f5ad382285096
[dragonfireclient.git] / data / mods / legacy / init.lua
1 -- legacy (Minetest 0.4 mod)
2 -- Provides as much backwards-compatibility as feasible
3
4 WATER_ALPHA = 160
5 WATER_VISC = 1
6 LAVA_VISC = 7
7 LIGHT_MAX = 14
8
9 --
10 -- Tool definition
11 -- Compatibility to 0.3 and old 0.4
12 --
13
14 minetest.register_tool(":WPick", {
15         image = "tool_woodpick.png",
16         basetime = 2.0,
17         dt_weight = 0,
18         dt_crackiness = -0.5,
19         dt_crumbliness = 2,
20         dt_cuttability = 0,
21         basedurability = 30,
22         dd_weight = 0,
23         dd_crackiness = 0,
24         dd_crumbliness = 0,
25         dd_cuttability = 0,
26 })
27 minetest.register_tool(":STPick", {
28         image = "tool_stonepick.png",
29         basetime = 1.5,
30         dt_weight = 0,
31         dt_crackiness = -0.5,
32         dt_crumbliness = 2,
33         dt_cuttability = 0,
34         basedurability = 100,
35         dd_weight = 0,
36         dd_crackiness = 0,
37         dd_crumbliness = 0,
38         dd_cuttability = 0,
39 })
40 minetest.register_tool(":SteelPick", {
41         image = "tool_steelpick.png",
42         basetime = 1.0,
43         dt_weight = 0,
44         dt_crackiness = -0.5,
45         dt_crumbliness = 2,
46         dt_cuttability = 0,
47         basedurability = 333,
48         dd_weight = 0,
49         dd_crackiness = 0,
50         dd_crumbliness = 0,
51         dd_cuttability = 0,
52 })
53 minetest.register_tool(":MesePick", {
54         image = "tool_mesepick.png",
55         basetime = 0,
56         dt_weight = 0,
57         dt_crackiness = 0,
58         dt_crumbliness = 0,
59         dt_cuttability = 0,
60         basedurability = 1337,
61         dd_weight = 0,
62         dd_crackiness = 0,
63         dd_crumbliness = 0,
64         dd_cuttability = 0,
65 })
66 minetest.register_tool(":WShovel", {
67         image = "tool_woodshovel.png",
68         basetime = 2.0,
69         dt_weight = 0.5,
70         dt_crackiness = 2,
71         dt_crumbliness = -1.5,
72         dt_cuttability = 0.3,
73         basedurability = 30,
74         dd_weight = 0,
75         dd_crackiness = 0,
76         dd_crumbliness = 0,
77         dd_cuttability = 0,
78 })
79 minetest.register_tool(":STShovel", {
80         image = "tool_stoneshovel.png",
81         basetime = 1.5,
82         dt_weight = 0.5,
83         dt_crackiness = 2,
84         dt_crumbliness = -1.5,
85         dt_cuttability = 0.1,
86         basedurability = 100,
87         dd_weight = 0,
88         dd_crackiness = 0,
89         dd_crumbliness = 0,
90         dd_cuttability = 0,
91 })
92 minetest.register_tool(":SteelShovel", {
93         image = "tool_steelshovel.png",
94         basetime = 1.0,
95         dt_weight = 0.5,
96         dt_crackiness = 2,
97         dt_crumbliness = -1.5,
98         dt_cuttability = 0.0,
99         basedurability = 330,
100         dd_weight = 0,
101         dd_crackiness = 0,
102         dd_crumbliness = 0,
103         dd_cuttability = 0,
104 })
105 minetest.register_tool(":WAxe", {
106         image = "tool_woodaxe.png",
107         basetime = 2.0,
108         dt_weight = 0.5,
109         dt_crackiness = -0.2,
110         dt_crumbliness = 1,
111         dt_cuttability = -0.5,
112         basedurability = 30,
113         dd_weight = 0,
114         dd_crackiness = 0,
115         dd_crumbliness = 0,
116         dd_cuttability = 0,
117 })
118 minetest.register_tool(":STAxe", {
119         image = "tool_stoneaxe.png",
120         basetime = 1.5,
121         dt_weight = 0.5,
122         dt_crackiness = -0.2,
123         dt_crumbliness = 1,
124         dt_cuttability = -0.5,
125         basedurability = 100,
126         dd_weight = 0,
127         dd_crackiness = 0,
128         dd_crumbliness = 0,
129         dd_cuttability = 0,
130 })
131 minetest.register_tool(":SteelAxe", {
132         image = "tool_steelaxe.png",
133         basetime = 1.0,
134         dt_weight = 0.5,
135         dt_crackiness = -0.2,
136         dt_crumbliness = 1,
137         dt_cuttability = -0.5,
138         basedurability = 330,
139         dd_weight = 0,
140         dd_crackiness = 0,
141         dd_crumbliness = 0,
142         dd_cuttability = 0,
143 })
144 minetest.register_tool(":WSword", {
145         image = "tool_woodsword.png",
146         basetime = 3.0,
147         dt_weight = 3,
148         dt_crackiness = 0,
149         dt_crumbliness = 1,
150         dt_cuttability = -1,
151         basedurability = 30,
152         dd_weight = 0,
153         dd_crackiness = 0,
154         dd_crumbliness = 0,
155         dd_cuttability = 0,
156 })
157 minetest.register_tool(":STSword", {
158         image = "tool_stonesword.png",
159         basetime = 2.5,
160         dt_weight = 3,
161         dt_crackiness = 0,
162         dt_crumbliness = 1,
163         dt_cuttability = -1,
164         basedurability = 100,
165         dd_weight = 0,
166         dd_crackiness = 0,
167         dd_crumbliness = 0,
168         dd_cuttability = 0,
169 })
170 minetest.register_tool(":SteelSword", {
171         image = "tool_steelsword.png",
172         basetime = 2.0,
173         dt_weight = 3,
174         dt_crackiness = 0,
175         dt_crumbliness = 1,
176         dt_cuttability = -1,
177         basedurability = 330,
178         dd_weight = 0,
179         dd_crackiness = 0,
180         dd_crumbliness = 0,
181         dd_cuttability = 0,
182 })
183
184 --
185 -- Crafting definition (recipe = legacy, output = default)
186 -- Makes current compatible with 0.3 and old 0.4
187 --
188
189 minetest.register_craft({
190         output = 'node "default:wood" 4',
191         recipe = {
192                 {'node "tree"'},
193         }
194 })
195
196 minetest.register_craft({
197         output = 'craft "default:stick" 4',
198         recipe = {
199                 {'node "wood"'},
200         }
201 })
202
203 minetest.register_craft({
204         output = 'node "default:fence_wooden" 2',
205         recipe = {
206                 {'craft "Stick"', 'craft "Stick"', 'craft "Stick"'},
207                 {'craft "Stick"', 'craft "Stick"', 'craft "Stick"'},
208         }
209 })
210
211 minetest.register_craft({
212         output = 'node "default:sign_wall" 1',
213         recipe = {
214                 {'node "wood"', 'node "wood"', 'node "wood"'},
215                 {'node "wood"', 'node "wood"', 'node "wood"'},
216                 {'', 'craft "Stick"', ''},
217         }
218 })
219
220 minetest.register_craft({
221         output = 'node "default:torch" 4',
222         recipe = {
223                 {'craft "lump_of_coal"'},
224                 {'craft "Stick"'},
225         }
226 })
227
228 minetest.register_craft({
229         output = 'tool "default:pick_wooden"',
230         recipe = {
231                 {'node "wood"', 'node "wood"', 'node "wood"'},
232                 {'', 'craft "Stick"', ''},
233                 {'', 'craft "Stick"', ''},
234         }
235 })
236
237 minetest.register_craft({
238         output = 'tool "default:pick_stone"',
239         recipe = {
240                 {'node "cobble"', 'node "cobble"', 'node "cobble"'},
241                 {'', 'craft "Stick"', ''},
242                 {'', 'craft "Stick"', ''},
243         }
244 })
245
246 minetest.register_craft({
247         output = 'tool "default:pick_steel"',
248         recipe = {
249                 {'craft "steel_ingot"', 'craft "steel_ingot"', 'craft "steel_ingot"'},
250                 {'', 'craft "Stick"', ''},
251                 {'', 'craft "Stick"', ''},
252         }
253 })
254
255 minetest.register_craft({
256         output = 'tool "default:pick_mese"',
257         recipe = {
258                 {'node "mese"', 'node "mese"', 'node "mese"'},
259                 {'', 'craft "Stick"', ''},
260                 {'', 'craft "Stick"', ''},
261         }
262 })
263
264 minetest.register_craft({
265         output = 'tool "default:shovel_wood"',
266         recipe = {
267                 {'node "wood"'},
268                 {'craft "Stick"'},
269                 {'craft "Stick"'},
270         }
271 })
272
273 minetest.register_craft({
274         output = 'tool "default:shovel_stone"',
275         recipe = {
276                 {'node "cobble"'},
277                 {'craft "Stick"'},
278                 {'craft "Stick"'},
279         }
280 })
281
282 minetest.register_craft({
283         output = 'tool "default:shovel_steel"',
284         recipe = {
285                 {'craft "steel_ingot"'},
286                 {'craft "Stick"'},
287                 {'craft "Stick"'},
288         }
289 })
290
291 minetest.register_craft({
292         output = 'tool "default:axe_wooden"',
293         recipe = {
294                 {'node "wood"', 'node "wood"'},
295                 {'node "wood"', 'craft "Stick"'},
296                 {'', 'craft "Stick"'},
297         }
298 })
299
300 minetest.register_craft({
301         output = 'tool "default:axe_stone"',
302         recipe = {
303                 {'node "cobble"', 'node "cobble"'},
304                 {'node "cobble"', 'craft "Stick"'},
305                 {'', 'craft "Stick"'},
306         }
307 })
308
309 minetest.register_craft({
310         output = 'tool "default:axe_steel"',
311         recipe = {
312                 {'craft "steel_ingot"', 'craft "steel_ingot"'},
313                 {'craft "steel_ingot"', 'craft "Stick"'},
314                 {'', 'craft "Stick"'},
315         }
316 })
317
318 minetest.register_craft({
319         output = 'tool "default:sword_wood"',
320         recipe = {
321                 {'node "wood"'},
322                 {'node "wood"'},
323                 {'craft "Stick"'},
324         }
325 })
326
327 minetest.register_craft({
328         output = 'tool "default:sword_stone"',
329         recipe = {
330                 {'node "cobble"'},
331                 {'node "cobble"'},
332                 {'craft "Stick"'},
333         }
334 })
335
336 minetest.register_craft({
337         output = 'tool "default:sword_steel"',
338         recipe = {
339                 {'craft "steel_ingot"'},
340                 {'craft "steel_ingot"'},
341                 {'craft "Stick"'},
342         }
343 })
344
345 minetest.register_craft({
346         output = 'node "default:rail" 15',
347         recipe = {
348                 {'craft "steel_ingot"', '', 'craft "steel_ingot"'},
349                 {'craft "steel_ingot"', 'craft "Stick"', 'craft "steel_ingot"'},
350                 {'craft "steel_ingot"', '', 'craft "steel_ingot"'},
351         }
352 })
353
354 minetest.register_craft({
355         output = 'node "default:chest" 1',
356         recipe = {
357                 {'node "wood"', 'node "wood"', 'node "wood"'},
358                 {'node "wood"', '', 'node "wood"'},
359                 {'node "wood"', 'node "wood"', 'node "wood"'},
360         }
361 })
362
363 minetest.register_craft({
364         output = 'node "default:chest_locked" 1',
365         recipe = {
366                 {'node "wood"', 'node "wood"', 'node "wood"'},
367                 {'node "wood"', 'craft "steel_ingot"', 'node "wood"'},
368                 {'node "wood"', 'node "wood"', 'node "wood"'},
369         }
370 })
371
372 minetest.register_craft({
373         output = 'node "default:furnace" 1',
374         recipe = {
375                 {'node "cobble"', 'node "cobble"', 'node "cobble"'},
376                 {'node "cobble"', '', 'node "cobble"'},
377                 {'node "cobble"', 'node "cobble"', 'node "cobble"'},
378         }
379 })
380
381 minetest.register_craft({
382         output = 'node "default:steelblock" 1',
383         recipe = {
384                 {'craft "steel_ingot"', 'craft "steel_ingot"', 'craft "steel_ingot"'},
385                 {'craft "steel_ingot"', 'craft "steel_ingot"', 'craft "steel_ingot"'},
386                 {'craft "steel_ingot"', 'craft "steel_ingot"', 'craft "steel_ingot"'},
387         }
388 })
389
390 minetest.register_craft({
391         output = 'node "default:sandstone" 1',
392         recipe = {
393                 {'node "sand"', 'node "sand"'},
394                 {'node "sand"', 'node "sand"'},
395         }
396 })
397
398 minetest.register_craft({
399         output = 'node "default:clay" 1',
400         recipe = {
401                 {'craft "lump_of_clay"', 'craft "lump_of_clay"'},
402                 {'craft "lump_of_clay"', 'craft "lump_of_clay"'},
403         }
404 })
405
406 minetest.register_craft({
407         output = 'node "default:brick" 1',
408         recipe = {
409                 {'craft "clay_brick"', 'craft "clay_brick"'},
410                 {'craft "clay_brick"', 'craft "clay_brick"'},
411         }
412 })
413
414 minetest.register_craft({
415         output = 'craft "default:paper" 1',
416         recipe = {
417                 {'node "papyrus"', 'node "papyrus"', 'node "papyrus"'},
418         }
419 })
420
421 minetest.register_craft({
422         output = 'craft "default:book" 1',
423         recipe = {
424                 {'craft "paper"'},
425                 {'craft "paper"'},
426                 {'craft "paper"'},
427         }
428 })
429
430 minetest.register_craft({
431         output = 'node "default:bookshelf" 1',
432         recipe = {
433                 {'node "wood"', 'node "wood"', 'node "wood"'},
434                 {'craft "book"', 'craft "book"', 'craft "book"'},
435                 {'node "wood"', 'node "wood"', 'node "wood"'},
436         }
437 })
438
439 minetest.register_craft({
440         output = 'node "default:ladder" 1',
441         recipe = {
442                 {'craft "Stick"', '', 'craft "Stick"'},
443                 {'craft "Stick"', 'craft "Stick"', 'craft "Stick"'},
444                 {'craft "Stick"', '', 'craft "Stick"'},
445         }
446 })
447
448 minetest.register_craft({
449         output = 'craft "default:apple_iron" 1',
450         recipe = {
451                 {'', 'craft "steel_ingot"', ''},
452                 {'craft "steel_ingot"', 'craft "apple"', 'craft "steel_ingot"'},
453                 {'', 'craft "steel_ingot"', ''},
454         }
455 })
456
457 --
458 -- Node compatibility with old 0.4
459 --
460
461 minetest.register_node(":stone", {
462         tile_images = {"stone.png"},
463         inventory_image = minetest.inventorycube("stone.png"),
464         paramtype = "mineral",
465         is_ground_content = true,
466         often_contains_mineral = true, -- Texture atlas hint
467         material = minetest.digprop_stonelike(1.0),
468         dug_item = 'node "cobble" 1',
469 })
470
471 minetest.register_node(":dirt_with_grass", {
472         tile_images = {"grass.png", "mud.png", "mud.png^grass_side.png"},
473         inventory_image = minetest.inventorycube("mud.png^grass_side.png"),
474         is_ground_content = true,
475         material = minetest.digprop_dirtlike(1.0),
476         dug_item = 'node "dirt" 1',
477 })
478
479 minetest.register_node(":dirt_with_grass_footsteps", {
480         tile_images = {"grass_footsteps.png", "mud.png", "mud.png^grass_side.png"},
481         inventory_image = "grass_footsteps.png",
482         is_ground_content = true,
483         material = minetest.digprop_dirtlike(1.0),
484         dug_item = 'node "dirt" 1',
485 })
486
487 minetest.register_node(":dirt", {
488         tile_images = {"mud.png"},
489         inventory_image = minetest.inventorycube("mud.png"),
490         is_ground_content = true,
491         material = minetest.digprop_dirtlike(1.0),
492 })
493
494 minetest.register_node(":sand", {
495         tile_images = {"sand.png"},
496         inventory_image = minetest.inventorycube("sand.png"),
497         is_ground_content = true,
498         material = minetest.digprop_dirtlike(1.0),
499         cookresult_itemstring = 'node "glass" 1',
500 })
501
502 minetest.register_node(":gravel", {
503         tile_images = {"gravel.png"},
504         inventory_image = minetest.inventorycube("gravel.png"),
505         is_ground_content = true,
506         material = minetest.digprop_gravellike(1.0),
507 })
508
509 minetest.register_node(":sandstone", {
510         tile_images = {"sandstone.png"},
511         inventory_image = minetest.inventorycube("sandstone.png"),
512         is_ground_content = true,
513         material = minetest.digprop_dirtlike(1.0),
514         dug_item = 'node "sand" 1',
515 })
516
517 minetest.register_node(":clay", {
518         tile_images = {"clay.png"},
519         inventory_image = minetest.inventorycube("clay.png"),
520         is_ground_content = true,
521         material = minetest.digprop_dirtlike(1.0),
522         dug_item = 'craft "lump_of_clay" 4',
523 })
524
525 minetest.register_node(":brick", {
526         tile_images = {"brick.png"},
527         inventory_image = minetest.inventorycube("brick.png"),
528         is_ground_content = true,
529         material = minetest.digprop_stonelike(1.0),
530         dug_item = 'craft "clay_brick" 4',
531 })
532
533 minetest.register_node(":tree", {
534         tile_images = {"tree_top.png", "tree_top.png", "tree.png"},
535         inventory_image = minetest.inventorycube("tree_top.png", "tree.png", "tree.png"),
536         is_ground_content = true,
537         material = minetest.digprop_woodlike(1.0),
538         cookresult_itemstring = 'craft "lump_of_coal" 1',
539         furnace_burntime = 30,
540 })
541
542 minetest.register_node(":jungletree", {
543         tile_images = {"jungletree_top.png", "jungletree_top.png", "jungletree.png"},
544         inventory_image = minetest.inventorycube("jungletree_top.png", "jungletree.png", "jungletree.png"),
545         is_ground_content = true,
546         material = minetest.digprop_woodlike(1.0),
547         cookresult_itemstring = 'craft "lump_of_coal" 1',
548         furnace_burntime = 30,
549 })
550
551 minetest.register_node(":junglegrass", {
552         drawtype = "plantlike",
553         visual_scale = 1.3,
554         tile_images = {"junglegrass.png"},
555         inventory_image = "junglegrass.png",
556         light_propagates = true,
557         paramtype = "light",
558         walkable = false,
559         material = minetest.digprop_leaveslike(1.0),
560         furnace_burntime = 2,
561 })
562
563 minetest.register_node(":leaves", {
564         drawtype = "allfaces_optional",
565         visual_scale = 1.3,
566         tile_images = {"leaves.png"},
567         inventory_image = minetest.inventorycube("leaves.png"),
568         light_propagates = true,
569         paramtype = "light",
570         material = minetest.digprop_leaveslike(1.0),
571         extra_dug_item = 'node "sapling" 1',
572         extra_dug_item_rarity = 20,
573         furnace_burntime = 1,
574 })
575
576 minetest.register_node(":cactus", {
577         tile_images = {"cactus_top.png", "cactus_top.png", "cactus_side.png"},
578         inventory_image = minetest.inventorycube("cactus_top.png", "cactus_side.png", "cactus_side.png"),
579         is_ground_content = true,
580         material = minetest.digprop_woodlike(0.75),
581         furnace_burntime = 15,
582 })
583
584 minetest.register_node(":papyrus", {
585         drawtype = "plantlike",
586         tile_images = {"papyrus.png"},
587         inventory_image = "papyrus.png",
588         light_propagates = true,
589         paramtype = "light",
590         is_ground_content = true,
591         walkable = false,
592         material = minetest.digprop_leaveslike(0.5),
593         furnace_burntime = 1,
594 })
595
596 minetest.register_node(":bookshelf", {
597         tile_images = {"wood.png", "wood.png", "bookshelf.png"},
598         inventory_image = minetest.inventorycube("wood.png", "bookshelf.png", "bookshelf.png"),
599         is_ground_content = true,
600         material = minetest.digprop_woodlike(0.75),
601         furnace_burntime = 30,
602 })
603
604 minetest.register_node(":glass", {
605         drawtype = "glasslike",
606         tile_images = {"glass.png"},
607         inventory_image = minetest.inventorycube("glass.png"),
608         light_propagates = true,
609         paramtype = "light",
610         sunlight_propagates = true,
611         is_ground_content = true,
612         material = minetest.digprop_glasslike(1.0),
613 })
614
615 minetest.register_node(":wooden_fence", {
616         drawtype = "fencelike",
617         tile_images = {"wood.png"},
618         inventory_image = "fence.png",
619         light_propagates = true,
620         paramtype = "light",
621         is_ground_content = true,
622         selection_box = {
623                 type = "fixed",
624                 fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
625         },
626         furnace_burntime = 15,
627         material = minetest.digprop_woodlike(0.75),
628 })
629
630 minetest.register_node(":rail", {
631         drawtype = "raillike",
632         tile_images = {"rail.png", "rail_curved.png", "rail_t_junction.png", "rail_crossing.png"},
633         inventory_image = "rail.png",
634         light_propagates = true,
635         paramtype = "light",
636         is_ground_content = true,
637         walkable = false,
638         selection_box = {
639                 type = "fixed",
640                 --fixed = <default>
641         },
642         material = minetest.digprop_dirtlike(0.75),
643 })
644
645 minetest.register_node(":ladder", {
646         drawtype = "signlike",
647         tile_images = {"ladder.png"},
648         inventory_image = "ladder.png",
649         light_propagates = true,
650         paramtype = "light",
651         is_ground_content = true,
652         wall_mounted = true,
653         walkable = false,
654         climbable = true,
655         selection_box = {
656                 type = "wallmounted",
657                 --wall_top = = <default>
658                 --wall_bottom = = <default>
659                 --wall_side = = <default>
660         },
661         furnace_burntime = 5,
662         material = minetest.digprop_woodlike(0.5),
663 })
664
665 minetest.register_node(":coalstone", {
666         tile_images = {"stone.png^mineral_coal.png"},
667         inventory_image = "stone.png^mineral_coal.png",
668         is_ground_content = true,
669         material = minetest.digprop_stonelike(1.5),
670 })
671
672 minetest.register_node(":wood", {
673         tile_images = {"wood.png"},
674         inventory_image = minetest.inventorycube("wood.png"),
675         is_ground_content = true,
676         furnace_burntime = 7,
677         material = minetest.digprop_woodlike(0.75),
678 })
679
680 minetest.register_node(":mese", {
681         tile_images = {"mese.png"},
682         inventory_image = minetest.inventorycube("mese.png"),
683         is_ground_content = true,
684         furnace_burntime = 30,
685         material = minetest.digprop_stonelike(0.5),
686 })
687
688 minetest.register_node(":cloud", {
689         tile_images = {"cloud.png"},
690         inventory_image = minetest.inventorycube("cloud.png"),
691         is_ground_content = true,
692 })
693
694 minetest.register_node(":water_flowing", {
695         drawtype = "flowingliquid",
696         tile_images = {"water.png"},
697         alpha = WATER_ALPHA,
698         inventory_image = minetest.inventorycube("water.png"),
699         paramtype = "light",
700         light_propagates = true,
701         walkable = false,
702         pointable = false,
703         diggable = false,
704         buildable_to = true,
705         liquidtype = "flowing",
706         liquid_alternative_flowing = "water_flowing",
707         liquid_alternative_source = "water_source",
708         liquid_viscosity = WATER_VISC,
709         post_effect_color = {a=64, r=100, g=100, b=200},
710         special_materials = {
711                 {image="water.png", backface_culling=false},
712                 {image="water.png", backface_culling=true},
713         },
714 })
715
716 minetest.register_node(":water_source", {
717         drawtype = "liquid",
718         tile_images = {"water.png"},
719         alpha = WATER_ALPHA,
720         inventory_image = minetest.inventorycube("water.png"),
721         paramtype = "light",
722         light_propagates = true,
723         walkable = false,
724         pointable = false,
725         diggable = false,
726         buildable_to = true,
727         liquidtype = "source",
728         liquid_alternative_flowing = "water_flowing",
729         liquid_alternative_source = "water_source",
730         liquid_viscosity = WATER_VISC,
731         post_effect_color = {a=64, r=100, g=100, b=200},
732         special_materials = {
733                 -- New-style water source material (mostly unused)
734                 {image="water.png", backface_culling=false},
735         },
736 })
737
738 minetest.register_node(":lava_flowing", {
739         drawtype = "flowingliquid",
740         tile_images = {"lava.png"},
741         inventory_image = minetest.inventorycube("lava.png"),
742         paramtype = "light",
743         light_propagates = false,
744         light_source = LIGHT_MAX - 1,
745         walkable = false,
746         pointable = false,
747         diggable = false,
748         buildable_to = true,
749         liquidtype = "flowing",
750         liquid_alternative_flowing = "lava_flowing",
751         liquid_alternative_source = "lava_source",
752         liquid_viscosity = LAVA_VISC,
753         damage_per_second = 4*2,
754         post_effect_color = {a=192, r=255, g=64, b=0},
755         special_materials = {
756                 {image="lava.png", backface_culling=false},
757                 {image="lava.png", backface_culling=true},
758         },
759 })
760
761 minetest.register_node(":lava_source", {
762         drawtype = "liquid",
763         tile_images = {"lava.png"},
764         inventory_image = minetest.inventorycube("lava.png"),
765         paramtype = "light",
766         light_propagates = false,
767         light_source = LIGHT_MAX - 1,
768         walkable = false,
769         pointable = false,
770         diggable = false,
771         buildable_to = true,
772         liquidtype = "source",
773         liquid_alternative_flowing = "lava_flowing",
774         liquid_alternative_source = "lava_source",
775         liquid_viscosity = LAVA_VISC,
776         damage_per_second = 4*2,
777         post_effect_color = {a=192, r=255, g=64, b=0},
778         special_materials = {
779                 -- New-style lava source material (mostly unused)
780                 {image="lava.png", backface_culling=false},
781         },
782         furnace_burntime = 60,
783 })
784
785 minetest.register_node(":torch", {
786         drawtype = "torchlike",
787         tile_images = {"torch_on_floor.png", "torch_on_ceiling.png", "torch.png"},
788         inventory_image = "torch_on_floor.png",
789         paramtype = "light",
790         light_propagates = true,
791         sunlight_propagates = true,
792         walkable = false,
793         wall_mounted = true,
794         light_source = LIGHT_MAX-1,
795         selection_box = {
796                 type = "wallmounted",
797                 wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1},
798                 wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1},
799                 wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
800         },
801         material = minetest.digprop_constanttime(0.0),
802         furnace_burntime = 4,
803 })
804
805 minetest.register_node(":sign_wall", {
806         drawtype = "signlike",
807         tile_images = {"sign_wall.png"},
808         inventory_image = "sign_wall.png",
809         paramtype = "light",
810         light_propagates = true,
811         sunlight_propagates = true,
812         walkable = false,
813         wall_mounted = true,
814         metadata_name = "sign",
815         selection_box = {
816                 type = "wallmounted",
817                 --wall_top = <default>
818                 --wall_bottom = <default>
819                 --wall_side = <default>
820         },
821         material = minetest.digprop_constanttime(0.5),
822         furnace_burntime = 10,
823 })
824
825 minetest.register_node(":chest", {
826         tile_images = {"chest_top.png", "chest_top.png", "chest_side.png",
827                 "chest_side.png", "chest_side.png", "chest_front.png"},
828         inventory_image = minetest.inventorycube("chest_top.png", "chest_front.png", "chest_side.png"),
829         paramtype = "facedir_simple",
830         metadata_name = "chest",
831         material = minetest.digprop_woodlike(1.0),
832         furnace_burntime = 30,
833 })
834
835 minetest.register_node(":locked_chest", {
836         tile_images = {"chest_top.png", "chest_top.png", "chest_side.png",
837                 "chest_side.png", "chest_side.png", "chest_lock.png"},
838         inventory_image = minetest.inventorycube("chest_top.png", "chest_lock.png", "chest_side.png"),
839         paramtype = "facedir_simple",
840         metadata_name = "locked_chest",
841         material = minetest.digprop_woodlike(1.0),
842         furnace_burntime = 30,
843 })
844
845 minetest.register_node(":furnace", {
846         tile_images = {"furnace_side.png", "furnace_side.png", "furnace_side.png",
847                 "furnace_side.png", "furnace_side.png", "furnace_front.png"},
848         inventory_image = minetest.inventorycube("furnace_side.png", "furnace_front.png", "furnace_side.png"),
849         paramtype = "facedir_simple",
850         metadata_name = "furnace",
851         material = minetest.digprop_stonelike(3.0),
852 })
853
854 minetest.register_node(":cobble", {
855         tile_images = {"cobble.png"},
856         inventory_image = minetest.inventorycube("cobble.png"),
857         is_ground_content = true,
858         cookresult_itemstring = 'node "stone" 1',
859         material = minetest.digprop_stonelike(0.9),
860 })
861
862 minetest.register_node(":mossycobble", {
863         tile_images = {"mossycobble.png"},
864         inventory_image = minetest.inventorycube("mossycobble.png"),
865         is_ground_content = true,
866         material = minetest.digprop_stonelike(0.8),
867 })
868
869 minetest.register_node(":steelblock", {
870         tile_images = {"steel_block.png"},
871         inventory_image = minetest.inventorycube("steel_block.png"),
872         is_ground_content = true,
873         material = minetest.digprop_stonelike(5.0),
874 })
875
876 minetest.register_node(":nyancat", {
877         tile_images = {"nc_side.png", "nc_side.png", "nc_side.png",
878                 "nc_side.png", "nc_back.png", "nc_front.png"},
879         inventory_image = "nc_front.png",
880         paramtype = "facedir_simple",
881         material = minetest.digprop_stonelike(3.0),
882         furnace_burntime = 1,
883 })
884
885 minetest.register_node(":nyancat_rainbow", {
886         tile_images = {"nc_rb.png"},
887         inventory_image = "nc_rb.png",
888         material = minetest.digprop_stonelike(3.0),
889         furnace_burntime = 1,
890 })
891
892 minetest.register_node(":sapling", {
893         drawtype = "plantlike",
894         visual_scale = 1.0,
895         tile_images = {"sapling.png"},
896         inventory_image = "sapling.png",
897         paramtype = "light",
898         light_propagates = true,
899         walkable = false,
900         material = minetest.digprop_constanttime(0.0),
901         furnace_burntime = 10,
902 })
903
904 minetest.register_node(":apple", {
905         drawtype = "plantlike",
906         visual_scale = 1.0,
907         tile_images = {"apple.png"},
908         inventory_image = "apple.png",
909         paramtype = "light",
910         light_propagates = true,
911         sunlight_propagates = true,
912         walkable = false,
913         dug_item = 'craft "apple" 1',
914         material = minetest.digprop_constanttime(0.0),
915         furnace_burntime = 3,
916 })
917
918 --
919 -- Crafting items
920 -- Compatibility to 0.3 and old 0.4
921 --
922
923 minetest.register_craftitem(":Stick", {
924         image = "stick.png",
925         --furnace_burntime = ...,
926         on_place_on_ground = minetest.craftitem_place_item,
927 })
928
929 minetest.register_craftitem(":paper", {
930         image = "paper.png",
931         on_place_on_ground = minetest.craftitem_place_item,
932 })
933
934 minetest.register_craftitem(":book", {
935         image = "book.png",
936         on_place_on_ground = minetest.craftitem_place_item,
937 })
938
939 minetest.register_craftitem(":lump_of_coal", {
940         image = "lump_of_coal.png",
941         furnace_burntime = 40;
942         on_place_on_ground = minetest.craftitem_place_item,
943 })
944
945 minetest.register_craftitem(":lump_of_iron", {
946         image = "lump_of_iron.png",
947         cookresult_itemstring = 'craft "steel_ingot" 1',
948         on_place_on_ground = minetest.craftitem_place_item,
949 })
950
951 minetest.register_craftitem(":lump_of_clay", {
952         image = "lump_of_clay.png",
953         cookresult_itemstring = 'craft "clay_brick" 1',
954         on_place_on_ground = minetest.craftitem_place_item,
955 })
956
957 minetest.register_craftitem(":steel_ingot", {
958         image = "steel_ingot.png",
959         on_place_on_ground = minetest.craftitem_place_item,
960 })
961
962 minetest.register_craftitem(":clay_brick", {
963         image = "clay_brick.png",
964         on_place_on_ground = minetest.craftitem_place_item,
965 })
966
967 minetest.register_craftitem(":rat", {
968         image = "rat.png",
969         cookresult_itemstring = 'craft "cooked_rat" 1',
970         on_drop = function(item, dropper, pos)
971                 minetest.env:add_rat(pos)
972                 return true
973         end,
974 })
975
976 minetest.register_craftitem(":cooked_rat", {
977         image = "cooked_rat.png",
978         cookresult_itemstring = 'craft "scorched_stuff" 1',
979         on_place_on_ground = minetest.craftitem_place_item,
980         on_use = minetest.craftitem_eat(6),
981 })
982
983 minetest.register_craftitem(":scorched_stuff", {
984         image = "scorched_stuff.png",
985         on_place_on_ground = minetest.craftitem_place_item,
986 })
987
988 minetest.register_craftitem(":firefly", {
989         image = "firefly.png",
990         on_drop = function(item, dropper, pos)
991                 minetest.env:add_firefly(pos)
992                 return true
993         end,
994 })
995
996 minetest.register_craftitem(":apple", {
997         image = "apple.png",
998         on_place_on_ground = minetest.craftitem_place_item,
999         on_use = minetest.craftitem_eat(4),
1000 })
1001
1002 minetest.register_craftitem(":apple_iron", {
1003         image = "apple_iron.png",
1004         on_place_on_ground = minetest.craftitem_place_item,
1005         on_use = minetest.craftitem_eat(8),
1006 })
1007
1008 --
1009 -- Falling stuff
1010 --
1011
1012 default.register_falling_node("sand", "sand.png")
1013 default.register_falling_node("gravel", "gravel.png")
1014
1015 --
1016 -- Global callbacks
1017 --
1018
1019 function on_placenode(p, node)
1020         nodeupdate(p)
1021 end
1022 minetest.register_on_placenode(on_placenode)
1023
1024 function on_dignode(p, node)
1025         nodeupdate(p)
1026 end
1027 minetest.register_on_dignode(on_dignode)
1028
1029 -- END