From 6a680e5302646c0e2120359b6ce9fded92a6a6fd Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Sat, 23 Mar 2019 15:34:23 -0400 Subject: [PATCH] milk cow with drinking glass --- .../mods/coderfood/food_basic/ingredients.lua | 310 ++++++++++++++++ .../mods/coderfood/food_basic/init.lua | 331 ++++++++++++++++++ .../mods/coderfood/food_basic/ingredients.lua | 304 ++++++++++++++++ .../mods/coderfood/food_basic/init.lua | 331 ++++++++++++++++++ .../food_basic/textures/mobs_bucket_milk.png | Bin 0 -> 34819 bytes 5 files changed, 1276 insertions(+) create mode 100644 patches/Bucket_Game-basis/mods/coderfood/food_basic/ingredients.lua create mode 100644 patches/Bucket_Game-basis/mods/coderfood/food_basic/init.lua create mode 100644 patches/Bucket_Game-patched/mods/coderfood/food_basic/ingredients.lua create mode 100644 patches/Bucket_Game-patched/mods/coderfood/food_basic/init.lua create mode 100644 patches/Bucket_Game-patched/mods/coderfood/food_basic/textures/mobs_bucket_milk.png diff --git a/patches/Bucket_Game-basis/mods/coderfood/food_basic/ingredients.lua b/patches/Bucket_Game-basis/mods/coderfood/food_basic/ingredients.lua new file mode 100644 index 0000000..f888c05 --- /dev/null +++ b/patches/Bucket_Game-basis/mods/coderfood/food_basic/ingredients.lua @@ -0,0 +1,310 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food_basic/ingredients.lua +-- Fallback ingredients +-- ===================================== + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = 0 +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +food.module("wheat", function() + minetest.register_craftitem(":food:wheat", { + description = S("Wheat"), + inventory_image = "food_wheat.png", + groups = {food_wheat=1} + }) + + food.craft({ + output = "food:wheat", + recipe = { + {"default:dry_shrub"}, + } + }) +end, true) + +food.module("flour", function() + minetest.register_craftitem(":food:flour", { + description = S("Flour"), + inventory_image = "food_flour.png", + groups = {food_flour = 1} + }) + food.craft({ + output = "food:flour", + recipe = { + {"group:food_wheat"}, + {"group:food_wheat"} + } + }) + food.craft({ + output = "food:flour", + recipe = { + {"default:sand"}, + {"default:sand"} + } + }) +end, true) + +food.module("potato", function() + minetest.register_craftitem(":food:potato", { + description = S("Potato"), + inventory_image = "food_potato.png", + groups = {food_potato = 1} + }) + food.craft({ + output = "food:potato", + recipe = { + {"default:dirt"}, + {"default:apple"} + + } + }) +end, true) + +food.module("orange", function() + minetest.register_craftitem(":food:orange", { + description = S("Orange"), + inventory_image = "food_orange.png", + groups = {food_orange = 1} + }) + food.craft({ + output = "food:orange", + recipe = { + {"", "default:desert_sand", ""}, + {"default:desert_sand", "default:desert_sand", "default:desert_sand"}, + {"", "default:desert_sand", ""} + } + }) +end, true) + +food.module("tomato", function() + minetest.register_craftitem(":food:tomato", { + description = S("Tomato"), + inventory_image = "food_tomato.png", + groups = {food_tomato = 1} + }) + food.craft({ + output = "food:tomato", + recipe = { + {"", "default:desert_sand", ""}, + {"default:desert_sand", "", "default:desert_sand"}, + {"", "default:desert_sand", ""} + } + }) +end, true) + +food.module("carrot", function() + minetest.register_craftitem(":food:carrot", { + description = S("Carrot"), + inventory_image = "food_carrot.png", + groups = {food_carrot=1}, + on_use = food.item_eat(3) + }) + food.craft({ + output = "food:carrot", + recipe = { + {"default:apple", "default:apple", "default:apple"}, + } + }) +end, true) + +food.module("milk", function() + minetest.register_craftitem(":food:milk", { + description = S("Milk"), + image = "food_milk.png", + on_use = food.item_eat(1), + groups = { eatable=1, food_milk = 1 }, + stack_max=10 + }) + food.craft({ + output = "food:milk", + recipe = { + {"default:sand"}, + {"bucket:bucket_water"} + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}, + }) +end, true) + +food.module("egg", function() + minetest.register_craftitem(":food:egg", { + description = S("Egg"), + inventory_image = "food_egg.png", + groups = {food_egg=1} + }) + food.craft({ + output = "food:egg", + recipe = { + {"", "default:sand", ""}, + {"default:sand", "", "default:sand"}, + {"", "default:sand", ""} + } + }) +end, true) + +food.module("cocoa", function() + minetest.register_craftitem(":food:cocoa", { + description = S("Cocoa Bean"), + inventory_image = "food_cocoa.png", + groups = {food_cocoa=1} + }) + food.craft({ + output = "food:cocoa", + recipe = { + {"", "default:apple", ""}, + {"default:apple", "", "default:apple"}, + {"", "default:apple", ""} + } + }) +end, true) + +food.module("meat", function() + minetest.register_craftitem(":food:meat", { + description = S("Venison"), + inventory_image = "food_meat.png", + groups = {food_meat=1, food_chicken=1} + }) + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "group:food_meat_raw", + cooktime = 30 + }) + + if not minetest.get_modpath("animalmaterials") then + minetest.register_craftitem(":food:meat_raw", { + description = S("Raw meat"), + image = "food_meat_raw.png", + on_use = food.item_eat(1), + groups = { meat=1, eatable=1, food_meat_raw=1 }, + stack_max=25 + }) + food.craft({ + output = "food:meat_raw", + recipe = { + {"default:apple"}, + {"default:dirt"} + } + }) + end +end, true) + +food.module("sugar", function() + minetest.register_craftitem(":food:sugar", { + description = S("Sugar"), + inventory_image = "food_sugar.png", + groups = {food_sugar=1} + }) + + minetest.register_craft({ + output = "food:sugar 20", + recipe = { + {"default:papyrus"}, + } + }) +end, true) + +food.module("chocolate_powder", function() + minetest.register_craftitem(":food:chocolate_powder", { + description = S("Chocolate Powder"), + inventory_image = "food_chocolate_powder.png", + groups = {food_choco_powder = 1} + }) + food.craft({ + output = "food:chocolate_powder 16", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end, true) + +food.module("pasta", function() + minetest.register_craftitem(":food:pasta",{ + description = S("Pasta"), + inventory_image = "food_pasta.png", + groups = {food_pasta=1} + }) + food.craft({ + output = "food:pasta 4", + type = "shapeless", + recipe = {"group:food_flour","group:food_egg","group:food_egg"} + }) +end, true) + +food.module("bowl", function() + minetest.register_craftitem(":food:bowl",{ + description = S("Bowl"), + inventory_image = "food_bowl.png", + groups = {food_bowl=1} + }) + food.craft({ + output = "food:bowl", + recipe = { + {"default:clay_lump","","default:clay_lump"}, + {"","default:clay_lump",""} + } + }) +end, true) + +food.module("butter", function() + minetest.register_craftitem(":food:butter", { + description = S("Butter"), + inventory_image = "food_butter.png", + groups = {food_butter=1} + }) + food.craft({ + output = "food:butter", + recipe = {{"group:food_milkbucket","group:food_milkbucket"}}, + replacements = { + {"group:food_milkbucket","bucket:bucket_empty"}, + {"group:food_milkbucket","bucket:bucket_empty"} + }, + }) + food.craft({ + output = "food:butter", + recipe = { + {"group:food_milk","group:food_milkbucket"} + }, + replacements = { + {"group:food_milkbucket","bucket:bucket_empty"}, + }, + }) + food.craft({ + output = "food:butter", + recipe = { + {"group:food_milk","group:food_milk"}, + } + }) +end, true) + +food.module("cheese", function() + minetest.register_craftitem(":food:cheese", { + description = S("Cheese"), + inventory_image = "food_cheese.png", + on_use = food.item_eat(4), + groups = {food_cheese=1} + }) + food.craft({ + output = "food:cheese", + recipe = { + {"group:food_butter","group:food_butter"}, + } + }) +end, true) + +if (minetest.get_modpath("animalmaterials") and not minetest.get_modpath("mobfcooking")) then + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "animalmaterials:meat_raw", + cooktime = 30 + }) +end diff --git a/patches/Bucket_Game-basis/mods/coderfood/food_basic/init.lua b/patches/Bucket_Game-basis/mods/coderfood/food_basic/init.lua new file mode 100644 index 0000000..22de5a9 --- /dev/null +++ b/patches/Bucket_Game-basis/mods/coderfood/food_basic/init.lua @@ -0,0 +1,331 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food_basic/init.lua +-- Some basic foods +-- ===================================== + +print("Food Mod - Version 2.3") + +if not minetest.registered_nodes ["mobs:egg"] then + minetest.register_node(":mobs:egg", { + description = "Chicken Egg", + tiles = {"mobs_chicken_egg.png"}, + inventory_image = "mobs_chicken_egg.png", + visual_scale = 0.7 , + drawtype = "plantlike" , + wield_image = "mobs_chicken_egg.png" , + paramtype = "light" , + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {snappy=2, dig_immediate=3}, + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "mobs:egg", param2 = 1}) + end + end + }) +end + +if not minetest.registered_items ["mobs:bucket_milk"] then + minetest.register_craftitem (":mobs:bucket_milk", { + description = "Bucket of Milk", + inventory_image = "mobs_bucket_milk.png", + stack_max = 1, + on_use = minetest.item_eat (8, 'bucket:bucket_empty') , + }) +end + +dofile(minetest.get_modpath("food_basic").."/support.lua") +dofile(minetest.get_modpath("food_basic").."/ingredients.lua") + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = 0 +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +-- Register dark chocolate +food.module("dark_chocolate", function() + minetest.register_craftitem(":food:dark_chocolate",{ + description = S("Dark Chocolate"), + inventory_image = "food_dark_chocolate.png", + on_use = food.item_eat(3), + groups = {food_dark_chocolate=1} + }) + food.craft({ + output = "food:dark_chocolate", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register milk chocolate +food.module("milk_chocolate", function() + minetest.register_craftitem(":food:milk_chocolate",{ + description = S("Milk Chocolate"), + inventory_image = "food_milk_chocolate.png", + on_use = food.item_eat(3), + groups = {food_milk_chocolate=1} + }) + food.craft({ + output = "food:milk_chocolate", + recipe = { + {"","group:food_milk",""}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register baked potato +food.module("baked_potato", function() + minetest.register_craftitem(":food:baked_potato", { + description = S("Baked Potato"), + inventory_image = "food_baked_potato.png", + on_use = food.item_eat(6), + }) + food.craft({ + type = "cooking", + output = "food:baked_potato", + recipe = "group:food_potato", + }) +end) + +-- Register pasta bake +food.module("pasta_bake", function() + minetest.register_craftitem(":food:pasta_bake",{ + description = S("Pasta Bake"), + inventory_image = "food_pasta_bake.png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem(":food:pasta_bake_raw",{ + description = S("Raw Pasta Bake"), + inventory_image = "food_pasta_bake_raw.png", + }) + food.craft({ + output = "food:pasta_bake", + type = "cooking", + recipe = "food:pasta_bake_raw" + }) + food.craft({ + output = "food:pasta_bake_raw", + recipe = { + {"group:food_cheese"}, + {"group:food_pasta"}, + {"group:food_bowl"} + } + }) +end) + +-- Register Soups +local chicken = "meat" +if minetest.get_modpath("mobs") and mobs.mod == "redo" then + chicken = "chicken" +end +local soups = { + {"tomato", "tomato"}, + {"chicken", chicken} +} +for i=1, #soups do + local flav = soups[i] + food.module("soup_"..flav[1], function() + minetest.register_craftitem(":food:soup_"..flav[1],{ + description = S(flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1]..".png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem(":food:soup_"..flav[1].."_raw",{ + description = S("Uncooked ".. flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1].."_raw.png", + + }) + food.craft({ + type = "cooking", + output = "food:soup_"..flav[1], + recipe = "food:soup_"..flav[1].."_raw", + }) + food.craft({ + output = "food:soup_"..flav[1].."_raw", + recipe = { + {"", "", ""}, + {"bucket:bucket_water", "group:food_"..flav[2], "bucket:bucket_water"}, + {"", "group:food_bowl", ""}, + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"},{"bucket:bucket_water", "bucket:bucket_empty"}} + }) + end) +end + +-- Juices +local juices = {"apple", "orange", "cactus"} +for i=1, #juices do + local flav = juices[i] + food.module(flav.."_juice", function() + minetest.register_craftitem(":food:"..flav.."_juice", { + description = S(flav.." Juice"), + inventory_image = "food_"..flav.."_juice.png", + on_use = food.item_eat(2), + }) + food.craft({ + output = "food:"..flav.."_juice 4", + recipe = { + {"","",""}, + {"","group:food_"..flav,""}, + {"","group:food_cup",""}, + } + }) + end) +end + +food.module("rainbow_juice", function() + minetest.register_craftitem(":food:rainbow_juice", { + description = S("Rainbow Juice"), + inventory_image = "food_rainbow_juice.png", + on_use = food.item_eat(20), + }) + + food.craft({ + output = "food:rainbow_juice 99", + recipe = { + {"","",""}, + {"","default:nyancat_rainbow",""}, + {"","group:food_cup",""}, + } + }) +end) + +food.cake_box = { + type = "fixed", + fixed = { + {-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, + {-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, + {-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000} + } +} + +-- Register cakes +food.module("cake", function() + minetest.register_node(":food:cake", { + description = S("Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_texture.png", + "food_cake_texture.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake", + recipe = "food:cakemix_plain", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_plain",{ + description = S("Cake Mix"), + inventory_image = "food_cakemix_plain.png", + }) + minetest.register_craft({ + output = "food:cakemix_plain", + recipe = { + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + + +food.module("cake_choco", function() + minetest.register_node(":food:cake_choco", { + description = S("Chocolate Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_choco_texture.png", + "food_cake_choco_texture.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_choco", + recipe = "food:cakemix_choco", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_choco",{ + description = S("Chocolate Cake Mix"), + inventory_image = "food_cakemix_choco.png", + }) + food.craft({ + output = "food:cakemix_choco", + recipe = { + {"","group:food_choco_powder",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + +food.module("cake_carrot", function() + minetest.register_node(":food:cake_carrot", { + description = S("Carrot Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + walkable = false, + sunlight_propagates = true, + tiles = { + "food_cake_carrot_texture.png", + "food_cake_carrot_texture.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png" + }, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_carrot", + recipe = "food:cakemix_carrot", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_carrot",{ + description = S("Carrot Cake Mix"), + inventory_image = "food_cakemix_carrot.png", + }) + food.craft({ + output = "food:cakemix_carrot", + recipe = { + {"","group:food_carrot",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + diff --git a/patches/Bucket_Game-patched/mods/coderfood/food_basic/ingredients.lua b/patches/Bucket_Game-patched/mods/coderfood/food_basic/ingredients.lua new file mode 100644 index 0000000..e468d58 --- /dev/null +++ b/patches/Bucket_Game-patched/mods/coderfood/food_basic/ingredients.lua @@ -0,0 +1,304 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food_basic/ingredients.lua +-- Fallback ingredients +-- ===================================== + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = 0 +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +food.module("wheat", function() + minetest.register_craftitem(":food:wheat", { + description = S("Wheat"), + inventory_image = "food_wheat.png", + groups = {food_wheat=1} + }) + + food.craft({ + output = "food:wheat", + recipe = { + {"default:dry_shrub"}, + } + }) +end, true) + +food.module("flour", function() + minetest.register_craftitem(":food:flour", { + description = S("Flour"), + inventory_image = "food_flour.png", + groups = {food_flour = 1} + }) + food.craft({ + output = "food:flour", + recipe = { + {"group:food_wheat"}, + {"group:food_wheat"} + } + }) + food.craft({ + output = "food:flour", + recipe = { + {"default:sand"}, + {"default:sand"} + } + }) +end, true) + +food.module("potato", function() + minetest.register_craftitem(":food:potato", { + description = S("Potato"), + inventory_image = "food_potato.png", + groups = {food_potato = 1} + }) + food.craft({ + output = "food:potato", + recipe = { + {"default:dirt"}, + {"default:apple"} + + } + }) +end, true) + +food.module("orange", function() + minetest.register_craftitem(":food:orange", { + description = S("Orange"), + inventory_image = "food_orange.png", + groups = {food_orange = 1} + }) + food.craft({ + output = "food:orange", + recipe = { + {"", "default:desert_sand", ""}, + {"default:desert_sand", "default:desert_sand", "default:desert_sand"}, + {"", "default:desert_sand", ""} + } + }) +end, true) + +food.module("tomato", function() + minetest.register_craftitem(":food:tomato", { + description = S("Tomato"), + inventory_image = "food_tomato.png", + groups = {food_tomato = 1} + }) + food.craft({ + output = "food:tomato", + recipe = { + {"", "default:desert_sand", ""}, + {"default:desert_sand", "", "default:desert_sand"}, + {"", "default:desert_sand", ""} + } + }) +end, true) + +food.module("carrot", function() + minetest.register_craftitem(":food:carrot", { + description = S("Carrot"), + inventory_image = "food_carrot.png", + groups = {food_carrot=1}, + on_use = food.item_eat(3) + }) + food.craft({ + output = "food:carrot", + recipe = { + {"default:apple", "default:apple", "default:apple"}, + } + }) +end, true) + +food.module("milk", function() + minetest.register_craftitem(":food:milk", { + description = S("Milk"), + image = "food_milk.png", + -- on_use = food.item_eat(3), + on_use = minetest.item_eat(2, 'vessels:drinking_glass'), + -- groups = { eatable=1, food_milk = 1 }, + stack_max=10 + }) + +end, true) + +food.module("egg", function() + minetest.register_craftitem(":food:egg", { + description = S("Egg"), + inventory_image = "food_egg.png", + groups = {food_egg=1} + }) + food.craft({ + output = "food:egg", + recipe = { + {"", "default:sand", ""}, + {"default:sand", "", "default:sand"}, + {"", "default:sand", ""} + } + }) +end, true) + +food.module("cocoa", function() + minetest.register_craftitem(":food:cocoa", { + description = S("Cocoa Bean"), + inventory_image = "food_cocoa.png", + groups = {food_cocoa=1} + }) + food.craft({ + output = "food:cocoa", + recipe = { + {"", "default:apple", ""}, + {"default:apple", "", "default:apple"}, + {"", "default:apple", ""} + } + }) +end, true) + +food.module("meat", function() + minetest.register_craftitem(":food:meat", { + description = S("Venison"), + inventory_image = "food_meat.png", + groups = {food_meat=1, food_chicken=1} + }) + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "group:food_meat_raw", + cooktime = 30 + }) + + if not minetest.get_modpath("animalmaterials") then + minetest.register_craftitem(":food:meat_raw", { + description = S("Raw meat"), + image = "food_meat_raw.png", + on_use = food.item_eat(1), + groups = { meat=1, eatable=1, food_meat_raw=1 }, + stack_max=25 + }) + food.craft({ + output = "food:meat_raw", + recipe = { + {"default:apple"}, + {"default:dirt"} + } + }) + end +end, true) + +food.module("sugar", function() + minetest.register_craftitem(":food:sugar", { + description = S("Sugar"), + inventory_image = "food_sugar.png", + groups = {food_sugar=1} + }) + + minetest.register_craft({ + output = "food:sugar 20", + recipe = { + {"default:papyrus"}, + } + }) +end, true) + +food.module("chocolate_powder", function() + minetest.register_craftitem(":food:chocolate_powder", { + description = S("Chocolate Powder"), + inventory_image = "food_chocolate_powder.png", + groups = {food_choco_powder = 1} + }) + food.craft({ + output = "food:chocolate_powder 16", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end, true) + +food.module("pasta", function() + minetest.register_craftitem(":food:pasta",{ + description = S("Pasta"), + inventory_image = "food_pasta.png", + groups = {food_pasta=1} + }) + food.craft({ + output = "food:pasta 4", + type = "shapeless", + recipe = {"group:food_flour","group:food_egg","group:food_egg"} + }) +end, true) + +food.module("bowl", function() + minetest.register_craftitem(":food:bowl",{ + description = S("Bowl"), + inventory_image = "food_bowl.png", + groups = {food_bowl=1} + }) + food.craft({ + output = "food:bowl", + recipe = { + {"default:clay_lump","","default:clay_lump"}, + {"","default:clay_lump",""} + } + }) +end, true) + +food.module("butter", function() + minetest.register_craftitem(":food:butter", { + description = S("Butter"), + inventory_image = "food_butter.png", + groups = {food_butter=1} + }) + food.craft({ + output = "food:butter", + recipe = {{"group:food_milkbucket","group:food_milkbucket"}}, + replacements = { + {"group:food_milkbucket","bucket:bucket_empty"}, + {"group:food_milkbucket","bucket:bucket_empty"} + }, + }) + food.craft({ + output = "food:butter", + recipe = { + {"group:food_milk","group:food_milkbucket"} + }, + replacements = { + {"group:food_milkbucket","bucket:bucket_empty"}, + }, + }) + food.craft({ + output = "food:butter", + recipe = { + {"group:food_milk","group:food_milk"}, + } + }) +end, true) + +food.module("cheese", function() + minetest.register_craftitem(":food:cheese", { + description = S("Cheese"), + inventory_image = "food_cheese.png", + on_use = food.item_eat(4), + groups = {food_cheese=1} + }) + food.craft({ + output = "food:cheese", + recipe = { + {"group:food_butter","group:food_butter"}, + } + }) +end, true) + +if (minetest.get_modpath("animalmaterials") and not minetest.get_modpath("mobfcooking")) then + food.craft({ + type = "cooking", + output = "food:meat", + recipe = "animalmaterials:meat_raw", + cooktime = 30 + }) +end diff --git a/patches/Bucket_Game-patched/mods/coderfood/food_basic/init.lua b/patches/Bucket_Game-patched/mods/coderfood/food_basic/init.lua new file mode 100644 index 0000000..22de5a9 --- /dev/null +++ b/patches/Bucket_Game-patched/mods/coderfood/food_basic/init.lua @@ -0,0 +1,331 @@ +-- FOOD MOD +-- A mod written by rubenwardy that adds +-- food to the minetest game +-- ===================================== +-- >> food_basic/init.lua +-- Some basic foods +-- ===================================== + +print("Food Mod - Version 2.3") + +if not minetest.registered_nodes ["mobs:egg"] then + minetest.register_node(":mobs:egg", { + description = "Chicken Egg", + tiles = {"mobs_chicken_egg.png"}, + inventory_image = "mobs_chicken_egg.png", + visual_scale = 0.7 , + drawtype = "plantlike" , + wield_image = "mobs_chicken_egg.png" , + paramtype = "light" , + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + groups = {snappy=2, dig_immediate=3}, + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "mobs:egg", param2 = 1}) + end + end + }) +end + +if not minetest.registered_items ["mobs:bucket_milk"] then + minetest.register_craftitem (":mobs:bucket_milk", { + description = "Bucket of Milk", + inventory_image = "mobs_bucket_milk.png", + stack_max = 1, + on_use = minetest.item_eat (8, 'bucket:bucket_empty') , + }) +end + +dofile(minetest.get_modpath("food_basic").."/support.lua") +dofile(minetest.get_modpath("food_basic").."/ingredients.lua") + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = 0 +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +-- Register dark chocolate +food.module("dark_chocolate", function() + minetest.register_craftitem(":food:dark_chocolate",{ + description = S("Dark Chocolate"), + inventory_image = "food_dark_chocolate.png", + on_use = food.item_eat(3), + groups = {food_dark_chocolate=1} + }) + food.craft({ + output = "food:dark_chocolate", + recipe = { + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register milk chocolate +food.module("milk_chocolate", function() + minetest.register_craftitem(":food:milk_chocolate",{ + description = S("Milk Chocolate"), + inventory_image = "food_milk_chocolate.png", + on_use = food.item_eat(3), + groups = {food_milk_chocolate=1} + }) + food.craft({ + output = "food:milk_chocolate", + recipe = { + {"","group:food_milk",""}, + {"group:food_cocoa","group:food_cocoa","group:food_cocoa"} + } + }) +end) + +-- Register baked potato +food.module("baked_potato", function() + minetest.register_craftitem(":food:baked_potato", { + description = S("Baked Potato"), + inventory_image = "food_baked_potato.png", + on_use = food.item_eat(6), + }) + food.craft({ + type = "cooking", + output = "food:baked_potato", + recipe = "group:food_potato", + }) +end) + +-- Register pasta bake +food.module("pasta_bake", function() + minetest.register_craftitem(":food:pasta_bake",{ + description = S("Pasta Bake"), + inventory_image = "food_pasta_bake.png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem(":food:pasta_bake_raw",{ + description = S("Raw Pasta Bake"), + inventory_image = "food_pasta_bake_raw.png", + }) + food.craft({ + output = "food:pasta_bake", + type = "cooking", + recipe = "food:pasta_bake_raw" + }) + food.craft({ + output = "food:pasta_bake_raw", + recipe = { + {"group:food_cheese"}, + {"group:food_pasta"}, + {"group:food_bowl"} + } + }) +end) + +-- Register Soups +local chicken = "meat" +if minetest.get_modpath("mobs") and mobs.mod == "redo" then + chicken = "chicken" +end +local soups = { + {"tomato", "tomato"}, + {"chicken", chicken} +} +for i=1, #soups do + local flav = soups[i] + food.module("soup_"..flav[1], function() + minetest.register_craftitem(":food:soup_"..flav[1],{ + description = S(flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1]..".png", + on_use = food.item_eat(4), + groups = {food=3} + }) + minetest.register_craftitem(":food:soup_"..flav[1].."_raw",{ + description = S("Uncooked ".. flav[1].." Soup"), + inventory_image = "food_soup_"..flav[1].."_raw.png", + + }) + food.craft({ + type = "cooking", + output = "food:soup_"..flav[1], + recipe = "food:soup_"..flav[1].."_raw", + }) + food.craft({ + output = "food:soup_"..flav[1].."_raw", + recipe = { + {"", "", ""}, + {"bucket:bucket_water", "group:food_"..flav[2], "bucket:bucket_water"}, + {"", "group:food_bowl", ""}, + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"},{"bucket:bucket_water", "bucket:bucket_empty"}} + }) + end) +end + +-- Juices +local juices = {"apple", "orange", "cactus"} +for i=1, #juices do + local flav = juices[i] + food.module(flav.."_juice", function() + minetest.register_craftitem(":food:"..flav.."_juice", { + description = S(flav.." Juice"), + inventory_image = "food_"..flav.."_juice.png", + on_use = food.item_eat(2), + }) + food.craft({ + output = "food:"..flav.."_juice 4", + recipe = { + {"","",""}, + {"","group:food_"..flav,""}, + {"","group:food_cup",""}, + } + }) + end) +end + +food.module("rainbow_juice", function() + minetest.register_craftitem(":food:rainbow_juice", { + description = S("Rainbow Juice"), + inventory_image = "food_rainbow_juice.png", + on_use = food.item_eat(20), + }) + + food.craft({ + output = "food:rainbow_juice 99", + recipe = { + {"","",""}, + {"","default:nyancat_rainbow",""}, + {"","group:food_cup",""}, + } + }) +end) + +food.cake_box = { + type = "fixed", + fixed = { + {-0.250000,-0.500000,-0.296880,0.250000,-0.250000,0.312502}, + {-0.309375,-0.500000,-0.250000,0.309375,-0.250000,0.250000}, + {-0.250000,-0.250000,-0.250000,0.250000,-0.200000,0.250000} + } +} + +-- Register cakes +food.module("cake", function() + minetest.register_node(":food:cake", { + description = S("Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_texture.png", + "food_cake_texture.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png", + "food_cake_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake", + recipe = "food:cakemix_plain", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_plain",{ + description = S("Cake Mix"), + inventory_image = "food_cakemix_plain.png", + }) + minetest.register_craft({ + output = "food:cakemix_plain", + recipe = { + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + + +food.module("cake_choco", function() + minetest.register_node(":food:cake_choco", { + description = S("Chocolate Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + tiles = { + "food_cake_choco_texture.png", + "food_cake_choco_texture.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png", + "food_cake_choco_texture_side.png" + }, + walkable = false, + sunlight_propagates = true, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_choco", + recipe = "food:cakemix_choco", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_choco",{ + description = S("Chocolate Cake Mix"), + inventory_image = "food_cakemix_choco.png", + }) + food.craft({ + output = "food:cakemix_choco", + recipe = { + {"","group:food_choco_powder",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + +food.module("cake_carrot", function() + minetest.register_node(":food:cake_carrot", { + description = S("Carrot Cake"), + on_use = food.item_eat(4), + groups={food=3,crumbly=3}, + walkable = false, + sunlight_propagates = true, + tiles = { + "food_cake_carrot_texture.png", + "food_cake_carrot_texture.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png", + "food_cake_carrot_texture_side.png" + }, + drawtype="nodebox", + paramtype = "light", + node_box = food.cake_box + }) + food.craft({ + type = "cooking", + output = "food:cake_carrot", + recipe = "food:cakemix_carrot", + cooktime = 10, + }) + minetest.register_craftitem(":food:cakemix_carrot",{ + description = S("Carrot Cake Mix"), + inventory_image = "food_cakemix_carrot.png", + }) + food.craft({ + output = "food:cakemix_carrot", + recipe = { + {"","group:food_carrot",""}, + {"group:food_flour","group:food_sugar","group:food_egg"}, + } + }) +end) + diff --git a/patches/Bucket_Game-patched/mods/coderfood/food_basic/textures/mobs_bucket_milk.png b/patches/Bucket_Game-patched/mods/coderfood/food_basic/textures/mobs_bucket_milk.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4bd6bc759ad101cade2d94b7f35f3d737234db GIT binary patch literal 34819 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%0AM=kx}v$|Ts28j?5KpA2KW{7@i2#kM*Up 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 literal 0 HcmV?d00001