crafts.lua 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. local S = minetest.get_translator("moretrees")
  2. for i in ipairs(moretrees.treelist) do
  3. local treename = moretrees.treelist[i][1]
  4. minetest.register_craft({
  5. type = "shapeless",
  6. output = "moretrees:"..treename.."_planks 4",
  7. recipe = {
  8. "moretrees:"..treename.."_trunk"
  9. }
  10. })
  11. minetest.register_craft({
  12. type = "fuel",
  13. recipe = "moretrees:"..treename.."_sapling",
  14. burntime = 10,
  15. })
  16. end
  17. minetest.register_craft({
  18. type = "shapeless",
  19. output = "moretrees:rubber_tree_planks 4",
  20. recipe = {
  21. "moretrees:rubber_tree_trunk_empty"
  22. }
  23. })
  24. minetest.register_craft({
  25. type = "fuel",
  26. recipe = "group:moretrees_leaves",
  27. burntime = 1,
  28. })
  29. -- Food recipes!
  30. minetest.register_craftitem("moretrees:coconut_milk", {
  31. description = S("Coconut Milk"),
  32. inventory_image = "moretrees_coconut_milk_inv.png",
  33. wield_image = "moretrees_coconut_milk.png",
  34. on_use = minetest.item_eat(2, "vessels:drinking_glass"),
  35. groups = {vessel = 1},
  36. })
  37. minetest.register_craftitem("moretrees:raw_coconut", {
  38. description = S("Raw Coconut"),
  39. inventory_image = "moretrees_raw_coconut.png",
  40. on_use = minetest.item_eat(4),
  41. })
  42. minetest.register_craftitem("moretrees:date", {
  43. description = S("Date"),
  44. inventory_image = "moretrees_date.png",
  45. on_use = minetest.item_eat(1),
  46. })
  47. minetest.register_craftitem("moretrees:date_nut_snack", {
  48. description = S("Date & nut snack"),
  49. inventory_image = "moretrees_date_nut_snack.png",
  50. on_use = minetest.item_eat(4),
  51. })
  52. minetest.register_craftitem("moretrees:date_nut_batter", {
  53. description = S("Date-nut cake batter"),
  54. inventory_image = "moretrees_date_nut_batter.png",
  55. })
  56. minetest.register_craftitem("moretrees:date_nut_cake", {
  57. description = S("Date-nut cake"),
  58. inventory_image = "moretrees_date_nut_cake.png",
  59. on_use = minetest.item_eat(32),
  60. })
  61. minetest.register_craftitem("moretrees:date_nut_bar", {
  62. description = S("Date-nut energy bar"),
  63. inventory_image = "moretrees_date_nut_bar.png",
  64. on_use = minetest.item_eat(4),
  65. })
  66. minetest.register_craftitem("moretrees:acorn_muffin_batter", {
  67. description = S("Acorn Muffin batter"),
  68. inventory_image = "moretrees_acorn_muffin_batter.png",
  69. })
  70. minetest.register_craftitem("moretrees:acorn_muffin", {
  71. description = S("Acorn Muffin"),
  72. inventory_image = "moretrees_acorn_muffin.png",
  73. on_use = minetest.item_eat(4),
  74. })
  75. minetest.register_craftitem("moretrees:spruce_nuts", {
  76. description = S("Roasted Spruce Cone Nuts"),
  77. inventory_image = "moretrees_spruce_nuts.png",
  78. on_use = minetest.item_eat(1),
  79. })
  80. minetest.register_craftitem("moretrees:cedar_nuts", {
  81. description = S("Roasted Cedar Cone Nuts"),
  82. inventory_image = "moretrees_cedar_nuts.png",
  83. on_use = minetest.item_eat(1),
  84. })
  85. minetest.register_craftitem("moretrees:fir_nuts", {
  86. description = S("Roasted Fir Cone Nuts"),
  87. inventory_image = "moretrees_fir_nuts.png",
  88. on_use = minetest.item_eat(1),
  89. })
  90. for i in ipairs(moretrees.cutting_tools) do
  91. local tool = moretrees.cutting_tools[i]
  92. minetest.register_craft({
  93. type = "shapeless",
  94. output = "moretrees:coconut_milk",
  95. recipe = {
  96. "moretrees:coconut",
  97. "vessels:drinking_glass",
  98. tool
  99. },
  100. replacements = {
  101. { "moretrees:coconut", "moretrees:raw_coconut" },
  102. }
  103. })
  104. end
  105. -- give tool back with wear preserved
  106. minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
  107. if (itemstack:get_name() == "moretrees:coconut_milk") then
  108. for i, j in pairs(old_craft_grid) do
  109. -- find tool used to do the craft
  110. local ocg_name = j:get_name()
  111. if ((ocg_name ~= "") and (ocg_name ~= "moretrees:coconut") and (ocg_name ~= "vessels:drinking_glass")) then
  112. -- abort if using cutting board
  113. if minetest.get_item_group(ocg_name, "food_cutting_board") == 1 then
  114. return
  115. end
  116. -- create a new tool and set wear
  117. local t = ItemStack(ocg_name)
  118. local w = j:get_wear()
  119. -- works if tool used is an axe
  120. local uses = j:get_tool_capabilities().groupcaps.choppy.uses or 0
  121. if (w == 0 and uses ~= 0) then
  122. -- tool has never been used
  123. -- use tool once
  124. t:set_wear(65535/(9*(uses - 1)))
  125. else
  126. -- set wear back
  127. t:set_wear(w)
  128. -- use tool once
  129. if (uses ~= 0) then
  130. t:add_wear(65535/(9*(uses - 1)))
  131. end
  132. end
  133. -- add to craft inventory
  134. craft_inv:add_item("craft", t)
  135. end
  136. end
  137. end
  138. end)
  139. -- coconut milk using food_cutting_board from farming redo
  140. if minetest.registered_items["farming:cutting_board"] then
  141. minetest.register_craft({
  142. type = "shapeless",
  143. output = "moretrees:coconut_milk",
  144. recipe = {
  145. "moretrees:coconut",
  146. "vessels:drinking_glass",
  147. "group:food_cutting_board",
  148. },
  149. replacements = {
  150. { "moretrees:coconut", "moretrees:raw_coconut" },
  151. { "group:food_cutting_board", "farming:cutting_board" },
  152. }
  153. })
  154. end
  155. minetest.register_craft({
  156. type = "shapeless",
  157. output = "moretrees:date_nut_snack",
  158. recipe = {
  159. "moretrees:date",
  160. "moretrees:date",
  161. "moretrees:date",
  162. "moretrees:spruce_nuts",
  163. "moretrees:cedar_nuts",
  164. "moretrees:fir_nuts",
  165. }
  166. })
  167. -- The date-nut cake is an exceptional food item due to its highly
  168. -- concentrated nature (32 food units). Because of that, it requires
  169. -- many different ingredients, and, starting from the base ingredients
  170. -- found or harvested in nature, it requires many steps to prepare.
  171. local flour
  172. if minetest.registered_nodes["farming:flour"] then
  173. flour = "farming:flour"
  174. else
  175. flour = "moretrees:acorn_muffin_batter"
  176. end
  177. minetest.register_craft({
  178. type = "shapeless",
  179. output = "moretrees:date_nut_batter",
  180. recipe = {
  181. "moretrees:date_nut_snack",
  182. "moretrees:date_nut_snack",
  183. "moretrees:date_nut_snack",
  184. "moretrees:coconut_milk",
  185. "moretrees:date_nut_snack",
  186. "moretrees:raw_coconut",
  187. "moretrees:coconut_milk",
  188. flour,
  189. "moretrees:raw_coconut",
  190. },
  191. replacements = {
  192. { "moretrees:coconut_milk", "vessels:drinking_glass 2" }
  193. }
  194. })
  195. minetest.register_craft({
  196. type = "cooking",
  197. output = "moretrees:date_nut_cake",
  198. recipe = "moretrees:date_nut_batter",
  199. })
  200. minetest.register_craft({
  201. type = "shapeless",
  202. output = "moretrees:date_nut_bar 8",
  203. recipe = {"moretrees:date_nut_cake"},
  204. })
  205. minetest.register_craft({
  206. type = "shapeless",
  207. output = "moretrees:acorn_muffin_batter",
  208. recipe = {
  209. "moretrees:acorn",
  210. "moretrees:acorn",
  211. "moretrees:acorn",
  212. "moretrees:acorn",
  213. "moretrees:coconut_milk",
  214. },
  215. replacements = {
  216. { "moretrees:coconut_milk", "vessels:drinking_glass" }
  217. }
  218. })
  219. minetest.register_craft({
  220. type = "cooking",
  221. output = "moretrees:acorn_muffin 4",
  222. recipe = "moretrees:acorn_muffin_batter",
  223. })
  224. minetest.register_craft({
  225. type = "cooking",
  226. output = "moretrees:spruce_nuts 4",
  227. recipe = "moretrees:spruce_cone",
  228. })
  229. minetest.register_craft({
  230. type = "cooking",
  231. output = "moretrees:cedar_nuts 4",
  232. recipe = "moretrees:cedar_cone",
  233. })
  234. minetest.register_craft({
  235. type = "cooking",
  236. output = "moretrees:fir_nuts 4",
  237. recipe = "moretrees:fir_cone",
  238. })