ladders.lua 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. local S = minetest.get_translator("mtg_plus")
  2. local metal_sounds, wood_sounds
  3. if default.node_sound_metal_defaults then
  4. metal_sounds = default.node_sound_metal_defaults()
  5. else
  6. metal_sounds = default.node_sound_stone_defaults()
  7. end
  8. wood_sounds = default.node_sound_wood_defaults()
  9. -- Ladders
  10. minetest.register_node("mtg_plus:ladder_papyrus", {
  11. description = S("Papyrus Ladder"),
  12. _doc_items_longdesc = S("A particulary strong piece of ladder which allows you to move vertically."),
  13. drawtype = "signlike",
  14. tiles = {"mtg_plus_ladder_papyrus.png"},
  15. inventory_image = "mtg_plus_ladder_papyrus.png",
  16. wield_image = "mtg_plus_ladder_papyrus.png",
  17. paramtype = "light",
  18. paramtype2 = "wallmounted",
  19. sunlight_propagates = true,
  20. walkable = false,
  21. climbable = true,
  22. is_ground_content = false,
  23. selection_box = { type = "wallmounted", },
  24. groups = { snappy = 2, choppy = 1, flammable = 2 },
  25. sounds = default.node_sound_leaves_defaults(),
  26. })
  27. minetest.register_craft({
  28. output = "mtg_plus:ladder_papyrus 2",
  29. recipe = { {"default:papyrus", "", "default:papyrus"},
  30. {"farming:string", "default:papyrus", "farming:string"},
  31. {"default:papyrus", "", "default:papyrus"}},
  32. })
  33. minetest.register_craft({
  34. type = "fuel",
  35. recipe = "mtg_plus:ladder_papyrus",
  36. burntime = 2,
  37. })
  38. local simple_ladders = {
  39. { "gold", "metal", S("Golden Ladder"), "default:gold_ingot", { cracky = 3 }, true },
  40. { "bronze", "metal", S("Bronze Ladder"), "default:bronze_ingot", { cracky = 2 } },
  41. { "copper", "metal", S("Copper Ladder"), "default:copper_ingot", { cracky = 2 } },
  42. { "tin", "metal", S("Tin Ladder"), "default:tin_ingot", { cracky = 2 } },
  43. { "aspen_wood", "wood", S("Aspen Wood Ladder"), "default:aspen_wood", { choppy = 3, flammable = 1 }, nil, 5 },
  44. { "acacia_wood", "wood", S("Acacia Wood Ladder"), "default:acacia_wood", { choppy = 3, flammable = 1 }, nil, 8 },
  45. { "pine_wood", "wood", S("Pine Wood Ladder"), "default:pine_wood", { choppy = 3, flammable = 1 }, nil, 6 },
  46. { "junglewood", "wood", S("Jungle Wood Ladder"), "default:junglewood", { choppy = 3, flammable = 1 }, nil, 9 },
  47. { "goldwood", "wood", S("Goldwood Ladder"), "mtg_plus:goldwood", { choppy = 2 }, true },
  48. }
  49. for m=1, #simple_ladders do
  50. local ladder = simple_ladders[m]
  51. local longdesc
  52. if ladder[6] then
  53. longdesc = S("A luxurious piece of ladder which allows you to move vertically.")
  54. else
  55. longdesc = S("A piece of ladder which allows you to move vertically.")
  56. end
  57. if ladder[2] == "metal" then
  58. sounds = metal_sounds
  59. else
  60. sounds = wood_sounds
  61. end
  62. minetest.register_node("mtg_plus:ladder_"..ladder[1], {
  63. description = ladder[3],
  64. _doc_items_longdesc = longdesc,
  65. drawtype = "signlike",
  66. tiles = {"mtg_plus_ladder_"..ladder[1]..".png"},
  67. inventory_image = "mtg_plus_ladder_"..ladder[1]..".png",
  68. wield_image = "mtg_plus_ladder_"..ladder[1]..".png",
  69. paramtype = "light",
  70. paramtype2 = "wallmounted",
  71. sunlight_propagates = true,
  72. walkable = false,
  73. climbable = true,
  74. is_ground_content = false,
  75. selection_box = { type = "wallmounted", },
  76. groups = ladder[5],
  77. sounds = sounds,
  78. })
  79. if ladder[2] == "metal" then
  80. minetest.register_craft({
  81. output = "mtg_plus:ladder_"..ladder[1].." 15",
  82. recipe = {
  83. {ladder[4], "", ladder[4]},
  84. {ladder[4], ladder[4], ladder[4]},
  85. {ladder[4], "", ladder[4]},
  86. },
  87. })
  88. else
  89. minetest.register_craft({
  90. output = "mtg_plus:ladder_"..ladder[1].." 9",
  91. recipe = {
  92. {"group:stick", "", "group:stick"},
  93. {"group:stick", ladder[4], "group:stick"},
  94. {"group:stick", "", "group:stick"},
  95. },
  96. })
  97. if ladder[7] ~= nil then
  98. minetest.register_craft({
  99. type = "fuel",
  100. recipe = "mtg_plus:ladder_"..ladder[1],
  101. burntime = ladder[7],
  102. })
  103. end
  104. end
  105. end
  106. -- Tweak the default ladder
  107. minetest.override_item("default:ladder_wood", { description = S("Apple Wood Ladder") })
  108. minetest.register_craft({
  109. output = "default:ladder_wood 9",
  110. recipe = {
  111. {"group:stick", "", "group:stick"},
  112. {"group:stick", "default:wood", "group:stick"},
  113. {"group:stick", "", "group:stick"},
  114. },
  115. })
  116. -- The default stick-only recipe for default ladder will be intentionally kept for
  117. -- convenience.