init.lua 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. -- translation support
  2. local S = minetest.get_translator("bakedclay")
  3. -- list of clay colours
  4. local clay = {
  5. {"natural", S("Natural")},
  6. {"white", S("White")},
  7. {"grey", S("Grey")},
  8. {"black", S("Black")},
  9. {"red", S("Red")},
  10. {"yellow", S("Yellow")},
  11. {"green", S("Green")},
  12. {"cyan", S("Cyan")},
  13. {"blue", S("Blue")},
  14. {"magenta", S("Magenta")},
  15. {"orange", S("Orange")},
  16. {"violet", S("Violet")},
  17. {"brown", S("Brown")},
  18. {"pink", S("Pink")},
  19. {"dark_grey", S("Dark Grey")},
  20. {"dark_green", S("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 = clay[2] .. " " .. S("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] .. " " .. S("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] .. " " .. S("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] .. " " .. S("Baked Clay Stair"),
  78. clay[2] .. " " .. S("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. minetest.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 = clay[2] .. " " .. S("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 natural 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. -- add lucky blocks if mod present
  191. if minetest.get_modpath("lucky_block") then
  192. dofile(path .. "/lucky_block.lua")
  193. end
  194. print ("[MOD] Baked Clay loaded")