food.lua 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. local S = farming.intllib
  2. --= filter sea water into river water
  3. minetest.register_craft({
  4. output = "bucket:bucket_river_water",
  5. recipe = {
  6. {"farming:hemp_fibre"},
  7. {"farming:hemp_fibre"},
  8. {"bucket:bucket_water"}
  9. }
  10. })
  11. --= glass of water
  12. minetest.register_craftitem("farming:glass_water", {
  13. description = S("Glass of Water"),
  14. inventory_image = "farming_water_glass.png",
  15. groups = {food_water_glass = 1, flammable = 3, vessel = 1}
  16. })
  17. minetest.register_craft({
  18. output = "farming:glass_water 4",
  19. recipe = {
  20. {"vessels:drinking_glass", "vessels:drinking_glass"},
  21. {"vessels:drinking_glass", "vessels:drinking_glass"},
  22. {"bucket:bucket_river_water", ""}
  23. },
  24. replacements = {{"bucket:bucket_river_water", "bucket:bucket_empty"}}
  25. })
  26. minetest.register_craft({
  27. output = "farming:glass_water 4",
  28. recipe = {
  29. {"vessels:drinking_glass", "vessels:drinking_glass"},
  30. {"vessels:drinking_glass", "vessels:drinking_glass"},
  31. {"bucket:bucket_water", "farming:hemp_fibre"}
  32. },
  33. replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}
  34. })
  35. if minetest.get_modpath("bucket_wooden") then
  36. minetest.register_craft({
  37. output = "farming:glass_water 4",
  38. recipe = {
  39. {"vessels:drinking_glass", "vessels:drinking_glass"},
  40. {"vessels:drinking_glass", "vessels:drinking_glass"},
  41. {"group:water_bucket_wooden", "farming:hemp_fibre"}
  42. },
  43. replacements = {{"group:water_bucket_wooden", "bucket_wooden:bucket_empty"}}
  44. })
  45. end
  46. --= Sugar
  47. minetest.register_craftitem("farming:sugar", {
  48. description = S("Sugar"),
  49. inventory_image = "farming_sugar.png",
  50. groups = {food_sugar = 1, flammable = 3}
  51. })
  52. minetest.register_craft({
  53. type = "cooking",
  54. cooktime = 3,
  55. output = "farming:sugar 2",
  56. recipe = "default:papyrus"
  57. })
  58. --= Sugar caramel
  59. minetest.register_craftitem("farming:caramel", {
  60. description = S("Caramel"),
  61. inventory_image = "farming_caramel.png",
  62. })
  63. minetest.register_craft({
  64. type = "cooking",
  65. cooktime = 6,
  66. output = "farming:caramel",
  67. recipe = "group:food_sugar",
  68. })
  69. --= Salt
  70. minetest.register_node("farming:salt", {
  71. description = S("Salt"),
  72. inventory_image = "farming_salt.png",
  73. wield_image = "farming_salt.png",
  74. drawtype = "plantlike",
  75. visual_scale = 0.8,
  76. paramtype = "light",
  77. tiles = {"farming_salt.png"},
  78. groups = {food_salt = 1, vessel = 1, dig_immediate = 3,
  79. attached_node = 1},
  80. sounds = default.node_sound_defaults(),
  81. selection_box = {
  82. type = "fixed",
  83. fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
  84. },
  85. -- special function to make salt crystals form inside water
  86. dropped_step = function(self, pos, dtime)
  87. self.ctimer = (self.ctimer or 0) + dtime
  88. if self.ctimer < 15.0 then return end
  89. self.ctimer = 0
  90. local needed
  91. if self.node_inside
  92. and self.node_inside.name == "default:water_source" then
  93. needed = 8
  94. elseif self.node_inside
  95. and self.node_inside.name == "default:river_water_source" then
  96. needed = 9
  97. end
  98. if not needed then return end
  99. local objs = core.get_objects_inside_radius(pos, 0.5)
  100. if not objs or #objs ~= 1 then return end
  101. local salt, ent = nil, nil
  102. for k, obj in pairs(objs) do
  103. ent = obj:get_luaentity()
  104. if ent and ent.name == "__builtin:item"
  105. and ent.itemstring == "farming:salt " .. needed then
  106. obj:remove()
  107. core.add_item(pos, "farming:salt_crystal")
  108. return false -- return with no further action
  109. end
  110. end
  111. end
  112. })
  113. minetest.register_craft({
  114. type = "cooking",
  115. cooktime = 15,
  116. output = "farming:salt",
  117. recipe = "bucket:bucket_water",
  118. replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}
  119. })
  120. --= Salt Crystal
  121. minetest.register_node("farming:salt_crystal", {
  122. description = ("Salt crystal"),
  123. inventory_image = "farming_salt_crystal.png",
  124. wield_image = "farming_salt_crystal.png",
  125. drawtype = "plantlike",
  126. visual_scale = 0.8,
  127. paramtype = "light",
  128. light_source = 1,
  129. tiles = {"farming_salt_crystal.png"},
  130. groups = { dig_immediate = 3, attached_node = 1},
  131. sounds = default.node_sound_defaults(),
  132. selection_box = {
  133. type = "fixed",
  134. fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
  135. },
  136. })
  137. minetest.register_craft({
  138. output = "farming:salt 9",
  139. recipe = {
  140. {"farming:salt_crystal", "farming:mortar_pestle"}
  141. },
  142. replacements = {{"farming:mortar_pestle", "farming:mortar_pestle"}}
  143. })
  144. minetest.register_craft({
  145. output = "farming:salt_crystal",
  146. recipe = {
  147. {"farming:salt", "farming:salt", "farming:salt"},
  148. {"farming:salt", "farming:salt", "farming:salt"},
  149. {"farming:salt", "farming:salt", "farming:salt"}
  150. }
  151. })
  152. --= Rose Water
  153. minetest.register_node("farming:rose_water", {
  154. description = S("Rose Water"),
  155. inventory_image = "farming_rose_water.png",
  156. wield_image = "farming_rose_water.png",
  157. drawtype = "plantlike",
  158. visual_scale = 0.8,
  159. paramtype = "light",
  160. tiles = {"farming_rose_water.png"},
  161. groups = {food_rose_water = 1, vessel = 1, dig_immediate = 3,
  162. attached_node = 1},
  163. sounds = default.node_sound_defaults(),
  164. selection_box = {
  165. type = "fixed",
  166. fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
  167. }
  168. })
  169. minetest.register_craft({
  170. output = "farming:rose_water",
  171. recipe = {
  172. {"flowers:rose", "flowers:rose", "flowers:rose"},
  173. {"flowers:rose", "flowers:rose", "flowers:rose"},
  174. {"group:food_water_glass", "group:food_pot", "vessels:glass_bottle"}
  175. },
  176. replacements = {
  177. {"group:food_water_glass", "vessels:drinking_glass"},
  178. {"group:food_pot", "farming:pot"}
  179. }
  180. })
  181. --= Turkish Delight
  182. minetest.register_craftitem("farming:turkish_delight", {
  183. description = S("Turkish Delight"),
  184. inventory_image = "farming_turkish_delight.png",
  185. groups = {flammable = 3},
  186. on_use = minetest.item_eat(2)
  187. })
  188. minetest.register_craft({
  189. output = "farming:turkish_delight 4",
  190. recipe = {
  191. {"group:food_gelatin", "group:food_sugar", "group:food_gelatin"},
  192. {"group:food_sugar", "group:food_rose_water", "group:food_sugar"},
  193. {"group:food_sugar", "dye:pink", "group:food_sugar"}
  194. },
  195. replacements = {
  196. {"group:food_cornstarch", "farming:bowl"},
  197. {"group:food_rose_water", "vessels:glass_bottle"}
  198. }
  199. })
  200. --= Garlic Bread
  201. minetest.register_craftitem("farming:garlic_bread", {
  202. description = S("Garlic Bread"),
  203. inventory_image = "farming_garlic_bread.png",
  204. groups = {flammable = 3},
  205. on_use = minetest.item_eat(2)
  206. })
  207. minetest.register_craft({
  208. output = "farming:garlic_bread",
  209. recipe = {
  210. {"group:food_toast", "group:food_garlic_clove", "group:food_garlic_clove"}
  211. }
  212. })
  213. --= Donuts (thanks to Bockwurst for making the donut images)
  214. minetest.register_craftitem("farming:donut", {
  215. description = S("Donut"),
  216. inventory_image = "farming_donut.png",
  217. on_use = minetest.item_eat(4)
  218. })
  219. minetest.register_craft({
  220. output = "farming:donut 3",
  221. recipe = {
  222. {"", "group:food_wheat", ""},
  223. {"group:food_wheat", "group:food_sugar", "group:food_wheat"},
  224. {"", "group:food_wheat", ""}
  225. }
  226. })
  227. minetest.register_craftitem("farming:donut_chocolate", {
  228. description = S("Chocolate Donut"),
  229. inventory_image = "farming_donut_chocolate.png",
  230. on_use = minetest.item_eat(6)
  231. })
  232. minetest.register_craft({
  233. output = "farming:donut_chocolate",
  234. recipe = {
  235. {"group:food_cocoa"},
  236. {"farming:donut"}
  237. }
  238. })
  239. minetest.register_craftitem("farming:donut_apple", {
  240. description = S("Apple Donut"),
  241. inventory_image = "farming_donut_apple.png",
  242. on_use = minetest.item_eat(6)
  243. })
  244. minetest.register_craft({
  245. output = "farming:donut_apple",
  246. recipe = {
  247. {"default:apple"},
  248. {"farming:donut"}
  249. }
  250. })
  251. --= Porridge Oats
  252. minetest.register_craftitem("farming:porridge", {
  253. description = S("Porridge"),
  254. inventory_image = "farming_porridge.png",
  255. on_use = minetest.item_eat(6, "farming:bowl")
  256. })
  257. minetest.register_craft({
  258. output = "farming:porridge",
  259. recipe = {
  260. {"group:food_oats", "group:food_oats", "group:food_oats"},
  261. {"group:food_oats", "group:food_bowl", "group:food_milk_glass"}
  262. },
  263. replacements = {
  264. {"mobs:glass_milk", "vessels:drinking_glass"},
  265. {"farming:soy_milk", "vessels:drinking_glass"}
  266. }
  267. })
  268. --= Jaffa Cake
  269. minetest.register_craftitem("farming:jaffa_cake", {
  270. description = S("Jaffa Cake"),
  271. inventory_image = "farming_jaffa_cake.png",
  272. on_use = minetest.item_eat(6)
  273. })
  274. minetest.register_craft({
  275. output = "farming:jaffa_cake",
  276. recipe = {
  277. {"farming:baking_tray", "group:food_egg", "group:food_sugar"},
  278. {"group:food_flour", "group:food_cocoa", "group:food_orange"},
  279. {"group:food_milk", "", ""}
  280. },
  281. replacements = {
  282. {"farming:baking_tray", "farming:baking_tray"},
  283. {"mobs:bucket_milk", "bucket:bucket_empty"},
  284. {"farming:soy_milk", "vessels:drining_glass"}
  285. }
  286. })
  287. -- Apple Pie
  288. minetest.register_craftitem("farming:apple_pie", {
  289. description = S("Apple Pie"),
  290. inventory_image = "farming_apple_pie.png",
  291. on_use = minetest.item_eat(6)
  292. })
  293. minetest.register_craft({
  294. output = "farming:apple_pie",
  295. recipe = {
  296. {"group:food_flour", "group:food_sugar", "group:food_apple"},
  297. {"", "group:food_baking_tray", ""}
  298. },
  299. replacements = {{"group:food_baking_tray", "farming:baking_tray"}}
  300. })
  301. -- Cactus Juice
  302. minetest.register_craftitem("farming:cactus_juice", {
  303. description = S("Cactus Juice"),
  304. inventory_image = "farming_cactus_juice.png",
  305. groups = {vessel = 1, drink = 1},
  306. on_use = function(itemstack, user, pointed_thing)
  307. if user then
  308. if math.random(5) == 1 then
  309. return minetest.do_item_eat(-1, "vessels:drinking_glass",
  310. itemstack, user, pointed_thing)
  311. else
  312. return minetest.do_item_eat(2, "vessels:drinking_glass",
  313. itemstack, user, pointed_thing)
  314. end
  315. end
  316. end
  317. })
  318. minetest.register_craft({
  319. output = "farming:cactus_juice",
  320. recipe = {
  321. {"default:cactus"},
  322. {"farming:juicer"},
  323. {"vessels:drinking_glass"}
  324. },
  325. replacements = {
  326. {"group:food_juicer", "farming:juicer"}
  327. }
  328. })
  329. -- Pasta
  330. minetest.register_craftitem("farming:pasta", {
  331. description = S("Pasta"),
  332. inventory_image = "farming_pasta.png",
  333. groups = {food_pasta = 1}
  334. })
  335. minetest.register_craft({
  336. output = "farming:pasta",
  337. recipe = {
  338. {"group:food_flour", "group:food_butter", "group:food_mixing_bowl"}
  339. },
  340. replacements = {{"group:food_mixing_bowl", "farming:mixing_bowl"}}
  341. })
  342. minetest.register_craft({
  343. output = "farming:pasta",
  344. recipe = {
  345. {"group:food_flour", "group:food_oil", "group:food_mixing_bowl"}
  346. },
  347. replacements = {
  348. {"group:food_mixing_bowl", "farming:mixing_bowl"},
  349. {"group:food_oil", "vessels:glass_bottle"}
  350. }
  351. })
  352. -- Spaghetti
  353. minetest.register_craftitem("farming:spaghetti", {
  354. description = S("Spaghetti"),
  355. inventory_image = "farming_spaghetti.png",
  356. on_use = minetest.item_eat(8)
  357. })
  358. minetest.register_craft({
  359. output = "farming:spaghetti",
  360. recipe = {
  361. {"group:food_pasta", "group:food_saucepan", "group:food_tomato"},
  362. {"group:food_garlic_clove", "group:food_garlic_clove", ""}
  363. },
  364. replacements = {{"group:food_saucepan", "farming:saucepan"}}
  365. })
  366. -- Korean Bibimbap
  367. minetest.register_craftitem("farming:bibimbap", {
  368. description = S("Bibimbap"),
  369. inventory_image = "farming_bibimbap.png",
  370. on_use = minetest.item_eat(8, "farming:bowl")
  371. })
  372. minetest.register_craft({
  373. output = "farming:bibimbap",
  374. recipe = {
  375. {"group:food_skillet", "group:food_bowl", "group:food_egg"},
  376. {"group:food_rice", "group:food_chicken_raw", "group:food_cabbage"},
  377. {"group:food_carrot", "group:food_chili_pepper", ""}
  378. },
  379. replacements = {{"group:food_skillet", "farming:skillet"}}
  380. })
  381. minetest.register_craft({
  382. output = "farming:bibimbap",
  383. type = "shapeless",
  384. recipe = {
  385. "group:food_skillet", "group:food_bowl", "group:food_mushroom",
  386. "group:food_rice", "group:food_cabbage", "group:food_carrot",
  387. "group:food_mushroom", "group:food_chili_pepper"
  388. },
  389. replacements = {{"group:food_skillet", "farming:skillet"}}
  390. })
  391. -- Burger
  392. minetest.register_craftitem("farming:burger", {
  393. description = S("Burger"),
  394. inventory_image = "farming_burger.png",
  395. on_use = minetest.item_eat(16),
  396. })
  397. minetest.register_craft({
  398. output = "farming:burger",
  399. recipe = {
  400. {"farming:bread", "group:food_meat", "group:food_cheese"},
  401. {"group:food_tomato", "group:food_cucumber", "group:food_onion"},
  402. {"group:food_lettuce", "", ""}
  403. }
  404. })
  405. -- Salad
  406. minetest.register_craftitem("farming:salad", {
  407. description = S("Salad"),
  408. inventory_image = "farming_salad.png",
  409. on_use = minetest.item_eat(8, "farming:bowl")
  410. })
  411. minetest.register_craft({
  412. output = "farming:salad",
  413. type = "shapeless",
  414. recipe = {
  415. "group:food_bowl", "group:food_tomato", "group:food_cucumber",
  416. "group:food_lettuce", "group:food_oil"
  417. }
  418. })
  419. -- Triple Berry Smoothie
  420. minetest.register_craftitem("farming:smoothie_berry", {
  421. description = S("Triple Berry Smoothie"),
  422. inventory_image = "farming_berry_smoothie.png",
  423. on_use = minetest.item_eat(6, "vessels:drinking_glass"),
  424. groups = {vessel = 1, drink = 1}
  425. })
  426. minetest.register_craft({
  427. output = "farming:smoothie_berry",
  428. type = "shapeless",
  429. recipe = {
  430. "group:food_raspberries", "group:food_blackberries",
  431. "group:food_strawberry", "group:food_banana",
  432. "vessels:drinking_glass"
  433. }
  434. })
  435. -- Patatas a la importancia
  436. minetest.register_craftitem("farming:spanish_potatoes", {
  437. description = S("Spanish Potatoes"),
  438. inventory_image = "farming_spanish_potatoes.png",
  439. on_use = minetest.item_eat(8, "farming:bowl"),
  440. })
  441. minetest.register_craft({
  442. type = "shapeless",
  443. output = "farming:spanish_potatoes",
  444. recipe = {
  445. "farming:potato", "group:food_parsley", "farming:potato",
  446. "group:food_egg", "group:food_flour", "farming:onion",
  447. "farming:garlic_clove", "group:food_bowl", "group:food_skillet"
  448. },
  449. replacements = {{"group:food_skillet", "farming:skillet"}}
  450. })
  451. -- Potato omelet
  452. minetest.register_craftitem("farming:potato_omelet", {
  453. description = S("Potato omelet"),
  454. inventory_image = "farming_potato_omelet.png",
  455. on_use = minetest.item_eat(6, "farming:bowl")
  456. })
  457. minetest.register_craft({
  458. type = "shapeless",
  459. output = "farming:potato_omelet",
  460. recipe = {
  461. "group:food_egg", "farming:potato", "group:food_onion",
  462. "group:food_skillet", "group:food_bowl"},
  463. replacements = {{"group:food_skillet", "farming:skillet"}}
  464. })
  465. -- Paella
  466. minetest.register_craftitem("farming:paella", {
  467. description = S("Paella"),
  468. inventory_image = "farming_paella.png",
  469. on_use = minetest.item_eat(8, "farming:bowl")
  470. })
  471. minetest.register_craft({
  472. type = "shapeless",
  473. output = "farming:paella",
  474. recipe = {
  475. "group:food_rice", "dye:orange", "farming:pepper_red",
  476. "group:food_peas", "group:food_chicken", "group:food_bowl", "group:food_skillet"
  477. },
  478. replacements = {{"group:food_skillet", "farming:skillet"}}
  479. })
  480. -- Flan
  481. minetest.register_craftitem("farming:flan", {
  482. description = S("Vanilla Flan"),
  483. inventory_image = "farming_vanilla_flan.png",
  484. on_use = minetest.item_eat(6)
  485. })
  486. minetest.register_craft({
  487. output = "farming:flan",
  488. recipe = {
  489. {"group:food_sugar", "group:food_milk", "farming:caramel"},
  490. {"group:food_egg", "group:food_egg", "farming:vanilla_extract"}
  491. },
  492. replacements = {
  493. {"cucina_vegana:soy_milk", "vessels:drinking_glass"},
  494. {"group:food_milk", "bucket:bucket_empty"},
  495. {"farming:vanilla_extract", "vessels:glass_bottle"}
  496. }
  497. })
  498. -- Vegan Cheese
  499. minetest.register_craftitem("farming:cheese_vegan", {
  500. description = S("Vegan Cheese"),
  501. inventory_image = "farming_cheese_vegan.png",
  502. on_use = minetest.item_eat(2),
  503. groups = {food_cheese = 1, flammable = 2}
  504. })
  505. minetest.register_craft({
  506. output = "farming:cheese_vegan",
  507. recipe = {
  508. {"farming:soy_milk", "farming:soy_milk", "farming:soy_milk"},
  509. {"group:food_salt", "group:food_peppercorn", "farming:bottle_ethanol"},
  510. {"group:food_gelatin", "group:food_pot", ""}
  511. },
  512. replacements = {
  513. {"farming:soy_milk", "vessels:drinking_glass 3"},
  514. {"farming:pot", "farming:pot"},
  515. {"farming:bottle_ethanol", "vessels:glass_bottle"}
  516. }
  517. })
  518. minetest.register_craft({
  519. output = "farming:cheese_vegan",
  520. recipe = {
  521. {"farming:soy_milk", "farming:soy_milk", "farming:soy_milk"},
  522. {"group:food_salt", "group:food_peppercorn", "group:food_lemon"},
  523. {"group:food_gelatin", "group:food_pot", ""}
  524. },
  525. replacements = {
  526. {"farming:soy_milk", "vessels:drinking_glass 3"},
  527. {"farming:pot", "farming:pot"}
  528. }
  529. })
  530. -- Onigiri
  531. minetest.register_craftitem("farming:onigiri", {
  532. description = S("Onirigi"),
  533. inventory_image = "farming_onigiri.png",
  534. on_use = minetest.item_eat(2),
  535. groups = {flammable = 2}
  536. })
  537. minetest.register_craft({
  538. output = "farming:onigiri",
  539. recipe = {
  540. {"group:food_rice", "group:food_salt", "group:food_rice"},
  541. {"", "group:food_seaweed", ""}
  542. }
  543. })
  544. -- Gyoza
  545. minetest.register_craftitem("farming:gyoza", {
  546. description = S("Gyoza"),
  547. inventory_image = "farming_gyoza.png",
  548. on_use = minetest.item_eat(4),
  549. groups = {flammable = 2}
  550. })
  551. minetest.register_craft({
  552. output = "farming:gyoza 4",
  553. recipe = {
  554. {"group:food_cabbage", "group:food_garlic_clove", "group:food_onion"},
  555. {"group:food_meat_raw", "group:food_salt", "group:food_flour"},
  556. {"", "group:food_skillet", ""}
  557. },
  558. replacements = {
  559. {"group:food_skillet", "farming:skillet"}
  560. }
  561. })
  562. -- Mochi
  563. minetest.register_craftitem("farming:mochi", {
  564. description = S("Mochi"),
  565. inventory_image = "farming_mochi.png",
  566. on_use = minetest.item_eat(3),
  567. groups = {flammable = 2}
  568. })
  569. minetest.register_craft({
  570. output = "farming:mochi",
  571. recipe = {
  572. {"group:food_rice", "group:food_sugar", "group:food_rice"},
  573. {"", "group:food_mortar_pestle", ""},
  574. {"", "farming:glass_water", ""}
  575. },
  576. replacements = {
  577. {"group:food_mortar_pestle", "farming:mortar_pestle"},
  578. {"farming:glass_water", "vessels:drinking_glass"}
  579. }
  580. })