From c6391af5d7dac49e230beb6f6b98ce6e5588a943 Mon Sep 17 00:00:00 2001 From: DinoNuggies4665 Date: Tue, 30 May 2023 16:31:58 -0500 Subject: [PATCH] Added visible items cooking on the fire --- mods/ITEMS/mcl_campfires/api.lua | 7 ++ mods/ITEMS/mcl_fishing/init.lua | 44 +++++++++++++ mods/ITEMS/mcl_mobitems/init.lua | 110 +++++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+) diff --git a/mods/ITEMS/mcl_campfires/api.lua b/mods/ITEMS/mcl_campfires/api.lua index 91db99fe5..6f0251976 100644 --- a/mods/ITEMS/mcl_campfires/api.lua +++ b/mods/ITEMS/mcl_campfires/api.lua @@ -11,6 +11,12 @@ end -- on_rightclick function to take items that are cookable in a campfire, and put them in the campfire inventory function mcl_campfires.take_item(pos, node, player, itemstack) + local campfire_spots = { + {x = -0.25, y = -0.04, z = -0.25}, + {x = 0.25, y = -0.04, z = -0.25}, + {x = 0.25, y = -0.04, z = 0.25}, + {x = -0.25, y = -0.04, z = 0.25}, + } local is_creative = minetest.is_creative_enabled(player:get_player_name()) local inv = player:get_inventory() local campfire_meta = minetest.get_meta(pos) @@ -26,6 +32,7 @@ function mcl_campfires.take_item(pos, node, player, itemstack) if not is_creative then itemstack:take_item(1) end -- Take the item if in creative campfire_inv:set_stack("main", space, stack) -- Set the inventory itemstack at the empty spot campfire_meta:set_int("cooktime_"..tostring(space), 30) -- Set the cook time meta + minetest.add_entity(pos + campfire_spots[space], player:get_wielded_item():get_name().."_entity") -- Spawn food item on the campfire break end end diff --git a/mods/ITEMS/mcl_fishing/init.lua b/mods/ITEMS/mcl_fishing/init.lua index 9b0414daa..c84f28c9d 100644 --- a/mods/ITEMS/mcl_fishing/init.lua +++ b/mods/ITEMS/mcl_fishing/init.lua @@ -454,6 +454,28 @@ minetest.register_craft({ cooktime = 10, }) +minetest.register_entity("mcl_fishing:fish_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_fishing:fish_raw", + wield_image = "mcl_fishing_fish_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + -- Salmon minetest.register_craftitem("mcl_fishing:salmon_raw", { description = S("Raw Salmon"), @@ -484,6 +506,28 @@ minetest.register_craft({ cooktime = 10, }) +minetest.register_entity("mcl_fishing:salmon_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_fishing:salmon_raw", + wield_image = "mcl_fishing_salmon_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + -- Clownfish minetest.register_craftitem("mcl_fishing:clownfish_raw", { description = S("Clownfish"), diff --git a/mods/ITEMS/mcl_mobitems/init.lua b/mods/ITEMS/mcl_mobitems/init.lua index a47e11bfa..a84e3ece8 100644 --- a/mods/ITEMS/mcl_mobitems/init.lua +++ b/mods/ITEMS/mcl_mobitems/init.lua @@ -37,6 +37,28 @@ minetest.register_craftitem("mcl_mobitems:cooked_mutton", { stack_max = 64, }) +minetest.register_entity("mcl_mobitems:mutton_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_mobitems:mutton", + wield_image = "mcl_mobitems_mutton_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + minetest.register_craftitem("mcl_mobitems:beef", { description = S("Raw Beef"), _doc_items_longdesc = S("Raw beef is the flesh from cows and can be eaten safely. Cooking it will greatly increase its nutritional value."), @@ -61,6 +83,28 @@ minetest.register_craftitem("mcl_mobitems:cooked_beef", { stack_max = 64, }) +minetest.register_entity("mcl_mobitems:beef_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_mobitems:beef", + wield_image = "mcl_mobitems_beef_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + minetest.register_craftitem("mcl_mobitems:chicken", { description = S("Raw Chicken"), _tt_help = minetest.colorize(mcl_colors.YELLOW, S("30% chance of food poisoning")), @@ -86,6 +130,28 @@ minetest.register_craftitem("mcl_mobitems:cooked_chicken", { stack_max = 64, }) +minetest.register_entity("mcl_mobitems:chicken_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_mobitems:chicken", + wield_image = "mcl_mobitems_chicken_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + minetest.register_craftitem("mcl_mobitems:porkchop", { description = S("Raw Porkchop"), _doc_items_longdesc = S("A raw porkchop is the flesh from a pig and can be eaten safely. Cooking it will greatly increase its nutritional value."), @@ -110,6 +176,28 @@ minetest.register_craftitem("mcl_mobitems:cooked_porkchop", { stack_max = 64, }) +minetest.register_entity("mcl_mobitems:porkchop_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_mobitems:porkchop", + wield_image = "mcl_mobitems_porkchop_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + minetest.register_craftitem("mcl_mobitems:rabbit", { description = S("Raw Rabbit"), _doc_items_longdesc = S("Raw rabbit is a food item from a dead rabbit. It can be eaten safely. Cooking it will increase its nutritional value."), @@ -134,6 +222,28 @@ minetest.register_craftitem("mcl_mobitems:cooked_rabbit", { stack_max = 64, }) +minetest.register_entity("mcl_mobitems:rabbit_entity", { + initial_properties = { + physical = false, + visual = "wielditem", + wield_item = "mcl_mobitems:rabbit", + wield_image = "mcl_mobitems_rabbit_raw.png", + visual_size = {x=0.25, y=0.25}, + collisionbox = {0,0,0,0,0,0}, + pointable = false, + }, + on_activate = function(self, staticdata) + self.timer = 0 + self.object:set_rotation({x = math.pi / 2, y = 0, z = 0}) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.timer > 31 then + self.object:remove() + end + end, +}) + -- Reset food poisoning and status effects local function drink_milk(itemstack, player, pointed_thing) local bucket = minetest.do_item_eat(0, "mcl_buckets:bucket_empty", itemstack, player, pointed_thing)