init.lua 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. -- 5.x translation
  2. S = minetest.get_translator("bakedclay")
  3. -- list of clay colours
  4. local clay = {
  5. {"natural", "Natural"},
  6. {"white", "White"},
  7. {"grey", "Grey"},
  8. {"black", "Black"},
  9. {"red", "Red"},
  10. {"yellow", "Yellow"},
  11. {"green", "Green"},
  12. {"cyan", "Cyan"},
  13. {"blue", "Blue"},
  14. {"magenta", "Magenta"},
  15. {"orange", "Orange"},
  16. {"violet", "Violet"},
  17. {"brown", "Brown"},
  18. {"pink", "Pink"},
  19. {"dark_grey", "Dark Grey"},
  20. {"dark_green", "Dark Green"}
  21. }
  22. -- check mod support
  23. local techcnc_mod = minetest.get_modpath("technic_cnc")
  24. local stairs_mod = minetest.get_modpath("stairs")
  25. local stairsplus_mod = minetest.get_modpath("moreblocks")
  26. and minetest.global_exists("stairsplus")
  27. local stairsplus_compat = minetest.settings:get_bool("stairsplus_clay_compatibility") ~= false
  28. -- scroll through colours
  29. for _, clay in pairs(clay) do
  30. -- register node
  31. minetest.register_node("bakedclay:" .. clay[1], {
  32. description = S(clay[2] .. " Baked Clay"),
  33. tiles = {"baked_clay_" .. clay[1] ..".png"},
  34. groups = {cracky = 3, bakedclay = 1},
  35. sounds = default.node_sound_stone_defaults()
  36. })
  37. -- register craft recipe
  38. if clay[1] ~= "natural" then
  39. minetest.register_craft({
  40. output = "bakedclay:" .. clay[1] .. " 8",
  41. recipe = {
  42. {"group:bakedclay", "group:bakedclay", "group:bakedclay"},
  43. {"group:bakedclay", "dye:" .. clay[1], "group:bakedclay"},
  44. {"group:bakedclay", "group:bakedclay", "group:bakedclay"}
  45. }
  46. })
  47. end
  48. -- stairs plus
  49. if stairsplus_mod then
  50. stairsplus:register_all("bakedclay", "baked_clay_" .. clay[1],
  51. "bakedclay:" .. clay[1], {
  52. description = clay[2] .. " Baked Clay",
  53. tiles = {"baked_clay_" .. clay[1] .. ".png"},
  54. groups = {cracky = 3},
  55. sounds = default.node_sound_stone_defaults()
  56. })
  57. if stairsplus_compat then
  58. stairsplus:register_alias_all("bakedclay", clay[1],
  59. "bakedclay", "baked_clay_" .. clay[1])
  60. minetest.register_alias("stairs:slab_bakedclay_".. clay[1],
  61. "bakedclay:slab_baked_clay_" .. clay[1])
  62. minetest.register_alias("stairs:stair_bakedclay_".. clay[1],
  63. "bakedclay:stair_baked_clay_" .. clay[1])
  64. end
  65. -- stairs redo
  66. elseif stairs_mod and stairs.mod then
  67. stairs.register_all("bakedclay_" .. clay[1], "bakedclay:" .. clay[1],
  68. {cracky = 3},
  69. {"baked_clay_" .. clay[1] .. ".png"},
  70. clay[2] .. " Baked Clay",
  71. default.node_sound_stone_defaults())
  72. -- default stairs
  73. elseif stairs_mod then
  74. stairs.register_stair_and_slab("bakedclay_".. clay[1], "bakedclay:".. clay[1],
  75. {cracky = 3},
  76. {"baked_clay_" .. clay[1] .. ".png"},
  77. clay[2] .. " Baked Clay Stair",
  78. clay[2] .. " Baked Clay Slab",
  79. default.node_sound_stone_defaults())
  80. end
  81. -- register bakedclay for use in technic_cnc mod after all mods loaded
  82. if techcnc_mod then
  83. core.register_on_mods_loaded(function()
  84. technic_cnc.register_all("bakedclay:" .. clay[1],
  85. {cracky = 3, not_in_creative_inventory = 1},
  86. {"baked_clay_" .. clay[1] .. ".png"},
  87. clay[2] .. " Baked Clay")
  88. end)
  89. end
  90. end
  91. -- Terracotta blocks
  92. for _, clay in pairs(clay) do
  93. if clay[1] ~= "natural" then
  94. local texture = "baked_clay_terracotta_" .. clay[1] ..".png"
  95. minetest.register_node("bakedclay:terracotta_" .. clay[1], {
  96. description = S(clay[2] .. " Glazed Terracotta"),
  97. tiles = {
  98. texture .. "",
  99. texture .. "",
  100. texture .. "^[transformR180",
  101. texture .. "",
  102. texture .. "^[transformR270",
  103. texture .. "^[transformR90",
  104. },
  105. paramtype2 = "facedir",
  106. groups = {cracky = 3, terracotta = 1},
  107. sounds = default.node_sound_stone_defaults(),
  108. on_place = minetest.rotate_node
  109. })
  110. minetest.register_craft({
  111. type = "cooking",
  112. output = "bakedclay:terracotta_" .. clay[1],
  113. recipe = "bakedclay:" .. clay[1]
  114. })
  115. end
  116. end
  117. minetest.register_alias("bakedclay:terracotta_light_blue", "bakedclay:terracotta_cyan")
  118. -- cook clay block into white baked clay
  119. minetest.register_craft({
  120. type = "cooking",
  121. output = "bakedclay:natural",
  122. recipe = "default:clay"
  123. })
  124. -- register a few extra dye colour options
  125. minetest.register_craft( {
  126. type = "shapeless",
  127. output = "dye:green 4",
  128. recipe = {"default:cactus"}
  129. })
  130. minetest.register_craft( {
  131. type = "shapeless",
  132. output = "dye:brown 4",
  133. recipe = {"default:dry_shrub"}
  134. })
  135. -- only add light grey recipe if unifieddye mod isnt present (conflict)
  136. if not minetest.get_modpath("unifieddyes") then
  137. minetest.register_craft( {
  138. type = "shapeless",
  139. output = "dye:dark_grey 3",
  140. recipe = {"dye:black", "dye:black", "dye:white"}
  141. })
  142. minetest.register_craft( {
  143. type = "shapeless",
  144. output = "dye:grey 3",
  145. recipe = {"dye:black", "dye:white", "dye:white"}
  146. })
  147. end
  148. -- 2x2 red baked clay makes 16x clay brick
  149. minetest.register_craft( {
  150. output = "default:clay_brick 16",
  151. recipe = {
  152. {"bakedclay:red", "bakedclay:red"},
  153. {"bakedclay:red", "bakedclay:red"}
  154. }
  155. })
  156. -- colored clay compatibility
  157. if minetest.settings:get_bool("colored_clay_compatibility") == true then
  158. local cc = {
  159. {"black", "black"},
  160. {"blue", "blue"},
  161. {"bright", "natural"},
  162. {"brown", "brown"},
  163. {"cyan", "cyan"},
  164. {"dark_green", "dark_green"},
  165. {"dark_grey", "dark_grey"},
  166. {"green", "green"},
  167. {"grey", "grey"},
  168. {"hardened", "natural"},
  169. {"magenta", "magenta"},
  170. {"orange", "orange"},
  171. {"pink", "pink"},
  172. {"red", "red"},
  173. {"violet", "violet"},
  174. {"white", "white"},
  175. {"yellow", "yellow"}
  176. }
  177. for n = 1, #cc do
  178. local nod1 = "colored_clay:" .. cc[n][1]
  179. local nod2 = "bakedclay:" .. cc[n][2]
  180. minetest.register_alias(nod1, nod2)
  181. if stairsplus_mod then
  182. stairsplus:register_alias_all("colored_clay", cc[n][1], "bakedclay", cc[n][2])
  183. end
  184. end
  185. end
  186. -- get mod path
  187. local path = minetest.get_modpath("bakedclay")
  188. -- add new flowers
  189. dofile(path .. "/flowers.lua")
  190. print ("[MOD] Baked Clay loaded")