food.lua 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  1. local S = ethereal.intllib
  2. -- Banana (Heals one heart when eaten)
  3. minetest.register_node("ethereal:banana", {
  4. description = S("Banana"),
  5. drawtype = "torchlike",
  6. tiles = {"ethereal_banana_single.png"},
  7. inventory_image = "ethereal_banana_single.png",
  8. wield_image = "ethereal_banana_single.png",
  9. paramtype = "light",
  10. sunlight_propagates = true,
  11. walkable = false,
  12. selection_box = {
  13. type = "fixed",
  14. fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
  15. },
  16. groups = {
  17. food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
  18. leafdecay = 1, leafdecay_drop = 1
  19. },
  20. drop = "ethereal:banana",
  21. on_use = minetest.item_eat(2),
  22. sounds = default.node_sound_leaves_defaults(),
  23. after_place_node = function(pos, placer)
  24. if placer:is_player() then
  25. minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
  26. end
  27. end
  28. })
  29. -- Banana Bunch
  30. minetest.register_node("ethereal:banana_bunch", {
  31. description = S("Banana Bunch"),
  32. drawtype = "torchlike",
  33. tiles = {"ethereal_banana_bunch.png"},
  34. inventory_image = "ethereal_banana_bunch.png",
  35. wield_image = "ethereal_banana_bunch.png",
  36. paramtype = "light",
  37. sunlight_propagates = true,
  38. walkable = false,
  39. selection_box = {
  40. type = "fixed",
  41. fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
  42. },
  43. groups = {
  44. fleshy = 3, dig_immediate = 3, flammable = 2,
  45. leafdecay = 1, leafdecay_drop = 1
  46. },
  47. drop = "ethereal:banana_bunch",
  48. on_use = minetest.item_eat(6),
  49. sounds = default.node_sound_leaves_defaults(),
  50. after_place_node = function(pos, placer)
  51. if placer:is_player() then
  52. minetest.set_node(pos, {name = "ethereal:banana_bunch", param2 = 1})
  53. end
  54. end
  55. })
  56. -- Bunch to Single
  57. minetest.register_craft({
  58. output = "ethereal:banana 3",
  59. recipe = {{"ethereal:banana_bunch"}}
  60. })
  61. minetest.register_craft({
  62. output = "ethereal:banana_bunch",
  63. recipe = {{"ethereal:banana", "ethereal:banana", "ethereal:banana"}}
  64. })
  65. -- Banana Dough
  66. minetest.register_craftitem("ethereal:banana_dough", {
  67. description = S("Banana Dough"),
  68. inventory_image = "ethereal_banana_dough.png"
  69. })
  70. minetest.register_craft({
  71. output = "ethereal:banana_dough",
  72. recipe = {{"group:food_flour", "group:food_banana"}}
  73. })
  74. minetest.register_craft({
  75. type = "cooking",
  76. cooktime = 14,
  77. output = "ethereal:banana_bread",
  78. recipe = "ethereal:banana_dough"
  79. })
  80. -- Orange (Heals 2 hearts when eaten)
  81. minetest.register_node("ethereal:orange", {
  82. description = S("Orange"),
  83. drawtype = "plantlike",
  84. tiles = {"farming_orange.png"},
  85. inventory_image = "farming_orange.png",
  86. wield_image = "farming_orange.png",
  87. paramtype = "light",
  88. sunlight_propagates = true,
  89. walkable = false,
  90. selection_box = {
  91. type = "fixed",
  92. fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
  93. },
  94. groups = {
  95. food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
  96. leafdecay = 3, leafdecay_drop = 1
  97. },
  98. drop = "ethereal:orange",
  99. on_use = minetest.item_eat(4),
  100. sounds = default.node_sound_leaves_defaults(),
  101. after_place_node = function(pos, placer)
  102. if placer:is_player() then
  103. minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
  104. end
  105. end,
  106. })
  107. -- Pine Nuts (Heals 1/2 heart when eaten)
  108. minetest.register_craftitem("ethereal:pine_nuts", {
  109. description = S("Pine Nuts"),
  110. inventory_image = "ethereal_pine_nuts.png",
  111. wield_image = "ethereal_pine_nuts.png",
  112. groups = {food_pine_nuts = 1, flammable = 2},
  113. on_use = minetest.item_eat(1)
  114. })
  115. -- Banana Loaf (Heals 3 hearts when eaten)
  116. minetest.register_craftitem("ethereal:banana_bread", {
  117. description = S("Banana Loaf"),
  118. inventory_image = "ethereal_banana_bread.png",
  119. wield_image = "ethereal_banana_bread.png",
  120. groups = {food_bread = 1, flammable = 3},
  121. on_use = minetest.item_eat(6)
  122. })
  123. -- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
  124. minetest.register_node("ethereal:coconut", {
  125. description = S("Coconut"),
  126. drawtype = "plantlike",
  127. walkable = false,
  128. paramtype = "light",
  129. sunlight_propagates = true,
  130. tiles = {"moretrees_coconut.png"},
  131. inventory_image = "moretrees_coconut.png",
  132. wield_image = "moretrees_coconut.png",
  133. selection_box = {
  134. type = "fixed",
  135. fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31}
  136. },
  137. groups = {
  138. food_coconut = 1, snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
  139. choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1
  140. },
  141. drop = "ethereal:coconut_slice 4",
  142. sounds = default.node_sound_wood_defaults()
  143. })
  144. -- Coconut Slice (Heals half heart when eaten)
  145. minetest.register_craftitem("ethereal:coconut_slice", {
  146. description = S("Coconut Slice"),
  147. inventory_image = "moretrees_coconut_slice.png",
  148. wield_image = "moretrees_coconut_slice.png",
  149. groups = {food_coconut_slice = 1, flammable = 1},
  150. on_use = minetest.item_eat(1)
  151. })
  152. minetest.register_craft({
  153. output = "ethereal:coconut",
  154. recipe = {
  155. {"ethereal:coconut_slice", "ethereal:coconut_slice"},
  156. {"ethereal:coconut_slice", "ethereal:coconut_slice"}
  157. }
  158. })
  159. -- Golden Apple (Found on Healing Tree, heals all 10 hearts)
  160. minetest.register_node("ethereal:golden_apple", {
  161. description = S("Golden Apple"),
  162. drawtype = "plantlike",
  163. tiles = {"default_apple_gold.png"},
  164. inventory_image = "default_apple_gold.png",
  165. wield_image = "default_apple_gold.png",
  166. paramtype = "light",
  167. sunlight_propagates = true,
  168. walkable = false,
  169. selection_box = {
  170. type = "fixed",
  171. fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2}
  172. },
  173. groups = {
  174. fleshy = 3, dig_immediate = 3,
  175. leafdecay = 3,leafdecay_drop = 1
  176. },
  177. drop = "ethereal:golden_apple",
  178. on_use = function(itemstack, user, pointed_thing)
  179. if user then
  180. user:set_hp(20)
  181. return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
  182. end
  183. end,
  184. sounds = default.node_sound_leaves_defaults(),
  185. after_place_node = function(pos, placer, itemstack)
  186. if placer:is_player() then
  187. minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
  188. end
  189. end
  190. })
  191. -- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
  192. minetest.register_craftitem("ethereal:hearty_stew", {
  193. description = S("Hearty Stew"),
  194. inventory_image = "ethereal_hearty_stew.png",
  195. wield_image = "ethereal_hearty_stew.png",
  196. on_use = minetest.item_eat(10, "ethereal:bowl")
  197. })
  198. minetest.register_craft({
  199. output = "ethereal:hearty_stew",
  200. recipe = {
  201. {"group:food_onion","flowers:mushroom_brown", "group:food_tuber"},
  202. {"","flowers:mushroom_brown", ""},
  203. {"","group:food_bowl", ""}
  204. }
  205. })
  206. -- Extra recipe for hearty stew
  207. if farming and farming.mod and farming.mod == "redo" then
  208. minetest.register_craft({
  209. output = "ethereal:hearty_stew",
  210. recipe = {
  211. {"group:food_onion","flowers:mushroom_brown", "group:food_beans"},
  212. {"","flowers:mushroom_brown", ""},
  213. {"","group:food_bowl", ""}
  214. }
  215. })
  216. end
  217. -- Bucket of Cactus Pulp
  218. minetest.register_craftitem("ethereal:bucket_cactus", {
  219. description = S("Bucket of Cactus Pulp"),
  220. inventory_image = "bucket_cactus.png",
  221. wield_image = "bucket_cactus.png",
  222. stack_max = 1,
  223. groups = {vessel = 1, drink = 1},
  224. on_use = minetest.item_eat(2, "bucket:bucket_empty"),
  225. })
  226. minetest.register_craft({
  227. output = "ethereal:bucket_cactus",
  228. recipe = {{"bucket:bucket_empty","default:cactus"}}
  229. })
  230. -- firethorn jelly
  231. minetest.register_craftitem("ethereal:firethorn_jelly", {
  232. description = S("Firethorn Jelly"),
  233. inventory_image = "ethereal_firethorn_jelly.png",
  234. wield_image = "ethereal_firethorn_jelly.png",
  235. on_use = minetest.item_eat(2, "vessels:glass_bottle"),
  236. groups = {vessel = 1}
  237. })
  238. if minetest.registered_items["farming:bowl"] then
  239. minetest.register_craft({
  240. output = "ethereal:firethorn_jelly",
  241. recipe = {
  242. {"farming:mortar_pestle","vessels:glass_bottle", ""},
  243. {"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn"},
  244. {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"}
  245. },
  246. replacements = {
  247. {"bucket:bucket_water", "bucket:bucket_empty 3"},
  248. {"farming:mortar_pestle", "farming:mortar_pestle"}
  249. }
  250. })
  251. end
  252. -- Lemon
  253. minetest.register_node("ethereal:lemon", {
  254. description = S("Lemon"),
  255. drawtype = "plantlike",
  256. tiles = {"ethereal_lemon.png"},
  257. inventory_image = "ethereal_lemon_fruit.png",
  258. wield_image = "ethereal_lemon_fruit.png",
  259. paramtype = "light",
  260. sunlight_propagates = true,
  261. walkable = false,
  262. selection_box = {
  263. type = "fixed",
  264. fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
  265. },
  266. groups = {
  267. food_lemon = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
  268. leafdecay = 3, leafdecay_drop = 1
  269. },
  270. drop = "ethereal:lemon",
  271. on_use = minetest.item_eat(3),
  272. sounds = default.node_sound_leaves_defaults(),
  273. after_place_node = function(pos, placer)
  274. if placer:is_player() then
  275. minetest.set_node(pos, {name = "ethereal:lemon", param2 = 1})
  276. end
  277. end
  278. })
  279. -- Candied Lemon
  280. minetest.register_craftitem("ethereal:candied_lemon", {
  281. description = S("Candied Lemon"),
  282. inventory_image = "ethereal_candied_lemon.png",
  283. wield_image = "ethereal_candied_lemon.png",
  284. groups = {food_candied_lemon = 1},
  285. on_use = minetest.item_eat(5)
  286. })
  287. minetest.register_craft({
  288. output = "ethereal:candied_lemon",
  289. recipe = {
  290. {"farming:baking_tray", "ethereal:lemon", "group:food_sugar"}
  291. },
  292. replacements = {
  293. {"farming:baking_tray", "farming:baking_tray"}
  294. }
  295. })
  296. -- Lemonade
  297. minetest.register_node("ethereal:lemonade", {
  298. description = S("Lemonade"),
  299. drawtype = "plantlike",
  300. tiles = {"ethereal_lemonade.png"},
  301. inventory_image = "ethereal_lemonade.png",
  302. wield_image = "ethereal_lemonade.png",
  303. paramtype = "light",
  304. walkable = false,
  305. selection_box = {
  306. type = "fixed",
  307. fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25}
  308. },
  309. groups = {vessel = 1, dig_immediate = 3, attached_node = 1, drink = 1},
  310. on_use = minetest.item_eat(5, "vessels:drinking_glass"),
  311. sounds = default.node_sound_glass_defaults()
  312. })
  313. minetest.register_craft({
  314. output = "ethereal:lemonade",
  315. recipe = {
  316. {"ethereal:lemon", "group:food_sugar", "group:food_sugar"},
  317. {"vessels:drinking_glass", "group:water_bucket", ""}
  318. },
  319. replacements = {
  320. {"group:water_bucket", "bucket:bucket_empty"},
  321. }
  322. })
  323. -- Olive
  324. minetest.register_node("ethereal:olive", {
  325. description = S("Olive"),
  326. drawtype = "plantlike",
  327. tiles = {"ethereal_olive.png"},
  328. inventory_image = "ethereal_olive_fruit.png",
  329. wield_image = "ethereal_olive_fruit.png",
  330. visual_scale = 0.2,
  331. paramtype = "light",
  332. sunlight_propagates = true,
  333. walkable = false,
  334. selection_box = {
  335. type = "fixed",
  336. fixed = {-0.1, -0.5, -0.1, 0.1, -0.3, 0.1}
  337. },
  338. groups = {
  339. fleshy = 3, dig_immediate = 3, flammable = 2,
  340. leafdecay = 3, leafdecay_drop = 1
  341. },
  342. drop = "ethereal:olive",
  343. on_use = minetest.item_eat(1),
  344. sounds = default.node_sound_leaves_defaults(),
  345. after_place_node = function(pos, placer)
  346. if placer:is_player() then
  347. minetest.set_node(pos, {name = "ethereal:olive", param2 = 1})
  348. end
  349. end
  350. })
  351. -- Olive Oil
  352. minetest.register_craftitem("ethereal:olive_oil", {
  353. description = S("Olive Oil"),
  354. inventory_image = "ethereal_olive_oil.png",
  355. wield_image = "ethereal_olive_oil.png",
  356. groups = {food_oil = 1, food_olive_oil = 1, vessel = 1}
  357. })
  358. minetest.register_craft({
  359. output = "ethereal:olive_oil",
  360. recipe = {
  361. {"ethereal:olive", "ethereal:olive", "ethereal:olive"},
  362. {"ethereal:olive", "ethereal:olive", "ethereal:olive"},
  363. {"farming:juicer", "vessels:glass_bottle", ""}
  364. },
  365. replacements = {
  366. {"farming:juicer", "farming:juicer"}
  367. }
  368. })
  369. -- Kappa Maki (sushi with cucumber)
  370. minetest.register_craftitem("ethereal:sushi_kappamaki", {
  371. description = S("Kappa Maki Sushi"),
  372. inventory_image = "ethereal_sushi_kappa_maki.png",
  373. on_use = minetest.item_eat(3)
  374. })
  375. minetest.register_craft({
  376. output = "ethereal:sushi_kappamaki 2",
  377. recipe = {
  378. {"group:food_seaweed", "group:food_cucumber", "group:food_rice"}
  379. }
  380. })
  381. -- Nigiri (sushi with raw fish)
  382. minetest.register_craftitem("ethereal:sushi_nigiri", {
  383. description = S("Nigiri Sushi"),
  384. inventory_image = "ethereal_sushi_nigiri.png",
  385. on_use = minetest.item_eat(2)
  386. })
  387. minetest.register_craft({
  388. output = "ethereal:sushi_nigiri 2",
  389. recipe = {
  390. {"group:food_rice", "group:food_fish_raw", ""}
  391. }
  392. })
  393. -- Tamago (sushi with sweet egg)
  394. minetest.register_craftitem("ethereal:sushi_tamago", {
  395. description = S("Tamago Sushi"),
  396. inventory_image = "ethereal_sushi_tamago.png",
  397. on_use = minetest.item_eat(2)
  398. })
  399. minetest.register_craft({
  400. output = "ethereal:sushi_tamago 2",
  401. recipe = {
  402. {"group:food_seaweed", "group:food_egg", "group:food_rice"}
  403. }
  404. })
  405. -- Fugu (prepared pufferfish)
  406. minetest.register_craftitem("ethereal:fugu", {
  407. description = S("Fugusashi"),
  408. inventory_image = "ethereal_fugu.png",
  409. on_use = function(itemstack, user, pointed_thing)
  410. if user then
  411. if math.random(12) == 1 then
  412. return minetest.do_item_eat(-16, nil, itemstack, user, pointed_thing)
  413. else
  414. return minetest.do_item_eat(4, nil, itemstack, user, pointed_thing)
  415. end
  416. end
  417. end
  418. })
  419. minetest.register_craft({
  420. output = "ethereal:fugu",
  421. recipe = {
  422. {"group:food_cutting_board", "ethereal:fish_pufferfish", "group:food_soy_sauce"}
  423. },
  424. replacements = {
  425. {"group:food_cutting_board", "farming:cutting_board"},
  426. {"group:food_soy_sauce", "vessels:glass_bottle"}
  427. }
  428. })
  429. -- Teriyaki Chicken
  430. minetest.register_craftitem("ethereal:teriyaki_chicken", {
  431. description = S("Teriyaki Chicken"),
  432. inventory_image = "ethereal_teriyaki_chicken.png",
  433. on_use = minetest.item_eat(4)
  434. })
  435. minetest.register_craft({
  436. output = "ethereal:teriyaki_chicken 2",
  437. recipe = {
  438. {"group:food_chicken_raw", "group:food_sugar", "group:food_soy_sauce"},
  439. {"group:food_garlic_clove", "group:food_saucepan", "group:food_gelatin"}
  440. },
  441. replacements = {
  442. {"group:food_soy_sauce", "vessels:glass_bottle"},
  443. {"group:food_saucepan", "farming:saucepan"}
  444. }
  445. })
  446. -- Teriyaki Beef
  447. minetest.register_craftitem("ethereal:teriyaki_beef", {
  448. description = S("Teriyaki Beef"),
  449. inventory_image = "ethereal_teriyaki_beef.png",
  450. on_use = minetest.item_eat(12, "ethereal:bowl")
  451. })
  452. minetest.register_craft({
  453. output = "ethereal:teriyaki_beef",
  454. recipe = {
  455. {"group:food_meat_raw", "group:food_sugar", "group:food_soy_sauce"},
  456. {"group:food_garlic_clove", "group:food_saucepan", "group:food_gelatin"},
  457. {"group:food_cabbage", "group:food_rice", "group:food_bowl"}
  458. },
  459. replacements = {
  460. {"group:food_soy_sauce", "vessels:glass_bottle"},
  461. {"group:food_saucepan", "farming:saucepan"}
  462. }
  463. })