pie = {} local sra = ocutil.safe_register_alias -- check for available hunger mods local hmod = minetest.global_exists("hunger") local hbmod = minetest.global_exists("hbhunger") local stmod = minetest.global_exists("stamina") -- eat pie slice function local replace_pie = function(node, puncher, pos) -- is this my pie? if minetest.is_protected(pos, puncher:get_player_name()) then return end -- which size of pie did we hit? local pie = node.name:split("_")[1] local num = tonumber(node.name:split("_")[2]) -- are we using crystal shovel to pick up full pie using soft touch? local tool = puncher:get_wielded_item():get_name() if num == 0 and tool == "ethereal:shovel_crystal" then local inv = puncher:get_inventory() minetest.remove_node(pos) if inv:room_for_item("main", {name = pie .. "_0"}) then inv:add_item("main", pie .. "_0") else pos.y = pos.y + 0.5 minetest.add_item(pos, {name = pie .. "_0"}) end return end -- eat slice or remove whole pie if num == 3 then node.name = "air" elseif num < 3 then node.name = pie .. "_" .. (num + 1) end minetest.swap_node(pos, {name = node.name}) -- Blockmen's hud_hunger mod if hmod then local h = hunger.read(puncher) -- print ("hunger is "..h) h = math.min(h + 4, 30) local ok = hunger.update_hunger(puncher, h) minetest.sound_play("hunger_eat", { pos = pos, gain = 0.7, max_hear_distance = 5}) -- Wuzzy's hbhunger mod elseif hbmod then local h = tonumber(hbhunger.hunger[puncher:get_player_name()]) -- print ("hbhunger is "..h) h = math.min(h + 4, 30) hbhunger.hunger[puncher:get_player_name()] = h minetest.sound_play("hbhunger_eat_generic", { pos = pos, gain = 0.7, max_hear_distance = 5}) -- Sofar's stamina mod elseif stmod then stamina.change(puncher, 4) minetest.sound_play("stamina_eat", { pos = pos, gain = 0.7, max_hear_distance = 5}) -- none of the above found? add to health instead else local h = puncher:get_hp() h = math.min (h + 4, 20) puncher:set_hp (h) end end -- register pie bits pie.register_pie = function (pie, desc, modname) if modname == nil or modname == "" then modname = "pie" end local modprefix = ":" .. modname .. ":" -- full pie minetest.register_node (modprefix .. pie .. "_0", { description = desc, paramtype = "light", sunlight_propagates = false, tiles = { pie .. "_top.png", pie .. "_bottom.png", pie .. "_side.png", pie .. "_side.png", pie .. "_side.png", pie .. "_side.png" }, inventory_image = pie .. "_inv.png", wield_image = pie .. "_inv.png", drawtype = "nodebox", node_box = { type = "fixed", fixed = {{-0.45, -0.5, -0.45, 0.45, 0, 0.45}}, }, on_punch = function(pos, node, puncher, pointed_thing) replace_pie (node, puncher, pos) end, }) -- 3/4 pie minetest.register_node (modprefix .. pie .. "_1", { description = "3/4" .. desc, paramtype = "light", sunlight_propagates = true, tiles = { pie .. "_top.png", pie .. "_bottom.png", pie .. "_side.png", pie .. "_side.png", pie .. "_side.png", pie .. "_inside.png" }, groups = {not_in_creative_inventory = 1}, drop = {}, drawtype = "nodebox", node_box = { type = "fixed", fixed = {{-0.45, -0.5, -0.25, 0.45, 0, 0.45}}, }, on_punch = function(pos, node, puncher, pointed_thing) replace_pie (node, puncher, pos) end, }) -- 1/2 pie minetest.register_node (modprefix .. pie .. "_2", { description = "Half " .. desc, paramtype = "light", sunlight_propagates = true, tiles = { pie .. "_top.png", pie .. "_bottom.png", pie .. "_side.png", pie .. "_side.png", pie .. "_side.png", pie .. "_inside.png" }, groups = {not_in_creative_inventory = 1}, drop = {}, drawtype = "nodebox", node_box = { type = "fixed", fixed = {{-0.45, -0.5, 0.0, 0.45, 0, 0.45}}, }, on_punch = function(pos, node, puncher, pointed_thing) replace_pie (node, puncher, pos) end, }) -- 1/4 pie minetest.register_node (modprefix .. pie .. "_3", { description = "Piece of " .. desc, paramtype = "light", sunlight_propagates = true, tiles = { pie .. "_top.png", pie .. "_bottom.png", pie .. "_side.png", pie .. "_side.png", pie .. "_side.png", pie .. "_inside.png" }, groups = {not_in_creative_inventory = 1}, drop = {}, drawtype = "nodebox", node_box = { type = "fixed", fixed = {{-0.45, -0.5, 0.25, 0.45, 0, 0.45}}, }, on_punch = function(pos, node, puncher, pointed_thing) replace_pie (node, puncher, pos) end, }) end -- Basic cake pie.register_pie ("pie", "Cake") sra ("cake:cake", "pie:pie_0") minetest.register_craft({ output = "pie:pie_0", recipe = { {"group:food_sugar", "group:food_milk", "group:food_sugar"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- chocolate cake pie.register_pie ("choc", "Chocolate Cake") sra ("cake:chocolate", "pie:choc_0") minetest.register_craft({ output = "pie:choc_0", recipe = { {"group:food_cocoa", "group:food_milk", "group:food_cocoa"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- strawberry cheesecake pie.register_pie ("scsk", "Strawberry Cheesecake") sra ("cake:cheesecake" , "pie:scsk_0") sra ("cake:strawberry_cheesecake" , "pie:scsk_0") minetest.register_craft({ output = "pie:scsk_0", recipe = { {"group:food_strawberry", "group:food_milk", "group:food_strawberry"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- coffee cake pie.register_pie ("rbcake", "Rainbow Cake") -- coffee cake pie.register_pie ("coff", "Coffee Cake") sra ("cake:coffee", "pie:coff_0") minetest.register_craft({ output = "pie:coff_0", recipe = { {"group:food_coffee", "group:food_milk", "group:food_coffee"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- red velvet cake pie.register_pie ("rvel", "Red Velvet Cake") sra ("cake:redvelvet" , "pie:rvel_0") sra ("cake:red_velvet" , "pie:rvel_0") minetest.register_craft({ output = "pie:rvel_0", recipe = { {"group:food_cocoa", "group:food_milk", "dye:red"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_flour", "group:food_cheese", "group:food_flour"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- meat cake pie.register_pie ("meat", "Meat Cake") sra ("cake:meat", "pie:meat_0") minetest.register_craft({ output = "pie:meat_0", recipe = { {"group:food_meat_raw", "group:food_egg", "group:food_meat_raw"}, {"group:food_wheat", "group:food_wheat", "group:food_wheat"}, }, }) -- banana cake pie.register_pie ("bana", "Banana Cake") sra ("cake:banana", "pie:bana_0") minetest.register_craft({ output = "pie:bana_0", recipe = { {"group:food_banana", "group:food_milk", "group:food_banana"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- bread pudding pie.register_pie ("brpd","Bread Pudding") sra ("cake:breadpudding" , "pie:brpd_0") sra ("cake:bread_pudding" , "pie:brpd_0") minetest.register_craft({ output = "pie:brpd_0", recipe = { {"group:food_bread", "group:food_milk", "group:food_bread"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- orange pie pie.register_pie ("orange","Orange Pie") sra ("pie:orange", "pie:orange_0") minetest.register_craft({ output = "pie:orange_0", recipe = { {"group:food_orange", "group:food_milk", "group:food_orange"}, {"group:food_sugar", "group:food_egg", "group:food_sugar"}, {"group:food_wheat", "group:food_flour", "group:food_wheat"}, }, replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} }) -- add lucky blocks if minetest.get_modpath("lucky_block") then lucky_block:add_blocks({ {"nod", "pie:pie_0", 0}, {"nod", "pie:choc_0", 0}, {"nod", "pie:coff_0", 0}, {"tro", "pie:pie_0"}, {"nod", "pie:rvel_0", 0}, {"nod", "pie:scsk_0", 0}, {"nod", "pie:bana_0", 0}, {"nod", "pie:orange_0", 0}, {"tro", "pie:orange_0", "default_place_node_hard", true}, {"nod", "pie:brpd_0", 0}, {"nod", "pie:meat_0", 0}, {"lig"}, }) end -- This code creates a 2nd type of Rhubarb pie that may appear in some -- worlds. -- pie.register_pie ("rhubarbpie", "Rhubarb Pie", "farming") sra ("pie:rhubarb", "farming:rhubarbpie_0") pie.register_pie ("applepie", "Apple Pie") sra ("pie:apple", "pie:applepie_0") -- some aliases for older pie mod by Mitroman minetest.register_alias("pie:apie_0", "pie:applepie_0") minetest.register_alias("pie:apie_1", "pie:applepie_1") minetest.register_alias("pie:apie_2", "pie:applepie_2") minetest.register_alias("pie:apie_3", "pie:applepie_3") minetest.register_alias("pie:piebatter", "pie:pie_0") minetest.register_alias("pie:apiebatter", "pie:pie_0") minetest.register_alias("pie:amuffinbatter", "pie:pie_0") minetest.register_alias("pie:applemuffin", "pie:pie_0") minetest.register_alias("pie:sugar", "farming:sugar") minetest.register_alias("pie:knife", "default:sword_steel") print ("[MOD] Pie loaded")