Player-placed clams never drop pearls
[Pixture/pixture_revival.git] / mods / rp_default / nodes.lua
blobdca4edd17f0b58507ef4b9e4157262d85421fa46
2 --
3 -- Node definitions of simple, non-interactive nodes
4 --
6 local S = minetest.get_translator("rp_default")
8 -- Ores
10 minetest.register_node(
11 "rp_default:stone_with_sulfur",
13 description = S("Stone with Sulfur"),
14 tiles = {"default_stone.png^default_mineral_sulfur.png"},
15 groups = {cracky = 2, stone = 1, not_in_craft_guide = 1},
16 drop = "rp_default:lump_sulfur",
17 sounds = rp_sounds.node_sound_stone_defaults(),
20 minetest.register_node(
21 "rp_default:stone_with_graphite",
23 description = S("Stone with Graphite"),
24 tiles = {"default_stone.png^default_mineral_graphite.png"},
25 groups = {cracky = 2, stone = 1, not_in_craft_guide = 1},
26 drop = "rp_default:sheet_graphite",
27 sounds = rp_sounds.node_sound_stone_defaults(),
30 minetest.register_node(
31 "rp_default:stone_with_coal",
33 description = S("Stone with Coal"),
34 tiles = {"default_stone.png^default_mineral_coal.png"},
35 groups = {cracky = 2, stone = 1, not_in_craft_guide = 1},
36 drop = "rp_default:lump_coal",
37 sounds = rp_sounds.node_sound_stone_defaults(),
40 minetest.register_node(
41 "rp_default:stone_with_iron",
43 description = S("Stone with Iron"),
44 tiles = {"default_stone.png^default_mineral_iron.png"},
45 groups = {cracky = 2, stone = 1, magnetic = 1, not_in_craft_guide = 1},
46 drop = "rp_default:lump_iron",
47 sounds = rp_sounds.node_sound_stone_defaults(),
50 minetest.register_node(
51 "rp_default:stone_with_tin",
53 description = S("Stone with Tin"),
54 tiles = {"default_stone.png^default_mineral_tin.png"},
55 groups = {cracky = 1, stone = 1, not_in_craft_guide = 1},
56 drop = "rp_default:lump_tin",
57 sounds = rp_sounds.node_sound_stone_defaults(),
60 minetest.register_node(
61 "rp_default:stone_with_copper",
63 description = S("Stone with Copper"),
64 tiles = {"default_stone.png^default_mineral_copper.png"},
65 groups = {cracky = 1, stone = 1, not_in_craft_guide = 1},
66 drop = "rp_default:lump_copper",
67 sounds = rp_sounds.node_sound_stone_defaults(),
70 -- Stonelike
72 minetest.register_node(
73 "rp_default:stone",
75 description = S("Stone"),
76 tiles = {"default_stone.png"},
77 groups = {cracky = 2, stone = 1},
78 drop = "rp_default:cobble",
79 sounds = rp_sounds.node_sound_stone_defaults(),
82 minetest.register_node(
83 "rp_default:cobble",
85 description = S("Cobble"),
86 tiles = {"default_cobbles.png"},
87 stack_max = 240,
88 groups = {cracky = 3, stone = 1},
89 sounds = rp_sounds.node_sound_stone_defaults(),
90 is_ground_content = false,
93 minetest.register_node(
94 "rp_default:reinforced_cobble",
96 description = S("Reinforced Cobble"),
97 tiles = {"default_reinforced_cobbles.png"},
98 is_ground_content = false,
99 groups = {cracky = 1, stone = 1},
100 sounds = rp_sounds.node_sound_stone_defaults(),
103 minetest.register_node(
104 "rp_default:gravel",
106 description = S("Gravel"),
107 tiles = {"default_gravel.png"},
108 groups = {crumbly = 2, falling_node = 1},
109 sounds = rp_sounds.node_sound_dirt_defaults(
111 footstep = {name = "default_crunch_footstep", gain = 0.45},
115 -- Material blocks
117 minetest.register_node(
118 "rp_default:block_coal",
120 description = S("Coal Block"),
121 tiles = {"default_block_coal.png"},
122 groups = {cracky = 3, oddly_breakable_by_hand = 3},
123 sounds = rp_sounds.node_sound_wood_defaults(),
126 minetest.register_node(
127 "rp_default:block_wrought_iron",
129 description = S("Wrought Iron Block"),
130 tiles = {"default_block_wrought_iron.png"},
131 groups = {cracky = 2, magnetic = 1},
132 sounds = rp_sounds.node_sound_stone_defaults(),
133 is_ground_content = false,
136 minetest.register_node(
137 "rp_default:block_steel",
139 description = S("Steel Block"),
140 tiles = {"default_block_steel.png"},
141 groups = {cracky = 2},
142 sounds = rp_sounds.node_sound_stone_defaults(),
143 is_ground_content = false,
146 minetest.register_node(
147 "rp_default:block_carbon_steel",
149 description = S("Carbon Steel Block"),
150 tiles = {"default_block_carbon_steel.png"},
151 groups = {cracky = 1},
152 sounds = rp_sounds.node_sound_stone_defaults(),
153 is_ground_content = false,
156 minetest.register_node(
157 "rp_default:block_bronze",
159 description = S("Bronze Block"),
160 tiles = {"default_block_bronze.png"},
161 groups = {cracky = 1},
162 sounds = rp_sounds.node_sound_stone_defaults(),
163 is_ground_content = false,
166 minetest.register_node(
167 "rp_default:block_copper",
169 description = S("Copper Block"),
170 tiles = {"default_block_copper.png"},
171 groups = {cracky = 2},
172 sounds = rp_sounds.node_sound_stone_defaults(),
173 is_ground_content = false,
176 minetest.register_node(
177 "rp_default:block_tin",
179 description = S("Tin Block"),
180 tiles = {"default_block_tin.png"},
181 groups = {cracky = 2},
182 sounds = rp_sounds.node_sound_stone_defaults(),
183 is_ground_content = false,
186 -- Soil
188 minetest.register_node(
189 "rp_default:dirt",
191 description = S("Dirt"),
192 tiles = {"default_dirt.png"},
193 stack_max = 240,
194 groups = {crumbly = 3, soil = 1, dirt = 1, normal_dirt = 1, plantable_soil = 1, fall_damage_add_percent = -5},
195 sounds = rp_sounds.node_sound_dirt_defaults(),
198 minetest.register_node(
199 "rp_default:dry_dirt",
201 description = S("Dry Dirt"),
202 tiles = {"default_dry_dirt.png"},
203 stack_max = 240,
204 groups = {crumbly = 3, soil = 1, dirt = 1, dry_dirt = 1, plantable_dry = 1, fall_damage_add_percent = -10},
205 sounds = rp_sounds.node_sound_dirt_defaults(),
208 minetest.register_node(
209 "rp_default:swamp_dirt",
211 description = S("Swamp Dirt"),
212 tiles = {"default_swamp_dirt.png"},
213 stack_max = 240,
214 groups = {crumbly = 3, soil = 1, dirt = 1, swamp_dirt = 1, plantable_soil = 1, fall_damage_add_percent = -10},
215 sounds = rp_sounds.node_sound_dirt_defaults(),
218 minetest.register_node(
219 "rp_default:dirt_with_dry_grass",
221 description = S("Dirt with Dry Grass"),
222 tiles = {
223 "default_dry_grass.png",
224 "default_dirt.png",
225 "default_dirt.png^default_dry_grass_side.png"
227 groups = {crumbly = 3, soil = 1, dirt = 1, normal_dirt = 1, plantable_sandy = 1, grass_cover = 1,
228 fall_damage_add_percent = -5, not_in_craft_guide = 1},
229 drop = {
230 max_items = 3,
231 items = {
232 {items = {"rp_default:dirt"}, rarity = 1},
233 {items = {"rp_default:dry_grass 4"}, rarity = 12},
234 {items = {"rp_default:dry_grass 2"}, rarity = 6},
235 {items = {"rp_default:dry_grass 1"}, rarity = 2},
238 sounds = rp_sounds.node_sound_dirt_defaults(
240 footstep = {name = "default_soft_footstep", gain = 0.3},
244 minetest.register_node(
245 "rp_default:dirt_with_swamp_grass",
247 description = S("Swamp Dirt with Swamp Grass"),
248 tiles = {
249 "default_swamp_grass.png",
250 "default_swamp_dirt.png",
251 "default_swamp_dirt.png^default_swamp_grass_side.png"
253 groups = {crumbly = 3, soil = 1, dirt = 1, swamp_dirt = 1, plantable_soil = 1, grass_cover = 1,
254 fall_damage_add_percent = -10, not_in_craft_guide = 1},
255 drop = {
256 max_items = 3,
257 items = {
258 {items = {"rp_default:swamp_dirt"}, rarity = 1},
259 {items = {"rp_default:swamp_grass 6"}, rarity = 14},
260 {items = {"rp_default:swamp_grass 3"}, rarity = 7},
261 {items = {"rp_default:swamp_grass 2"}, rarity = 3},
264 sounds = rp_sounds.node_sound_dirt_defaults(
266 footstep = {name = "default_soft_footstep", gain = 0.5},
270 minetest.register_node(
271 "rp_default:dirt_with_grass",
273 description = S("Dirt with Grass"),
274 tiles = {
275 "default_grass.png",
276 "default_dirt.png",
277 "default_dirt.png^default_grass_side.png"
279 groups = {crumbly = 3, soil = 1, dirt = 1, normal_dirt = 1, plantable_soil = 1, grass_cover = 1,
280 fall_damage_add_percent = -5, not_in_craft_guide = 1},
281 drop = {
282 max_items = 3,
283 items = {
284 {items = {"rp_default:dirt"}, rarity = 1},
285 {items = {"rp_default:grass 10"}, rarity = 30},
286 {items = {"rp_default:grass 3"}, rarity = 9},
287 {items = {"rp_default:grass 2"}, rarity = 6},
288 {items = {"rp_default:grass 1"}, rarity = 3},
291 sounds = rp_sounds.node_sound_dirt_defaults(
293 footstep = {name = "default_soft_footstep", gain = 0.4},
297 minetest.register_node(
298 "rp_default:dirt_with_grass_footsteps",
300 description = S("Dirt with Grass and Footsteps"),
301 tiles = {"default_grass_footstep.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
302 groups = {crumbly = 3, soil = 1, dirt = 1, normal_dirt = 1, plantable_soil = 1, grass_cover = 1, fall_damage_add_percent = -5, not_in_craft_guide = 1},
303 drop = {
304 max_items = 3,
305 items = {
306 {items = {"rp_default:dirt"}, rarity = 1},
307 {items = {"rp_default:grass 10"}, rarity = 30},
308 {items = {"rp_default:grass 3"}, rarity = 9},
309 {items = {"rp_default:grass 2"}, rarity = 6},
310 {items = {"rp_default:grass 1"}, rarity = 3},
313 sounds = rp_sounds.node_sound_dirt_defaults(
315 footstep = {name = "default_soft_footstep", gain = 0.4},
319 -- Paths
321 minetest.register_node(
322 "rp_default:dirt_path",
324 description = S("Dirt Path"),
325 drawtype = "nodebox",
326 paramtype = "light",
327 node_box = {
328 type = "fixed",
329 fixed = {-0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5}
331 tiles = {"default_dirt.png"},
332 groups = {crumbly = 3, path = 1, fall_damage_add_percent = -10},
333 is_ground_content = false,
334 sounds = rp_sounds.node_sound_dirt_defaults(),
337 minetest.register_node(
338 "rp_default:path_slab",
340 description = S("Dirt Path Slab"),
341 drawtype = "nodebox",
342 paramtype = "light",
343 node_box = {
344 type = "fixed",
345 fixed = {-0.5, -0.5, -0.5, 0.5, -2/16, 0.5}
347 tiles = {"default_dirt.png"},
348 groups = {crumbly = 3, slab = 2, fall_damage_add_percent = -10},
349 is_ground_content = false,
350 sounds = rp_sounds.node_sound_dirt_defaults(),
353 minetest.register_node(
354 "rp_default:heated_dirt_path",
356 description = S("Glowing Dirt Path"),
357 drawtype = "nodebox",
358 paramtype = "light",
359 light_source = 6,
360 node_box = {
361 type = "fixed",
362 fixed = {-0.5, -0.5, -0.5, 0.5, 0.5-2/16, 0.5}
364 tiles = {"default_dirt.png"},
365 groups = {crumbly = 3, path = 1, fall_damage_add_percent = -10},
366 is_ground_content = false,
367 sounds = rp_sounds.node_sound_dirt_defaults(),
370 -- Brick
372 minetest.register_node(
373 "rp_default:brick",
375 description = S("Brick Block"),
376 tiles = {"default_brick.png"},
377 is_ground_content = false,
378 groups = {cracky = 2},
379 sounds = rp_sounds.node_sound_stone_defaults(),
382 -- Sand
384 minetest.register_node(
385 "rp_default:sand",
387 description = S("Sand"),
388 tiles = {"default_sand.png"},
389 groups = {crumbly = 3, falling_node = 1, sand = 1, plantable_sandy = 1, fall_damage_add_percent = -10},
390 sounds = rp_sounds.node_sound_sand_defaults(),
393 minetest.register_node(
394 "rp_default:sandstone",
396 description = S("Sandstone"),
397 tiles = {"default_sandstone.png"},
398 groups = {crumbly = 2, cracky = 3, sandstone = 1},
399 drop = "rp_default:sand 2",
400 sounds = rp_sounds.node_sound_stone_defaults(),
403 minetest.register_node(
404 "rp_default:compressed_sandstone",
406 description = S("Compressed Sandstone"),
407 tiles = {"default_compressed_sandstone_top.png", "default_compressed_sandstone_top.png", "default_compressed_sandstone.png"},
408 groups = {cracky = 2, sandstone = 1},
409 is_ground_content = false,
410 sounds = rp_sounds.node_sound_stone_defaults(),
413 -- Saplings
415 minetest.register_node(
416 "rp_default:sapling",
418 description = S("Sapling"),
419 _tt_help = S("Grows into an apple tree"),
420 drawtype = "plantlike",
421 tiles = {"default_sapling.png"},
422 inventory_image = "default_sapling_inventory.png",
423 wield_image = "default_sapling_inventory.png",
424 paramtype = "light",
425 walkable = false,
426 floodable = true,
427 selection_box = {
428 type = "fixed",
429 fixed = {-0.4, -0.5, -0.4, 0.4, 0.4, 0.4},
431 groups = {snappy = 2, handy = 1, attached_node = 1, plant = 1, sapling = 1},
432 is_ground_content = false,
433 sounds = rp_sounds.node_sound_defaults(),
435 on_timer = function(pos)
436 default.grow_sapling(pos)
437 end,
439 on_construct = function(pos)
440 default.begin_growing_sapling(pos)
441 end,
443 on_place = default.place_sapling,
446 minetest.register_node(
447 "rp_default:sapling_oak",
449 description = S("Oak Sapling"),
450 _tt_help = S("Grows into an oak tree"),
451 drawtype = "plantlike",
452 tiles = {"default_sapling_oak.png"},
453 inventory_image = "default_sapling_oak_inventory.png",
454 wield_image = "default_sapling_oak_inventory.png",
455 paramtype = "light",
456 walkable = false,
457 floodable = true,
458 selection_box = {
459 type = "fixed",
460 fixed = {-0.4, -0.5, -0.4, 0.4, 0.4, 0.4},
462 groups = {snappy = 2, handy = 1, attached_node = 1, plant = 1, sapling = 1},
463 sounds = rp_sounds.node_sound_defaults(),
465 on_timer = function(pos)
466 default.grow_sapling(pos)
467 end,
469 on_construct = function(pos)
470 default.begin_growing_sapling(pos)
471 end,
473 on_place = default.place_sapling,
476 minetest.register_node(
477 "rp_default:sapling_birch",
479 description = S("Birch Sapling"),
480 _tt_help = S("Grows into a birch tree"),
481 drawtype = "plantlike",
482 tiles = {"default_sapling_birch.png"},
483 inventory_image = "default_sapling_birch_inventory.png",
484 wield_image = "default_sapling_birch_inventory.png",
485 paramtype = "light",
486 walkable = false,
487 floodable = true,
488 selection_box = {
489 type = "fixed",
490 fixed = {-0.4, -0.5, -0.4, 0.4, 0.4, 0.4},
492 groups = {snappy = 2, handy = 1, attached_node = 1, plant = 1, sapling = 1},
493 is_ground_content = false,
494 sounds = rp_sounds.node_sound_defaults(),
496 on_timer = function(pos)
497 default.grow_sapling(pos)
498 end,
500 on_construct = function(pos)
501 default.begin_growing_sapling(pos)
502 end,
504 on_place = default.place_sapling,
507 minetest.register_node(
508 "rp_default:sapling_dry_bush",
510 description = S("Dry Bush Sapling"),
511 _tt_help = S("Grows into a dry bush"),
512 drawtype = "plantlike",
513 tiles = {"default_sapling_dry_bush.png"},
514 inventory_image = "default_sapling_dry_bush_inventory.png",
515 wield_image = "default_sapling_dry_bush_inventory.png",
516 paramtype = "light",
517 walkable = false,
518 floodable = true,
519 selection_box = {
520 type = "fixed",
521 fixed = {-0.4, -0.5, -0.4, 0.4, 0.4, 0.4},
523 groups = {snappy = 2, handy = 1, attached_node = 1, plant = 1, sapling = 1},
524 is_ground_content = false,
525 sounds = rp_sounds.node_sound_defaults(),
527 on_timer = function(pos)
528 default.grow_sapling(pos)
529 end,
531 on_construct = function(pos)
532 default.begin_growing_sapling(pos)
533 end,
535 on_place = default.place_sapling,
540 -- Trees
542 minetest.register_node(
543 "rp_default:tree",
545 description = S("Tree"),
546 tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
547 groups = {choppy = 2,tree = 1,oddly_breakable_by_hand = 1},
548 sounds = rp_sounds.node_sound_wood_defaults(),
551 minetest.register_node(
552 "rp_default:tree_oak",
554 description = S("Oak Tree"),
555 tiles = {"default_tree_oak_top.png", "default_tree_oak_top.png", "default_tree_oak.png"},
556 groups = {choppy = 1, tree = 1, oddly_breakable_by_hand = 1},
557 sounds = rp_sounds.node_sound_wood_defaults(),
560 minetest.register_node(
561 "rp_default:tree_birch",
563 description = S("Birch Tree"),
564 tiles = {"default_tree_birch_top.png", "default_tree_birch_top.png", "default_tree_birch.png"},
565 groups = {choppy = 2, tree = 1, oddly_breakable_by_hand = 1},
566 sounds = rp_sounds.node_sound_wood_defaults(),
569 -- Leaves
571 minetest.register_node(
572 "rp_default:leaves",
574 description = S("Leaves"),
575 _tt_help = S("Decays when not near a tree block"),
576 drawtype = "allfaces_optional",
577 tiles = {"default_leaves.png"},
578 paramtype = "light",
579 waving = 1,
580 groups = {snappy = 3, leafdecay = 3, fall_damage_add_percent = -10, leaves = 1, lush_leaves = 1},
581 drop = {
582 max_items = 1,
583 items = {
585 items = {"rp_default:sapling"},
586 rarity = 10,
589 items = {"rp_default:leaves"},
593 sounds = rp_sounds.node_sound_leaves_defaults(),
596 minetest.register_node(
597 "rp_default:leaves_oak",
599 description = S("Oak Leaves"),
600 _tt_help = S("Decays when not near a tree block"),
601 drawtype = "allfaces_optional",
602 tiles = {"default_leaves_oak.png"},
603 paramtype = "light",
604 waving = 1,
605 groups = {snappy = 3, leafdecay = 4, fall_damage_add_percent = -5, leaves = 1, lush_leaves = 1},
606 drop = {
607 max_items = 1,
608 items = {
610 items = {"rp_default:sapling_oak"},
611 rarity = 10,
614 items = {"rp_default:leaves_oak"},
618 sounds = rp_sounds.node_sound_leaves_defaults(),
621 minetest.register_node(
622 "rp_default:leaves_birch",
624 description = S("Birch Leaves"),
625 _tt_help = S("Decays when not near a tree block"),
626 drawtype = "allfaces_optional",
627 tiles = {"default_leaves_birch.png"},
628 paramtype = "light",
629 waving = 1,
630 groups = {snappy = 3, leafdecay = 6, fall_damage_add_percent = -5, leaves = 1, lush_leaves = 1},
631 drop = {
632 max_items = 1,
633 items = {
635 items = {"rp_default:sapling_birch"},
636 rarity = 10,
639 items = {"rp_default:leaves_birch"},
643 sounds = rp_sounds.node_sound_leaves_defaults(),
646 minetest.register_node(
647 "rp_default:dry_leaves",
649 description = S("Dry Leaves"),
650 _tt_help = S("Decays when not near a tree block"),
651 drawtype = "allfaces_optional",
652 tiles = {"default_dry_leaves.png"},
653 paramtype = "light",
654 waving = 1,
655 groups = {snappy = 3, leafdecay = 3, fall_damage_add_percent = -20, leaves = 1, dry_leaves = 1},
656 drop = {
657 max_items = 1,
658 items = {
660 items = {"rp_default:sapling_dry_bush"},
661 rarity = 15,
664 items = {"rp_default:dry_leaves"},
668 sounds = rp_sounds.node_sound_leaves_defaults(),
671 -- Cacti
673 minetest.register_node(
674 "rp_default:cactus",
676 description = S("Cactus"),
677 _tt_help = S("Grows on sand"),
678 _tt_food = true,
679 _tt_food_hp = 2,
680 _tt_food_satiation = 5,
681 drawtype = "nodebox",
682 paramtype = "light",
683 node_box = {
684 type = "fixed",
685 fixed = {
686 {-0.5+(1/8), -0.5, -0.5+(1/8), 0.5-(1/8), 0.5, 0.5-(1/8)},
687 {-0.5, -0.5, -0.5+(1/3), 0.5, 0.5-(1/3), 0.5-(1/3)},
688 {-0.5+(1/3), -0.5, -0.5, 0.5-(1/3), 0.5-(1/3), 0.5},
691 selection_box = {
692 type = "fixed",
693 fixed = {
694 {-0.5+(1/8), -0.5, -0.5+(1/8), 0.5-(1/8), 0.5, 0.5-(1/8)},
697 tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_sides.png"},
698 -- damage_per_second = 1,
699 groups = {snappy = 2, choppy = 2, fall_damage_add_percent = 20, plant = 1, food = 2},
700 sounds = rp_sounds.node_sound_wood_defaults(),
701 after_dig_node = function(pos, node, metadata, digger)
702 util.dig_up(pos, node, digger)
703 end,
704 on_use = minetest.item_eat({hp = 2, sat = 5}),
707 -- Rope
709 minetest.register_node(
710 "rp_default:rope",
712 description = S("Rope"),
713 drawtype = "nodebox",
714 tiles = {"default_rope.png"},
715 inventory_image = "default_rope_inventory.png",
716 wield_image = "default_rope_inventory.png",
717 paramtype = "light",
718 walkable = false,
719 climbable = true,
720 sunlight_propagates = true,
721 node_box = {
722 type = "fixed",
723 fixed = {-1/16, -0.5, -1/16, 1/16, 0.5, 1/16},
725 groups = {snappy = 3},
726 is_ground_content = false,
727 sounds = rp_sounds.node_sound_leaves_defaults(),
728 after_dig_node = function(pos, node, metadata, digger)
729 util.dig_down(pos, node, digger)
730 end,
733 -- Papyrus
735 minetest.register_node(
736 "rp_default:papyrus",
738 description = S("Papyrus"),
739 _tt_help = S("Grows on sand or dirt near water"),
740 drawtype = "nodebox",
741 tiles = {"default_papyrus_repixture.png"},
742 use_texture_alpha = "clip",
743 inventory_image = "default_papyrus_inventory.png",
744 wield_image = "default_papyrus_inventory.png",
745 paramtype = "light",
746 walkable = false,
747 climbable = true,
748 selection_box = {
749 type = "fixed",
750 fixed = {-0.5+(2/16), -0.5, -0.5+(2/16), 0.5-(2/16), 0.5, 0.5-(2/16)}
752 node_box = {
753 type = "fixed",
754 fixed = {
755 {-0.5+(2/16), -0.5, -0.5+(2/16), -0.5+(4/16), 0.5, -0.5+(4/16)},
756 {0.5-(2/16), -0.5, -0.5+(2/16), 0.5-(4/16), 0.5, -0.5+(4/16)},
757 {-0.5+(2/16), -0.5, 0.5-(2/16), -0.5+(4/16), 0.5, 0.5-(4/16)},
758 {0.5-(2/16), -0.5, 0.5-(2/16), 0.5-(4/16), 0.5, 0.5-(4/16)},
759 {-1/16, -0.5, -1/16, 1/16, 0.5, 1/16},
762 groups = {snappy = 3, plant = 1},
763 sounds = rp_sounds.node_sound_leaves_defaults(),
764 after_dig_node = function(pos, node, metadata, digger)
765 util.dig_up(pos, node, digger)
766 end,
769 -- Glass
771 minetest.register_node(
772 "rp_default:glass",
774 description = S("Glass"),
775 drawtype = "glasslike_framed_optional",
776 tiles = {"default_glass_frame.png", "default_glass.png"},
777 paramtype = "light",
778 sunlight_propagates = true,
779 groups = {snappy = 2,cracky = 3,oddly_breakable_by_hand = 2, glass=1},
780 is_ground_content = false,
781 sounds = rp_sounds.node_sound_glass_defaults(),
784 -- Planks
786 minetest.register_node(
787 "rp_default:planks",
789 description = S("Wooden Planks"),
790 tiles = {"default_wood.png"},
791 groups = {planks = 1, wood = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 3},
792 is_ground_content = false,
793 sounds = rp_sounds.node_sound_wood_defaults(),
796 minetest.register_node(
797 "rp_default:planks_oak",
799 description = S("Oak Planks"),
800 tiles = {"default_wood_oak.png"},
801 groups = {planks = 1, wood = 1, snappy = 2, choppy = 2, oddly_breakable_by_hand = 3},
802 is_ground_content = false,
803 sounds = rp_sounds.node_sound_wood_defaults(),
806 minetest.register_node(
807 "rp_default:planks_birch",
809 description = S("Birch Planks"),
810 tiles = {"default_wood_birch.png"},
811 groups = {planks = 1, wood = 1, snappy = 2, choppy = 2, oddly_breakable_by_hand = 2},
812 is_ground_content = false,
813 sounds = rp_sounds.node_sound_wood_defaults(),
816 -- Frames
818 minetest.register_node(
819 "rp_default:frame",
821 description = S("Frame"),
822 tiles = {"default_frame.png"},
823 groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1},
824 is_ground_content = false,
825 sounds = rp_sounds.node_sound_wood_defaults(),
828 minetest.register_node(
829 "rp_default:reinforced_frame",
831 description = S("Reinforced Frame"),
832 tiles = {"default_reinforced_frame.png"},
833 groups = {wood = 1, choppy = 1},
834 is_ground_content = false,
835 sounds = rp_sounds.node_sound_wood_defaults(),
838 -- Reed
839 minetest.register_node(
840 "rp_default:reed_block",
842 description = S("Reed Block"),
843 tiles = {
844 "rp_default_reed_block_top.png",
845 "rp_default_reed_block_top.png",
846 "rp_default_reed_block_side.png",
848 groups = {snappy=2, fall_damage_add_percent=-10},
849 is_ground_content = false,
850 sounds = rp_sounds.node_sound_leaves_defaults(),
852 minetest.register_node(
853 "rp_default:dried_reed_block",
855 description = S("Dried Reed Block"),
856 tiles = {
857 "rp_default_dried_reed_block_top.png",
858 "rp_default_dried_reed_block_top.png",
859 "rp_default_dried_reed_block_side.png",
861 groups = {snappy=2, fall_damage_add_percent=-15},
862 is_ground_content = false,
863 sounds = rp_sounds.node_sound_leaves_defaults(),
866 -- Fern
868 minetest.register_node(
869 "rp_default:fern",
871 description = S("Fern"),
872 drawtype = "plantlike",
873 selection_box = {
874 type = "fixed",
875 fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
877 visual_scale = 1.15,
878 tiles = {"default_fern.png"},
879 inventory_image = "default_fern_inventory.png",
880 wield_image = "default_fern_inventory.png",
881 paramtype = "light",
882 waving = 1,
883 walkable = false,
884 buildable_to = true,
885 floodable = true,
886 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, fern = 1, plant = 1},
887 sounds = rp_sounds.node_sound_leaves_defaults(),
890 -- Flowers
892 minetest.register_node(
893 "rp_default:flower",
895 description = S("Flower"),
896 _tt_help = S("It looks beautiful"),
897 drawtype = "nodebox",
898 node_box = {
899 type = "fixed",
900 fixed = {-0.5, -0.5, -0.5, 0.5, -0.5 + (1 / 16), 0.5}
902 tiles = {"default_flowers.png", "default_flowers.png^[transformFY", "blank.png"},
903 use_texture_alpha = "clip",
904 inventory_image = "default_flowers_inventory.png",
905 wield_image = "default_flowers_inventory.png",
906 paramtype = "light",
907 sunlight_propagates = true,
908 walkable = false,
909 buildable_to = true,
910 floodable = true,
911 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, flower = 1, plant = 1},
912 sounds = rp_sounds.node_sound_leaves_defaults(),
915 -- Grasses
917 minetest.register_node(
918 "rp_default:swamp_grass",
920 description = S("Swamp Grass Clump"),
921 drawtype = "plantlike",
922 selection_box = {
923 type = "fixed",
924 fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
926 visual_scale = 1.15,
927 tiles = {"default_swamp_grass_clump.png"},
928 inventory_image = "default_swamp_grass_clump_inventory.png",
929 wield_image = "default_swamp_grass_clump_inventory.png",
930 paramtype = "light",
931 waving = 1,
932 walkable = false,
933 buildable_to = true,
934 floodable = true,
935 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, grass = 1, swamp_grass = 1, green_grass = 1, plant = 1},
936 sounds = rp_sounds.node_sound_leaves_defaults(),
939 minetest.register_node(
940 "rp_default:dry_grass",
942 description = S("Dry Grass Clump"),
943 drawtype = "plantlike",
944 selection_box = {
945 type = "fixed",
946 fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
948 visual_scale = 1.15,
949 tiles = {"default_dry_grass_clump.png"},
950 inventory_image = "default_dry_grass_clump_inventory.png",
951 wield_image = "default_dry_grass_clump_inventory.png",
952 paramtype = "light",
953 waving = 1,
954 walkable = false,
955 buildable_to = true,
956 floodable = true,
957 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, grass = 1, dry_grass = 1, plant = 1},
958 sounds = rp_sounds.node_sound_leaves_defaults(),
961 minetest.register_node(
962 "rp_default:grass",
964 description = S("Grass Clump"),
965 drawtype = "plantlike",
966 selection_box = {
967 type = "fixed",
968 fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}
970 visual_scale = 1.15,
971 tiles = {"default_grass_clump.png"},
972 inventory_image = "default_grass_clump_inventory.png",
973 wield_image = "default_grass_clump_inventory.png",
974 paramtype = "light",
975 waving = 1,
976 walkable = false,
977 buildable_to = true,
978 floodable = true,
979 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, grass = 1, normal_grass = 1, green_grass = 1, plant = 1},
980 sounds = rp_sounds.node_sound_leaves_defaults(),
983 minetest.register_node(
984 "rp_default:tall_grass",
986 description = S("Tall Grass Clump"),
987 drawtype = "plantlike",
988 selection_box = {
989 type = "fixed",
990 fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
992 visual_scale = 1.15,
993 tiles = {"default_grass_clump_tall.png"},
994 inventory_image = "default_grass_clump_tall_inventory.png",
995 wield_image = "default_grass_clump_tall_inventory.png",
996 drop = "rp_default:grass",
997 paramtype = "light",
998 waving = 1,
999 walkable = false,
1000 buildable_to = true,
1001 floodable = true,
1002 groups = {snappy = 2, dig_immediate = 3, attached_node = 1, grass = 1, normal_grass = 1, green_grass = 1, plant = 1},
1003 sounds = rp_sounds.node_sound_leaves_defaults(),
1004 -- Trim tall grass with shears
1005 _on_trim = function(pos, node, player, itemstack)
1006 -- This turns it to a normal grass clump and drops one bonus grass clump
1007 minetest.sound_play({name = "default_shears_cut", gain = 0.5}, {pos = player:get_pos(), max_hear_distance = 8}, true)
1008 minetest.set_node(pos, {name = "rp_default:grass"})
1010 item_drop.drop_item(pos, "rp_default:grass")
1012 -- Add wear
1013 if not minetest.is_creative_enabled(player:get_player_name()) then
1014 local def = itemstack:get_definition()
1015 itemstack:add_wear(math.ceil(65536 / def.tool_capabilities.groupcaps.snappy.uses))
1017 return itemstack
1018 end,
1021 -- Thistle
1023 minetest.register_node(
1024 "rp_default:thistle",
1026 description = S("Thistle"),
1027 _tt_help = S("Careful, it stings!"),
1028 drawtype = "plantlike",
1029 selection_box = {
1030 type = "fixed",
1031 fixed = {-6/16, -0.5, -6/16, 6/16, 0.5, 6/16}
1033 tiles = {"default_thistle.png"},
1034 inventory_image = "default_thistle_inventory.png",
1035 wield_image = "default_thistle_inventory.png",
1036 paramtype = "light",
1037 walkable = false,
1038 floodable = true,
1039 damage_per_second = 1,
1040 groups = {snappy = 3, dig_immediate = 3, falling_node = 1, plant = 1},
1041 sounds = rp_sounds.node_sound_leaves_defaults(),
1042 after_dig_node = function(pos, node, metadata, digger)
1043 util.dig_up(pos, node, digger)
1044 end,
1045 on_flood = function(pos, oldnode, newnode)
1046 util.dig_up(pos, oldnode)
1047 end,
1050 -- Food
1052 minetest.register_node(
1053 "rp_default:apple",
1055 description = S("Apple"),
1056 _tt_food = true,
1057 _tt_food_hp = 2,
1058 _tt_food_satiation = 10,
1059 drawtype = "nodebox",
1060 tiles = {"default_apple_top.png", "default_apple_bottom.png", "default_apple_side.png"},
1061 use_texture_alpha = "clip",
1062 inventory_image = "default_apple.png",
1063 wield_image = "default_apple.png",
1064 paramtype = "light",
1065 node_box = {
1066 type = "fixed",
1067 fixed = {
1068 {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
1069 {-1/8, 0.25, -1/8, 1/8, 0.5, 1/8},
1072 sunlight_propagates = true,
1073 walkable = false,
1074 floodable = true,
1075 groups = {snappy = 3, handy = 2, leafdecay = 3, leafdecay_drop = 1, food = 2},
1076 on_use = minetest.item_eat({hp = 2, sat = 10}),
1077 sounds = rp_sounds.node_sound_defaults(),
1080 minetest.register_node(
1081 "rp_default:clam",
1083 description = S("Clam"),
1084 _tt_food = true,
1085 _tt_food_hp = 4,
1086 _tt_food_satiation = 40,
1087 drawtype = "nodebox",
1088 tiles = {"default_clam.png"},
1089 use_texture_alpha = "clip",
1090 inventory_image = "default_clam_inventory.png",
1091 wield_image = "default_clam_inventory.png",
1092 paramtype = "light",
1093 node_box = {
1094 type = "fixed",
1095 fixed = {
1096 {-3/16, -0.5, -3/16, 3/16, -6/16, 3/16},
1099 sunlight_propagates = true,
1100 walkable = false,
1101 floodable = true,
1102 drop = {
1103 max_items = 3,
1104 items = {
1105 {items = {"rp_default:clam"}, rarity = 1},
1106 {items = {"rp_default:pearl"}, rarity = 60},
1107 {items = {"rp_default:pearl"}, rarity = 20},
1110 groups = {fleshy = 3, oddly_breakable_by_hand = 2, choppy = 3, attached_node = 1, food = 2},
1111 on_use = minetest.item_eat({hp = 4, sat = 40}),
1112 sounds = rp_sounds.node_sound_defaults(),
1114 -- Place node as the 'nopearl' clam to make sure the player can't
1115 -- place the same clam over and over again to farm pearls.
1116 node_placement_prediction = "rp_default:clam_nopearl",
1117 after_place_node = function(pos, placer, itemstack, pointed_thing)
1118 minetest.set_node(pos, {name="rp_default:clam_nopearl"})
1119 end,
1122 -- Same as clam, except it never drops pearls.
1123 -- To be used as node only, not for player inventory.
1124 minetest.register_node(
1125 "rp_default:clam_nopearl",
1127 drawtype = "nodebox",
1128 tiles = {"default_clam.png"},
1129 use_texture_alpha = "clip",
1130 inventory_image = "default_clam_inventory.png^default_clam_nopearl_overlay.png",
1131 wield_image = "default_clam_inventory.png",
1132 paramtype = "light",
1133 node_box = {
1134 type = "fixed",
1135 fixed = {
1136 {-3/16, -0.5, -3/16, 3/16, -6/16, 3/16},
1139 drop = "rp_default:clam",
1140 sunlight_propagates = true,
1141 walkable = false,
1142 floodable = true,
1143 groups = {fleshy = 3, oddly_breakable_by_hand = 2, choppy = 3, attached_node = 1, not_in_creative_inventory = 1},
1144 sounds = rp_sounds.node_sound_defaults(),
1148 -- Water
1150 minetest.register_node(
1151 "rp_default:water_flowing",
1153 description = S("Flowing Water"),
1154 drawtype = "flowingliquid",
1155 tiles = {"default_water.png"},
1156 special_tiles = {
1158 name = "default_water_animated.png",
1159 backface_culling = false,
1160 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.8}
1163 name = "default_water_animated.png",
1164 backface_culling = false,
1165 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.8}
1168 use_texture_alpha = "blend",
1169 drop = "",
1170 paramtype = "light",
1171 walkable = false,
1172 pointable = false,
1173 diggable = false,
1174 buildable_to = true,
1175 drowning = 1,
1176 is_ground_content = true,
1177 liquidtype = "flowing",
1178 liquid_alternative_flowing = "rp_default:water_flowing",
1179 liquid_alternative_source = "rp_default:water_source",
1180 liquid_viscosity = default.WATER_VISC,
1181 post_effect_color = {a = 90, r = 40, g = 40, b = 100},
1182 groups = {water = 1, flowing_water = 1, liquid = 1, not_in_creative_inventory=1,},
1183 sounds = rp_sounds.node_sound_water_defaults(),
1186 minetest.register_node(
1187 "rp_default:water_source",
1189 description = S("Water Source"),
1190 drawtype = "liquid",
1191 tiles = {
1193 name = "default_water.png",
1194 backface_culling = false,
1197 name = "default_water.png",
1198 backface_culling = false,
1201 use_texture_alpha = "blend",
1202 drop = "",
1203 paramtype = "light",
1204 walkable = false,
1205 pointable = false,
1206 diggable = false,
1207 buildable_to = true,
1208 drowning = 1,
1209 is_ground_content = true,
1210 liquidtype = "source",
1211 liquid_alternative_flowing = "rp_default:water_flowing",
1212 liquid_alternative_source = "rp_default:water_source",
1213 liquid_viscosity = default.WATER_VISC,
1214 post_effect_color = {a=90, r=40, g=40, b=100},
1215 groups = {water=1, liquid=1},
1216 sounds = rp_sounds.node_sound_water_defaults(),
1219 minetest.register_node(
1220 "rp_default:river_water_flowing",
1222 description = S("Flowing River Water"),
1223 drawtype = "flowingliquid",
1224 tiles = {"default_river_water.png"},
1225 special_tiles = {
1227 name = "default_river_water_animated.png",
1228 backface_culling = false,
1229 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.8}
1232 name = "default_river_water_animated.png",
1233 backface_culling = false,
1234 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 0.8}
1237 use_texture_alpha = "blend",
1238 drop= "",
1239 paramtype = "light",
1240 walkable = false,
1241 pointable = false,
1242 diggable = false,
1243 buildable_to = true,
1244 drowning = 2,
1245 is_ground_content = true,
1246 liquidtype = "flowing",
1247 liquid_alternative_flowing = "rp_default:river_water_flowing",
1248 liquid_alternative_source = "rp_default:river_water_source",
1249 liquid_viscosity = default.RIVER_WATER_VISC,
1250 liquid_renewable = false,
1251 liquid_range = 1,
1252 post_effect_color = {a=40, r=40, g=70, b=100},
1253 groups = {water=1, flowing_water = 1, river_water = 1, liquid=1, not_in_creative_inventory=1,},
1254 sounds = rp_sounds.node_sound_water_defaults(),
1257 minetest.register_node(
1258 "rp_default:river_water_source",
1260 description = S("River Water Source"),
1261 drawtype = "liquid",
1262 tiles = {
1264 name = "default_river_water.png",
1265 backface_culling = false,
1268 name = "default_river_water.png",
1269 backface_culling = false,
1273 use_texture_alpha = "blend",
1274 drop= "",
1275 paramtype = "light",
1276 walkable = false,
1277 pointable = false,
1278 diggable = false,
1279 buildable_to = true,
1280 drowning = 2,
1281 is_ground_content = true,
1282 liquidtype = "source",
1283 liquid_alternative_flowing = "rp_default:river_water_flowing",
1284 liquid_alternative_source = "rp_default:river_water_source",
1285 liquid_viscosity = default.RIVER_WATER_VISC,
1286 liquid_renewable = false,
1287 liquid_range = 1,
1288 post_effect_color = {a=40, r=40, g=70, b=100},
1289 groups = {water = 1, river_water = 1, liquid = 1},
1290 sounds = rp_sounds.node_sound_water_defaults(),
1293 minetest.register_node(
1294 "rp_default:swamp_water_flowing",
1296 description = S("Flowing Swamp Water"),
1297 drawtype = "flowingliquid",
1298 tiles = {"default_swamp_water.png"},
1299 special_tiles = {
1301 name = "default_swamp_water_animated.png",
1302 backface_culling = false,
1303 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.8}
1306 name = "default_swamp_water_animated.png",
1307 backface_culling = false,
1308 animation = {type = "vertical_frames", aspect_w= 16, aspect_h = 16, length = 1.8}
1311 use_texture_alpha = "blend",
1312 drop= "",
1313 paramtype = "light",
1314 walkable = false,
1315 pointable = false,
1316 diggable = false,
1317 buildable_to = true,
1318 drowning = 3,
1319 is_ground_content = true,
1320 liquidtype = "flowing",
1321 liquid_alternative_flowing = "rp_default:swamp_water_flowing",
1322 liquid_alternative_source = "rp_default:swamp_water_source",
1323 liquid_viscosity = default.SWAMP_WATER_VISC,
1324 liquid_renewable = false,
1325 liquid_range = 2,
1326 post_effect_color = {a=220, r=50, g=40, b=70},
1327 groups = {water=1, flowing_water = 1, swamp_water = 1, liquid=1, not_in_creative_inventory=1,},
1328 sounds = rp_sounds.node_sound_water_defaults(),
1331 minetest.register_node(
1332 "rp_default:swamp_water_source",
1334 description = S("Swamp Water Source"),
1335 drawtype = "liquid",
1336 tiles = {
1338 name = "default_swamp_water.png",
1339 backface_culling = false,
1342 name = "default_swamp_water.png",
1343 backface_culling = false,
1346 use_texture_alpha = "blend",
1347 drop= "",
1348 paramtype = "light",
1349 walkable = false,
1350 pointable = false,
1351 diggable = false,
1352 buildable_to = true,
1353 drowning = 3,
1354 is_ground_content = true,
1355 liquidtype = "source",
1356 liquid_alternative_flowing = "rp_default:swamp_water_flowing",
1357 liquid_alternative_source = "rp_default:swamp_water_source",
1358 liquid_viscosity = default.SWAMP_WATER_VISC,
1359 liquid_renewable = false,
1360 liquid_range = 2,
1361 post_effect_color = {a=220, r=50, g=40, b=70},
1362 groups = {water = 1, swamp_water = 1, liquid = 1},
1363 sounds = rp_sounds.node_sound_water_defaults(),