init.lua 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. --
  2. -- Mese post registration helper
  3. --
  4. function default.register_mesepost(mod, variant, name, def)
  5. local nodename = mod .. ":" .. variant .. "_" .. name
  6. local ingot = ""
  7. if variant == "mese" then
  8. ingot = "default:mese_crystal"
  9. elseif variant == "talinite" then
  10. ingot = "talinite:ingot"
  11. end
  12. minetest.register_craft({
  13. output = nodename .. " 4",
  14. recipe = {
  15. {'', 'default:glass', ''},
  16. {ingot, ingot, ingot},
  17. {'', def.material, ''},
  18. }
  19. })
  20. local post_texture = def.texture .. "^default_" .. variant .. "_post_light_side.png^[makealpha:0,0,0"
  21. local post_texture_dark = def.texture .. "^default_" .. variant .. "_post_light_side_dark.png^[makealpha:0,0,0"
  22. -- Allow almost everything to be overridden
  23. local default_fields = {
  24. --wield_image = post_texture,
  25. drawtype = "nodebox",
  26. node_box = {
  27. type = "fixed",
  28. fixed = {
  29. {-2 / 16, -8 / 16, -2 / 16, 2 / 16, 8 / 16, 2 / 16},
  30. },
  31. },
  32. paramtype = "light",
  33. tiles = {def.texture, def.texture, post_texture_dark, post_texture_dark, post_texture, post_texture},
  34. use_texture_alpha = "opaque",
  35. light_source = default.LIGHT_MAX - 1,
  36. sunlight_propagates = true,
  37. is_ground_content = false,
  38. groups = {},
  39. sounds = default.node_sound_wood_defaults(),
  40. }
  41. for k, v in pairs(default_fields) do
  42. if def[k] == nil then
  43. def[k] = v
  44. end
  45. end
  46. def.texture = nil
  47. def.material = nil
  48. minetest.register_node(nodename, def)
  49. end
  50. default.register_mesepost("mese_post", "mese", "post_iron", {
  51. description = "Iron Mese Post",
  52. texture = "default_fence_iron.png",
  53. material = "default:steel_ingot",
  54. groups = utility.dig_groups("fence_metal"),
  55. sounds = default.node_sound_metal_defaults(),
  56. })
  57. default.register_mesepost("mese_post", "mese", "post_bronze", {
  58. description = "Bronze Mese Post",
  59. texture = "default_fence_bronze.png",
  60. material = "default:bronze_ingot",
  61. groups = utility.dig_groups("fence_metal"),
  62. sounds = default.node_sound_metal_defaults(),
  63. })
  64. default.register_mesepost("mese_post", "mese", "post_light", {
  65. description = "Wood Mese Post",
  66. texture = "default_fence_wood.png",
  67. material = "default:wood",
  68. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  69. })
  70. default.register_mesepost("mese_post", "mese", "post_acacia_wood", {
  71. description = "Acacia Wood Mese Post",
  72. texture = "default_fence_acacia_wood.png",
  73. material = "default:acacia_wood",
  74. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  75. })
  76. default.register_mesepost("mese_post", "mese", "post_junglewood", {
  77. description = "Jungle Wood Mese Post",
  78. texture = "default_fence_junglewood.png",
  79. material = "default:junglewood",
  80. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  81. })
  82. default.register_mesepost("mese_post", "mese", "post_pine_wood", {
  83. description = "Pine Wood Mese Post",
  84. texture = "default_fence_pine_wood.png",
  85. material = "default:pine_wood",
  86. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  87. })
  88. default.register_mesepost("mese_post", "mese", "post_aspen_wood", {
  89. description = "Aspen Wood Mese Post",
  90. texture = "default_fence_aspen_wood.png",
  91. material = "default:aspen_wood",
  92. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  93. })
  94. default.register_mesepost("mese_post", "talinite", "post_iron", {
  95. description = "Iron Talinite Post",
  96. texture = "default_fence_iron.png",
  97. material = "default:steel_ingot",
  98. groups = utility.dig_groups("fence_metal"),
  99. sounds = default.node_sound_metal_defaults(),
  100. })
  101. default.register_mesepost("mese_post", "talinite", "post_bronze", {
  102. description = "Bronze Talinite Post",
  103. texture = "default_fence_bronze.png",
  104. material = "default:bronze_ingot",
  105. groups = utility.dig_groups("fence_metal"),
  106. sounds = default.node_sound_metal_defaults(),
  107. })
  108. default.register_mesepost("mese_post", "talinite", "post_light", {
  109. description = "Wood Talinite Post",
  110. texture = "default_fence_wood.png",
  111. material = "default:wood",
  112. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  113. })
  114. default.register_mesepost("mese_post", "talinite", "post_acacia_wood", {
  115. description = "Acacia Wood Talinite Post",
  116. texture = "default_fence_acacia_wood.png",
  117. material = "default:acacia_wood",
  118. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  119. })
  120. default.register_mesepost("mese_post", "talinite", "post_junglewood", {
  121. description = "Jungle Wood Talinite Post",
  122. texture = "default_fence_junglewood.png",
  123. material = "default:junglewood",
  124. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  125. })
  126. default.register_mesepost("mese_post", "talinite", "post_pine_wood", {
  127. description = "Pine Wood Talinite Post",
  128. texture = "default_fence_pine_wood.png",
  129. material = "default:pine_wood",
  130. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  131. })
  132. default.register_mesepost("mese_post", "talinite", "post_aspen_wood", {
  133. description = "Aspen Wood Talinite Post",
  134. texture = "default_fence_aspen_wood.png",
  135. material = "default:aspen_wood",
  136. groups = utility.dig_groups("fence_wood", {flammable = 2}),
  137. })