From df1dffc373cfb6a46eb503cd54d36dcd0dd7d0f9 Mon Sep 17 00:00:00 2001 From: Elkien3 Date: Fri, 10 Dec 2021 16:58:06 -0600 Subject: [PATCH] initial commit --- crafts.lua | 247 ++++++ depends.txt | 6 + init.lua | 878 ++++++++++++++++++++ license.txt | 36 + models/cooking_pot_0.b3d | Bin 0 -> 33134 bytes models/cooking_pot_1.b3d | Bin 0 -> 35078 bytes models/cooking_pot_2.b3d | Bin 0 -> 35078 bytes models/cooking_pot_3.b3d | Bin 0 -> 35078 bytes models/cooking_pot_4.b3d | Bin 0 -> 35078 bytes models/electric_oven.b3d | Bin 0 -> 53680 bytes models/electric_stove.b3d | Bin 0 -> 1953 bytes models/wood_oven.b3d | Bin 0 -> 8332 bytes models/wood_stove.b3d | Bin 0 -> 3573 bytes ovenstove.lua | 451 ++++++++++ technic.lua | 236 ++++++ textures/cooking_apple_pie.png | Bin 0 -> 745 bytes textures/cooking_apple_pie_uncooked.png | Bin 0 -> 1731 bytes textures/cooking_blueberry_jam.png | Bin 0 -> 757 bytes textures/cooking_bowl.png | Bin 0 -> 784 bytes textures/cooking_bread_sliced.png | Bin 0 -> 694 bytes textures/cooking_bread_with_jam.png | Bin 0 -> 806 bytes textures/cooking_bun.png | Bin 0 -> 865 bytes textures/cooking_bun_uncooked.png | Bin 0 -> 737 bytes textures/cooking_burnt_food.png | Bin 0 -> 849 bytes textures/cooking_burnt_soup.png | Bin 0 -> 1921 bytes textures/cooking_chopped_apple.png | Bin 0 -> 682 bytes textures/cooking_mushroom_soup.png | Bin 0 -> 795 bytes textures/cooking_mushroom_soup_uncooked.png | Bin 0 -> 801 bytes textures/cooking_pie_crust.png | Bin 0 -> 716 bytes textures/cooking_pot_overlay.png | Bin 0 -> 2992 bytes textures/cooking_pot_overlay_opaque.png | Bin 0 -> 2990 bytes textures/cooking_potuv.png | Bin 0 -> 10924 bytes textures/cooking_spoon.png | Bin 0 -> 666 bytes textures/cooking_sugar.png | Bin 0 -> 631 bytes textures/cooking_toast.png | Bin 0 -> 697 bytes textures/cooking_toast_with_jam.png | Bin 0 -> 806 bytes textures/electric_oven_uv.png | Bin 0 -> 11351 bytes textures/electric_stove_uv.png | Bin 0 -> 6172 bytes textures/fireboi.png | Bin 0 -> 12378 bytes textures/invis.png | Bin 0 -> 565 bytes textures/jelys_pizzaria_rolling_pin_inv.png | Bin 0 -> 300 bytes textures/palette.png | Bin 0 -> 3702 bytes textures/wood_oven_uv.png | Bin 0 -> 11633 bytes textures/wood_stove_uv.png | Bin 0 -> 9223 bytes 44 files changed, 1854 insertions(+) create mode 100644 crafts.lua create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 license.txt create mode 100644 models/cooking_pot_0.b3d create mode 100644 models/cooking_pot_1.b3d create mode 100644 models/cooking_pot_2.b3d create mode 100644 models/cooking_pot_3.b3d create mode 100644 models/cooking_pot_4.b3d create mode 100644 models/electric_oven.b3d create mode 100644 models/electric_stove.b3d create mode 100644 models/wood_oven.b3d create mode 100644 models/wood_stove.b3d create mode 100644 ovenstove.lua create mode 100644 technic.lua create mode 100644 textures/cooking_apple_pie.png create mode 100644 textures/cooking_apple_pie_uncooked.png create mode 100644 textures/cooking_blueberry_jam.png create mode 100644 textures/cooking_bowl.png create mode 100644 textures/cooking_bread_sliced.png create mode 100644 textures/cooking_bread_with_jam.png create mode 100644 textures/cooking_bun.png create mode 100644 textures/cooking_bun_uncooked.png create mode 100644 textures/cooking_burnt_food.png create mode 100644 textures/cooking_burnt_soup.png create mode 100644 textures/cooking_chopped_apple.png create mode 100644 textures/cooking_mushroom_soup.png create mode 100644 textures/cooking_mushroom_soup_uncooked.png create mode 100644 textures/cooking_pie_crust.png create mode 100644 textures/cooking_pot_overlay.png create mode 100644 textures/cooking_pot_overlay_opaque.png create mode 100644 textures/cooking_potuv.png create mode 100644 textures/cooking_spoon.png create mode 100644 textures/cooking_sugar.png create mode 100644 textures/cooking_toast.png create mode 100644 textures/cooking_toast_with_jam.png create mode 100644 textures/electric_oven_uv.png create mode 100644 textures/electric_stove_uv.png create mode 100644 textures/fireboi.png create mode 100644 textures/invis.png create mode 100644 textures/jelys_pizzaria_rolling_pin_inv.png create mode 100644 textures/palette.png create mode 100644 textures/wood_oven_uv.png create mode 100644 textures/wood_stove_uv.png diff --git a/crafts.lua b/crafts.lua new file mode 100644 index 0000000..8513526 --- /dev/null +++ b/crafts.lua @@ -0,0 +1,247 @@ +minetest.register_craftitem("cooking:sugar", { + description = "Sugar", + inventory_image = "cooking_sugar.png", +}) +cooking.register_craft({ + type = "press", + recipe = "default:papyrus", + output = "cooking:sugar" +}) + +if not foodspoil_register then foodspoil_register = function() end end + +--breads +minetest.register_craftitem("cooking:bun", { + description = "Uncooked Bun", + inventory_image = "cooking_bun_uncooked.png", +}) +minetest.register_craftitem("cooking:bun_cooked", { + description = "Bun", + on_use = minetest.item_eat(4), + inventory_image = "cooking_bun.png", +}) +minetest.register_craftitem("cooking:bread_sliced", { + description = "Sliced Bread", + on_use = minetest.item_eat(3), + inventory_image = "cooking_bread_sliced.png", +}) +minetest.register_craftitem("cooking:toast", { + description = "Toast", + on_use = minetest.item_eat(4), + inventory_image = "cooking_toast.png", +}) +minetest.register_craftitem("cooking:bread_with_jam", { + description = "Bread with Jam", + inventory_image = "cooking_bread_with_jam.png", + on_use = minetest.item_eat(5), +}) +minetest.register_craftitem("cooking:toast_with_jam", { + description = "Toast with Jam", + inventory_image = "cooking_toast_with_jam.png", + on_use = minetest.item_eat(6), +}) +minetest.register_craftitem("cooking:blueberry_jam", { + description = "Blueberry Jam", + inventory_image = "cooking_blueberry_jam.png", +}) +minetest.clear_craft({output = "farming:bread"}) +minetest.clear_craft({output = "farming:flour"}) +cooking.register_craft({ + type = "mix", + recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "bucket:bucket_water", "cooking:sugar"}, + output = "farming:flour,bucket:bucket_empty" +}) +cooking.register_craft({ + type = "oven", + cooktime = 20, + recipe = "farming:flour", + output = "farming:bread" +}) +cooking.register_craft({ + type = "stove", + cooktime = 5, + recipe = "cooking:bread_sliced", + output = "cooking:toast" +}) +cooking.register_craft({ + type = "cut", + recipe = "farming:bread", + output = "cooking:bread_sliced 6" +}) +foodspoil_register("cooking:bread_sliced", 4) +cooking.register_craft({ + type = "stack", + recipe = {"cooking:bread_sliced", "cooking:blueberry_jam"}, + output = "cooking:bread_with_jam" +}) +foodspoil_register("cooking:bread_with_jam", 4) +cooking.register_craft({ + type = "stack", + recipe = {"cooking:toast", "cooking:blueberry_jam"}, + output = "cooking:toast_with_jam" +}) +cooking.register_craft({ + type = "cut", + recipe = "farming:flour", + output = "cooking:bun 4" +}) +cooking.register_craft({ + type = "oven", + cooktime = 10, + recipe = "cooking:bun", + output = "cooking:bun_cooked" +}) + +--apple pie +minetest.register_craftitem("cooking:chopped_apple", { + description = "Chopped Apple", + inventory_image = "cooking_chopped_apple.png", +}) +minetest.register_craftitem("cooking:apple_pie_uncooked", { + description = "Uncooked Apple Pie", + inventory_image = "cooking_apple_pie_uncooked.png", +}) +minetest.register_craftitem("cooking:apple_pie", { + description = "Apple Pie", + inventory_image = "cooking_apple_pie.png", + on_use = minetest.item_eat(10), +}) +minetest.register_craftitem("cooking:pie_crust", { + description = "Pie Crust", + inventory_image = "cooking_pie_crust.png", +}) +cooking.register_craft({ + type = "roll", + recipe = "cooking:bun", + output = "cooking:pie_crust" +}) +cooking.register_craft({ + type = "cut", + recipe = "default:apple", + output = "cooking:chopped_apple" +}) +cooking.register_craft({ + type = "stack", + recipe = {"cooking:pie_crust", "cooking:chopped_apple", "cooking:chopped_apple", "cooking:sugar", "cooking:pie_crust"}, + output = "cooking:apple_pie_uncooked" +}) +cooking.register_craft({ + type = "oven", + cooktime = 30, + recipe = "cooking:apple_pie_uncooked", + output = "cooking:apple_pie" +}) + +--mushroom soup +minetest.register_craftitem("cooking:mushroom_soup_uncooked", { + description = "Uncooked Mushroom Soup", + stack_max = 1, + inventory_image = "cooking_mushroom_soup_uncooked.png", + param2 = 224, + on_use = minetest.item_eat(4, "cooking:bowl") +}) +foodspoil_register("cooking:mushroom_soup_uncooked", 4) +minetest.register_craftitem("cooking:mushroom_soup", { + description = "Mushroom Soup", + stack_max = 1, + inventory_image = "cooking_mushroom_soup.png", + param2 = 222, + on_use = minetest.item_eat(6, "cooking:bowl") +}) +foodspoil_register("cooking:mushroom_soup", 4) +foodspoil_register("cooking:mushroom_soup_uncooked", 4) +cooking.register_craft({ + type = "soup", + param2 = 6, + recipe = {"flowers:mushroom_brown", "flowers:mushroom_brown", "flowers:mushroom_brown"}, + output = "cooking:mushroom_soup_uncooked" +}) +cooking.register_craft({ + type = "stove", + cooktime = 10, + recipe = "cooking:mushroom_soup_uncooked", + output = "cooking:mushroom_soup", + burned = "cooking:burnt_soup" +}) + +--tools +minetest.register_craft({ + recipe = { + {"group:wood", "", "group:wood"}, + {"", "group:wood", ""} + }, + output = "cooking:bowl 4" +}) +minetest.register_craft({ + recipe = { + {"group:wood", "", "group:wood"}, + {"group:wood", "", "group:wood"}, + {"", "group:wood", ""} + }, + output = "cooking:mixing_bowl 2" +}) +minetest.register_craft({ + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + }, + output = "cooking:pot_0 2" +}) +minetest.register_craft({ + recipe = { + {"default:glass", "group:sand", "default:glass"}, + {"", "default:glass", ""} + }, + output = "cooking:plate 4" +}) +minetest.register_craft({ + recipe = { + {"default:stick", "group:wood", "default:stick"}, + }, + output = "cooking:rolling_pin" +}) +minetest.register_craft({ + recipe = { + {"default:stick", "group:wood", "default:stick"}, + }, + output = "cooking:rolling_pin" +}) +minetest.register_craft({ + recipe = { + {"", "group:wood"}, + {"default:stick", ""}, + }, + output = "cooking:spoon" +}) +for i, subname in pairs({"wood", "pine_wood", "acacia_wood", "junglewood", "aspen_wood"}) do + minetest.register_craft({ + recipe = { + {"stairs:slab_"..subname}, + }, + output = "cooking:cutting_board" + }) +end +minetest.register_craft({ + recipe = { + {"default:cobble", "default:cobble", "default:cobble"}, + {"default:cobble", "stairs:slab_cobble", "default:cobble"}, + {"default:cobble", "stairs:slab_cobble", "default:cobble"} + }, + output = "cooking:oven" +}) +minetest.register_craft({ + recipe = { + {"default:cobble", "default:cobble", "default:cobble"}, + {"default:cobble", "stairs:slab_cobble", "default:cobble"}, + {"default:cobble", "default:cobble", "default:cobble"} + }, + output = "cooking:stove" +}) +minetest.register_craft({ + recipe = { + {"", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:sword_steel", "default:steel_ingot"}, + }, + output = "cooking:hand_press 2" +}) \ No newline at end of file diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..81ec122 --- /dev/null +++ b/depends.txt @@ -0,0 +1,6 @@ +default +technic? +farming? +foodspoil? +flowers? +craftguide? \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..4d2f147 --- /dev/null +++ b/init.lua @@ -0,0 +1,878 @@ +cooking = {} +cooking.registered_stackcrafts = {} +cooking.registered_mixcrafts = {} +cooking.registered_cutcrafts = {} +cooking.registered_presscrafts = {} +cooking.registered_rollcrafts = {} +cooking.registered_cookcrafts = {} +cooking.registered_soupcrafts = {} + +local mp = minetest.get_modpath("cooking") + +minetest.register_craftitem("cooking:burnt_food", { + description = "Burnt Food", + inventory_image = "cooking_burnt_food.png", + on_use = minetest.item_eat(-2) +}) +minetest.register_craftitem("cooking:burnt_soup", { + description = "Burnt Soup", + inventory_image = "cooking_burnt_soup.png", + param2 = 253, + on_use = minetest.item_eat(-2, "cooking:bowl") +}) + +local function table_to_string(tbl) + local str = "" + if type(tbl) == "string" then return tbl end + for i, item in pairs(tbl) do + str = str..item + if i ~= #tbl then + str=str.."," + end + end + return str +end + +local crafttypelist = { + stack = {"Stacking", "default_tool_steelpick.png"}, + mix = {"Mixing", "default_tool_steelpick.png"}, + cut = {"Cutting", "default_tool_steelpick.png"}, + press = {"Pressing", "default_tool_steelpick.png"}, + roll = {"Rolling", "default_tool_steelpick.png"}, + stove = {"Stove", "default_tool_steelpick.png"}, + oven = {"Oven", "default_tool_steelpick.png"}, + soup = {"Soup", "default_tool_steelpick.png"}, +} +if craftguide then + for craftname, tbl in pairs(crafttypelist) do + craftguide.register_craft_type(craftname, { + description = tbl[1], + icon = tbl[2], + }) + end +end +if unified_inventory then + for craftname, tbl in pairs(crafttypelist) do + unified_inventory.register_craft_type(craftname, { + description = tbl[1], + width = 1, + height = 0, + }) + end +end +cooking.register_craft = function(tbl) + assert(tbl.type, "No Craft Type Specified") + assert(tbl.recipe, "No Craft Recipe Specified") + assert(tbl.output, "No Craft Output Specified") + if unified_inventory or craftguide then + local output = table_to_string(tbl.output) + for word in string.gmatch(tbl.output, '([^,]+)') do + output = word + break + end + local items + if type(tbl.recipe) == "string" then + items = {tbl.recipe} + else + items = table.copy(tbl.recipe) + end + if unified_inventory then + unifieditems = table.copy(items) + unified_inventory.register_craft({ + type = string.gsub(tbl.type, "^%l", string.upper), + output = output, + items = unifieditems, + }) + end + if craftguide then + craftguideitems = table.copy(items) + if (tbl.type == "stack" or tbl.type == "mix" or tbl.type == "soup") and #items ~= 1 then + local addon = "" + for i = 2, #items do + addon = addon..", " + end + for i, item in pairs(items) do + craftguideitems[#items+1-i] = item..addon + end + end + craftguide.register_craft({ + type = tbl.type, + result = output, + items = craftguideitems, + }) + end + end + if tbl.type == "oven" or tbl.type == "stove" then + tbl.recipe = table_to_string(tbl.recipe) + cooking.registered_cookcrafts[tbl.recipe] = {output = tbl.output, time = tbl.cooktime or 10, method = tbl.type} + if not cooking.registered_cookcrafts[table_to_string(tbl.output)] then + cooking.registered_cookcrafts[table_to_string(tbl.output)] = {output = tbl.burned or "cooking:burnt_food", time = 60, method = tbl.type} + end + elseif tbl.type == "cut" or tbl.type == "press" or tbl.type == "roll" then + tbl.recipe = table_to_string(tbl.recipe) + tbl.output = table_to_string(tbl.output) + cooking["registered_"..tbl.type.."crafts"][tbl.recipe] = tbl.output + elseif tbl.type == "stack" or tbl.type == "mix" or tbl.type == "soup" then + tbl.output = table_to_string(tbl.output) + cooking["registered_"..tbl.type.."crafts"][tbl.output] = tbl.recipe + else + assert(nil, "Invalid Craft Type") + end +end + +minetest.register_tool("cooking:rolling_pin", { + description = "Rolling Pin", + inventory_image = "jelys_pizzaria_rolling_pin_inv.png", + tool_capabilities = { + groupcaps = {cooking_roller = {maxlevel=3, uses=50, times={[3]=8}}} + } +}) + +local item_offsets = {} +item_offsets["cooking:hand_press"] = {input = {x=2.5/16,y=0,z=0}, output = {x=-8/16,y=-.2,z=0}} +item_offsets["cooking:pot_4"] = {x=0,y=-7/16,z=0} +item_offsets["cooking:stove"] = {fuel = {x=0,y=-.05,z=-.1}, src = {x=0,y=.425,z=-.1}} +item_offsets["cooking:stove_active"] = item_offsets["cooking:stove"] +item_offsets["cooking:oven"] = {fuel = {x=0,y=-.3,z=-.1}, src = {x=0,y=.1,z=-.1}} +item_offsets["cooking:oven_active"] = item_offsets["cooking:oven"] +item_offsets["cooking:electric_stove"] = {src = {x=0,y=.34,z=-.25}} +item_offsets["cooking:electric_stove_active"] = item_offsets["cooking:electric_stove"] +item_offsets["cooking:electric_oven"] = {src = {x=0,y=-.08,z=0}} +item_offsets["cooking:electric_oven_active"] = item_offsets["cooking:electric_oven"] + +function cooking.get_item_offset(node, index) + local offset = item_offsets[node.name] or {x=0,y=-.45,z=0} + if not offset.x then + if offset[index] then + offset = offset[index] + else + offset = offset["input"] or {x=0,y=-.45,z=0} + end + end + local yaw = minetest.facedir_to_dir(node.param2) + yaw = minetest.dir_to_yaw(yaw) + offset = vector.rotate(offset, {x=0,y=yaw,z=0}) + if type(index) == "number" then + offset.y = offset.y + (index*.06) + end + return offset +end + +local function add_item(pos, stack, param2, flatten) + local stackname = stack:get_name() + local obj = minetest.add_entity(pos, "cooking:item", stack:to_string()) + if not obj then return nil end + local itemdef = minetest.registered_items[stackname] + local yaw = minetest.facedir_to_dir(param2) + yaw = minetest.dir_to_yaw(yaw) + yaw = yaw + math.random(-20,20)/100 + if itemdef.inventory_image == "" then + obj:set_rotation({x=0, y=yaw, z=0}) + if flatten then + obj:set_properties({visual_size = {x=.33, y=.07}}) + else + local posy = math.floor(pos.y+.5) + pos.y = pos.y + .125 + if math.floor(pos.y+.5) > posy then pos.y = posy+.5 end + obj:set_pos(pos) + obj:set_properties({visual_size = {x=.25, y=.25}}) + end + else + obj:set_rotation({x=-1.57075, y=yaw, z=0}) + end + return obj +end + +local crafter_on_rightclick = function(pos, node, clicker, itemstack, pointed_thing, single) + stackname = itemstack:get_name() + if stackname == "" then return end + local meta = minetest.get_meta(pos) + local tbl = minetest.deserialize(meta:get_string("table")) or {} + if single and #tbl > 0 then return end + local stackstring = ItemStack(itemstack) + stackstring:set_count(1) + stackstring = stackstring:to_string() + table.insert(tbl, stackstring) + local pos2 = vector.add(pos, cooking.get_item_offset(node, #tbl)) + if pos2.y-pos.y > .5 then return end + meta:set_string("table", minetest.serialize(tbl)) + add_item(pos2, itemstack, node.param2, single ~= true) + if not minetest.is_creative_enabled(clicker:get_player_name()) then + itemstack:take_item() + end + return itemstack +end + +function cooking.remove_items(pos, consume, tbl) + local pos1 = vector.subtract(pos, .5) + local pos2 = vector.add(pos, .5) + local objects = minetest.get_objects_in_area(pos1, pos2) + for i, obj in pairs(objects) do + if obj and obj:get_entity_name() == "cooking:item" then-- and obj:get_luaentity().item == stackname then + if consume ~= true then + for i2, stackstring in pairs(tbl) do + local itemstack = ItemStack(stackstring) + local stackname = itemstack:get_name() + if obj:get_luaentity() and obj:get_luaentity().item == stackname then + --[[local drops = minetest.get_node_drops(item) + if drops then + item = drops[math.random(#drops)] + end--]] + minetest.add_item(vector.add(pos, cooking.get_item_offset(minetest.get_node(pos), "input")), itemstack) + break + end + end + end + obj:remove() + end + end +end + +local function is_stackcraft(tbl) + if not cooking.registered_stackcrafts then return end + local stacknames = {} + for i, stackstring in pairs(tbl) do + local stackname = ItemStack(stackstring):get_name() + table.insert(stacknames, stackname) + end + for name, craft in pairs(cooking.registered_stackcrafts) do + if table.concat(stacknames) == table.concat(craft) then + return name + end + end +end + +local function is_mixcraft(tbl, crafttype) + if not crafttype then crafttype = "registered_mixcrafts" end--crafttype is not really useful atm, just for a possible soup craft in future + if not string.find(crafttype, "registered_") then + crafttype = "registered_"..crafttype + end + if not cooking[crafttype] then return end + local stacknames = {} + for i, stackstring in pairs(tbl) do + local stackname = ItemStack(stackstring):get_name() + table.insert(stacknames, stackname) + end + for name, craft in pairs(cooking[crafttype]) do + local tblcopy = table.copy(stacknames) + if #stacknames == #craft then + for i, name in pairs(craft) do + local hasitem = false + for i2, name2 in pairs(tblcopy) do + if name2 == name then + table.remove(tblcopy, i2) + hasitem = true + break + end + end + if not hasitem then return end + end + end + if #tblcopy == 0 then return name end + end +end + +local function is_cutcraft(tbl) + if not cooking.registered_cutcrafts then return end + local stacknames = {} + for i, stackstring in pairs(tbl) do + local stackname = ItemStack(stackstring):get_name() + table.insert(stacknames, stackname) + end + if #tbl ~= 1 then return end + return cooking.registered_cutcrafts[stacknames[1]] +end + +local function is_presscraft(tbl) + if not cooking.registered_presscrafts then return end + local stacknames = {} + for i, stackstring in pairs(tbl) do + local stackname = ItemStack(stackstring):get_name() + table.insert(stacknames, stackname) + end + if #tbl ~= 1 then return end + return cooking.registered_presscrafts[stacknames[1]] +end + +local function is_rollcraft(tbl) + if not cooking.registered_rollcrafts then return end + local stacknames = {} + for i, stackstring in pairs(tbl) do + local stackname = ItemStack(stackstring):get_name() + table.insert(stacknames, stackname) + end + if #tbl ~= 1 then return end + return cooking.registered_rollcrafts[stacknames[1]] +end + +local function is_soupcraft(tbl) + return is_mixcraft(tbl, "registered_soupcrafts") +end + +local crafter_on_dig = function(pos, node, digger, craftfunc, successfunc, nodignode) + local meta = minetest.get_meta(pos) + local tbl = minetest.deserialize(meta:get_string("table")) + if tbl and #tbl > 0 then + local results = {} + if craftfunc then + for substring in (craftfunc(tbl) or ""):gmatch("([^,]+)") do + table.insert(results, substring) + end + end + if results and #results > 0 then + for i, result in pairs(results) do + cooking.remove_items(pos, true, tbl) + local itemstack = ItemStack(result) + if cooking_aftercraft then--if foodspoil is on, use one of its functions to get the newly crafted items expiration + local craft_grid = {} + for i2, stackstring in pairs(tbl) do + table.insert(craft_grid, ItemStack(stackstring)) + end + itemstack = cooking_aftercraft(itemstack, craft_grid) + end + tbl = {itemstack:to_string()} + if successfunc then + successfunc(pos, node, digger, itemstack) + else + minetest.add_item(vector.add(pos, cooking.get_item_offset(node, "output")), itemstack) + end + end + else + cooking.remove_items(pos, false, tbl) + end + meta:set_string("table", "") + return false + end + if not nodignode then + minetest.node_dig(pos, node, digger) + end + return true +end + +function cooking.update_furnace_objects(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local tbl = {} + tbl["fuel"] = inv:get_stack("fuel", 1):to_string() + tbl["src"] = inv:get_stack("src", 1):to_string() + cooking.remove_items(pos, true, tbl) + for i, stackstring in pairs(tbl) do + local itemstack = ItemStack(stackstring) + local stackname = itemstack:get_name() + local offset = cooking.get_item_offset(node, i) + local obj = add_item(vector.add(pos, offset), itemstack, node.param2) + if obj then + local ent = obj:get_luaentity() + ent.owner = pos + ent.listname = i + --local props = obj.get_properties() + --props.pointable = true + obj:set_properties({pointable = true}) + end + end +end + +function cooking.get_craft_result(tbl) + local empty = {time = 0, item = ItemStack()}, {items = {}} + if not tbl then return empty end + local method = tbl.method + local items = table.copy(tbl.items) + if not method or not items then return empty end + local item = items[1] + if not item then return empty end + item = item:get_name() + local soup = item == "cooking:pot_4" + if soup then + local itemmeta = tbl.items[1]:get_meta() + item = ItemStack(itemmeta:get_string("soup")):get_name() + end + if not cooking.registered_cookcrafts[item] then return empty end + local craft = table.copy(cooking.registered_cookcrafts[item]) + if craft.method ~= method then return empty end + if type(craft.output) == "string" then + craft.output = ItemStack(craft.output) + end + if cooking_aftercraft then + if soup then + local itemmeta = tbl.items[1]:get_meta() + craft.output = cooking_aftercraft(ItemStack(craft.output), {ItemStack(itemmeta:get_string("soup"))}) + else + craft.output = cooking_aftercraft(ItemStack(craft.output), {tbl.items[1]}) + end + end + if soup then + local itemmeta = craft.output:get_meta() + local itemname = craft.output:get_name() + itemmeta:set_string("soup", craft.output:to_string()) + itemmeta:set_string("description", "Pot of "..craft.output:get_description()) + itemmeta:set_string("palette_index", minetest.registered_items[itemname].param2 or "0") + craft.output:set_name("cooking:pot_4") + end + local cooked = {time = craft.time, item = craft.output, replacements = craft.replacements} + local aftercooked = {items = {}} + return cooked, aftercooked +end + +dofile(mp.."/ovenstove.lua") +if technic then + dofile(mp.."/technic.lua") +end + +minetest.register_entity("cooking:item",{ + initial_properties = { + hp_max = 10, + visual="wielditem", + visual_size={x=.33,y=.33}, + collisionbox = {-.3,-.1,-.3,.3,.1,.3}, + pointable=false, + textures={"air"}, + }, + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + local objpos = self.object:get_pos() + local pos = self.owner or vector.round(objpos) + local meta = minetest.get_meta(pos) + local tbl = minetest.deserialize(meta:get_string("table")) + if self.listname then + local inv = meta:get_inventory() + local playerinv = puncher:get_inventory() + local itemstack = inv:get_stack(self.listname, 1) + if not playerinv or not playerinv:add_item("main", itemstack):is_empty() then + minetest.add_item(objpos, itemstack) + end + inv:remove_item(self.listname, itemstack) + cooking.update_furnace_objects(pos) + minetest.get_node_timer(pos):start(1.0) + --[[elseif tbl then --unused code, was for picking out specific items from a stack, but i decided that its better to just have you start over if you put something wrong in. + local newstack = ItemStack(tbl[#tbl]) + local inv = minetest.get_inventory({type="player", name=puncher:get_player_name()}) + if not inv or not inv:room_for_item("main", newstack) then return true end + cooking.remove_items(pos, true, tbl)--]] + --[[local index = pos.y - objpos.y + index = (.45-index)/.06 + index = math.floor(index+.5) + if not tbl[index] then return true end + minetest.chat_send_all(tostring(index))--]] + --[[table.remove(tbl) + meta:set_string("table", minetest.serialize(tbl)) + for i, stackstring in pairs(tbl) do + local itemstack = ItemStack(stackstring) + local pos2 = vector.add(pos, cooking.get_item_offset(minetest.get_node(pos), i)) + add_item(pos2, itemstack:get_name(), minetest.get_node(pos).param2, true) + end + inv:add_item("main", newstack) + return true + else + return true--]] + end + self.object:remove() + return true + end, + on_activate = function(self, staticdata) + if not staticdata or staticdata == "" then self.object:remove() return end + local itemstack = ItemStack(staticdata) + self.item = itemstack:get_name() + local itemdef = minetest.registered_items[self.item] + if not itemdef then self.object:remove() return end + self.object:set_properties({ + textures={self.item}, + wield_item = itemstack + }) + end, + get_staticdata = function(self) + --return self.item + end, +}) + +minetest.register_node("cooking:plate", { + description = "Plate", + tiles = { + "default_snow.png", + "default_snow.png", + "default_snow.png", + "default_snow.png", + "default_snow.png", + "default_snow.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.3125, 0.3125, -0.4375, 0.3125}, -- NodeBox1 + {-0.4375, -0.4375, -0.5, 0.4375, -0.375, -0.3125}, -- NodeBox2 + {-0.4375, -0.4375, 0.3125, 0.4375, -0.375, 0.5}, -- NodeBox4 + {0.3125, -0.4375, -0.4375, 0.5, -0.375, 0.4375}, -- NodeBox5 + {-0.5, -0.4375, -0.4375, -0.3125, -0.375, 0.4375}, -- NodeBox6 + } + }, + --[[selection_box = { + type = "fixed", + fixed = { + {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.5, 4 / 16}, + }, + },--]] + sunlight_propagates = true, + walkable = true, + groups = {oddly_breakable_by_hand = 3, cookingholder = 1}, + on_rightclick = crafter_on_rightclick, + on_dig = function(pos, node, digger) + return crafter_on_dig(pos, node, digger, is_stackcraft) + end, +}) + +minetest.register_tool("cooking:spoon", { + description = "Mixing Spoon", + inventory_image = "cooking_spoon.png", +}) + +local function register_mixer(name, value) + if not name or not value then return end + local groups = minetest.registered_items[name] + if not groups then return end + groups = groups.tool_capabilities or {} + if not groups.groupcaps then + groups.groupcaps = {} + end + groups.groupcaps.cooking_mixer = {maxlevel=3, uses=50, times={[3]=value}} + minetest.override_item(name, {tool_capabilities = groups}) +end + +register_mixer("default:stick", 12) +register_mixer("cooking:spoon", 6) + +minetest.register_node("cooking:mixing_bowl", { + description = "Mixing Bowl", + tiles = { + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox7 + {-0.3125, -0.4375, 0.1875, 0.3125, -0.375, 0.3125}, -- NodeBox8 + {-0.3125, -0.4375, -0.3125, 0.3125, -0.375, -0.1875}, -- NodeBox4 + {-0.3125, -0.375, -0.375, 0.3125, 0.0625, -0.3125}, -- NodeBox5 + {0.3125, -0.375, -0.3125, 0.375, 0.0625, 0.3125}, -- NodeBox6 + {-0.375, -0.375, -0.3125, -0.3125, 0.0625, 0.3125}, -- NodeBox7 + {-0.3125, -0.4375, -0.3125, -0.1875, -0.375, 0.3125}, -- NodeBox8 + {0.1875, -0.4375, -0.3125, 0.3125, -0.375, 0.25}, -- NodeBox10 + {-0.3125, -0.375, 0.3125, 0.3125, 0.0625, 0.375}, -- NodeBox11 + } + }, + --[[selection_box = { + type = "fixed", + fixed = { + {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.5, 4 / 16}, + }, + },--]] + sunlight_propagates = true, + walkable = true, + groups = {oddly_breakable_by_hand = 3, cookingholder = 1, cooking_mixer = 3}, + on_rightclick = crafter_on_rightclick, + on_dig = function(pos, node, digger) + local craftfunc = is_mixcraft + if digger then + local tool = digger:get_wielded_item():get_tool_capabilities() + if not tool or not tool.groupcaps or not tool.groupcaps.cooking_mixer then + craftfunc = nil + end + end + return crafter_on_dig(pos, node, digger, craftfunc) + end, +}) + +local function register_cutter(name, value) + if not name or not value then return end + local groups = minetest.registered_items[name] + if not groups then return end + groups = groups.tool_capabilities or {} + if not groups.groupcaps then + groups.groupcaps = {} + end + groups.groupcaps.cooking_cutter = {maxlevel=3, uses=50, times={[3]=value}} + minetest.override_item(name, {tool_capabilities = groups}) +end + +for name, value in pairs({wood = 8, stone = 6, bronze = 4, steel = 4, mese = 4, diamond = 4}) do + register_cutter("default:sword_"..name, value) +end +--add any more swords/knives here + + +minetest.register_node("cooking:cutting_board", { + description = "Cutting Board", + tiles = { + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png", + "default_wood.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.3125, 0.375, -0.4375, 0.3125}, -- NodeBox1 + {0.375, -0.5, -0.125, 0.4375, -0.4375, 0.125}, -- NodeBox2 + {-0.4375, -0.5, -0.125, -0.375, -0.4375, 0.125}, -- NodeBox3 + } + }, + --[[selection_box = { + type = "fixed", + fixed = { + {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.5, 4 / 16}, + }, + },--]] + sunlight_propagates = true, + walkable = true, + groups = {cookingholder = 1, cooking_cutter = 3, oddly_breakable_by_hand = 3, cooking_roller = 3}, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + crafter_on_rightclick(pos, node, clicker, itemstack, pointed_thing, true) + end, + on_dig = function(pos, node, digger) + local craftfunc + if digger then + local tool = digger:get_wielded_item():get_tool_capabilities() + if tool and tool.groupcaps then + if tool.groupcaps.cooking_cutter then + craftfunc = is_cutcraft + elseif tool.groupcaps.cooking_roller then + craftfunc = is_rollcraft + end + end + end + return crafter_on_dig(pos, node, digger, craftfunc) + end, +}) + +minetest.register_node("cooking:hand_press", { + description = "Hand Press", + tiles = { + "default_steel_block.png", + "default_steel_block.png", + "default_steel_block.png", + "default_steel_block.png", + "default_steel_block.png", + "default_steel_block.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.125, 0.375, -0.0625, 0.1875}, -- NodeBox1 + {0, -0.0625, -0.125, 0.3125, 0, 0.1875}, -- NodeBox2 + {-0.0625, -0.0625, -0.125, 0, 0.125, 0.1875}, -- NodeBox4 + {0.3125, -0.0625, -0.125, 0.375, 0.125, 0.1875}, -- NodeBox5 + {0, -0.0625, -0.1875, 0.3125, 0.125, -0.125}, -- NodeBox6 + {0, -0.0625, 0.1875, 0.3125, 0.125, 0.25}, -- NodeBox8 + --{-0.4375, -0.25, -0.0625, -0.25, -0.0625, 0.125}, -- NodeBox9 + {0.375, -0.25, -0.0625, 0.4375, 0.25, 0.0625}, -- NodeBox10 + } + }, + --[[selection_box = { + type = "fixed", + fixed = { + {-4 / 16, -0.5, -4 / 16, 4 / 16, 0.5, 4 / 16}, + }, + },--]] + sunlight_propagates = true, + walkable = true, + groups = {cookingholder = 1, oddly_breakable_by_hand = 3}, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + crafter_on_rightclick(pos, node, clicker, itemstack, pointed_thing, true) + end, + on_dig = function(pos, node, digger) + return crafter_on_dig(pos, node, digger, is_presscraft) + end, +}) + +--Soup Pot + +local function on_soup_craft(pos, node, digger, itemstack) + local itemname = itemstack:get_name() + local recipedef = cooking.registered_soupcrafts[itemname] + node.param2 = minetest.registered_items[itemname].param2 or node.param2 + minetest.swap_node(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("soup", itemstack:to_string()) + meta:set_string("description", "Pot of "..itemstack:get_description()) +end + +local function pot_on_punch(pos, node, player, replacement) + local meta = minetest.get_meta(pos) + local player_inv = player:get_inventory() + local itemstack = player:get_wielded_item() + if itemstack:get_name() == "cooking:bowl" and meta:get_string("soup") ~= "" then + node.name = replacement + minetest.swap_node(pos, node) + itemstack:take_item(1) + if itemstack:get_count() > 0 then + minetest.add_item(pos, player_inv:add_item("main", meta:get_string("soup"))) + else + itemstack:replace(meta:get_string("soup")) + end + player:set_wielded_item(itemstack) + if replacement == "cooking:pot_0" then + node.name = "cooking:pot_0" + node.param2 = 0 + minetest.set_node(pos, node) + end + elseif itemstack:get_name() == "bucket:bucket_empty" then + node.name = "cooking:pot_0" + node.param2 = 0 + if meta:get_string("soup") == "" then + itemstack:replace("bucket:bucket_water") + player:set_wielded_item(itemstack) + end + crafter_on_dig(pos, node, player, nil, nil, true) + minetest.set_node(pos, node) + end + return itemstack +end +local potdef = { + drawtype = "mesh", + mesh = "cooking_pot_4.b3d", + use_texture_alpha = true, + tiles = {{name = "cooking_potuv.png", color = "white"}}, + overlay_tiles = {{name = "cooking_pot_overlay.png"}}, + description= "Filled Pot", + paramtype = "light", + paramtype2 = "color", + palette = "palette.png", + groups = {oddly_breakable_by_hand=3, cookingholder = 1, cooking_mixer = 3, not_in_creative_inventory = 1}, + legacy_facedir_simple = true, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.375, 0.25, 0.1875, -0.25}, -- NodeBox1 + {-0.25, -0.5, 0.25, 0.25, 0.1875, 0.375}, -- NodeBox3 + {-0.375, -0.5, -0.25, -0.25, 0.1875, 0.25}, -- NodeBox4 + {0.25, -0.5, -0.25, 0.375, 0.1875, 0.25}, -- NodeBox5 + {-0.25, -0.5, -0.25, 0.25, -0.375, 0.25}, -- NodeBox6 + } + }, + on_punch = function(pos, node, player) + return pot_on_punch(pos, node, player, "cooking:pot_3") + end, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + if meta:get_string("soup") == "" then + return crafter_on_rightclick(pos, node, clicker, itemstack, pointed_thing) + else + return itemstack + end + end, + on_dig = function(pos, node, digger) + local craftfunc = is_soupcraft + if digger then + local tool = digger:get_wielded_item():get_tool_capabilities() + if not tool or not tool.groupcaps or not tool.groupcaps.cooking_mixer then + craftfunc = nil + end + end + return crafter_on_dig(pos, node, digger, craftfunc, on_soup_craft) + end, + preserve_metadata = function(pos, oldnode, oldmeta, drops) + for i, drop in pairs(drops) do + local itemmeta = drop:get_meta() + itemmeta:set_string("soup", oldmeta.soup) + itemmeta:set_string("description", oldmeta.description) + end + return drops + end, + after_place_node = function(pos, placer, itemstack, pointed_thing) + local itemmeta = itemstack:get_meta() + local meta = minetest.get_meta(pos) + meta:set_string("description", itemmeta:get_string("description")) + meta:set_string("soup", itemmeta:get_string("soup")) + end, +} +minetest.register_node("cooking:pot_4", table.copy(potdef)) + +potdef.description= "3/4 Filled Pot" +potdef.on_dig = nil +potdef.on_rightclick = nil +potdef.mesh = "cooking_pot_3.b3d" +potdef.groups = {oddly_breakable_by_hand=3, not_in_creative_inventory=1} +potdef.on_punch = function(pos, node, player) + return pot_on_punch(pos, node, player, "cooking:pot_2") +end +minetest.register_node("cooking:pot_3", table.copy(potdef)) + +potdef.description= "1/2 Filled Pot" +potdef.mesh = "cooking_pot_2.b3d" +potdef.on_punch = function(pos, node, player) + return pot_on_punch(pos, node, player, "cooking:pot_1") +end +minetest.register_node("cooking:pot_2", table.copy(potdef)) + +potdef.description= "1/4 Filled Pot" +potdef.mesh = "cooking_pot_1.b3d" +potdef.on_punch = function(pos, node, player) + return pot_on_punch(pos, node, player, "cooking:pot_0") +end +minetest.register_node("cooking:pot_1", table.copy(potdef)) + + +potdef.description= "Empty Pot" +potdef.mesh = "cooking_pot_0.b3d" +potdef.groups = {oddly_breakable_by_hand=3} +potdef.on_punch = nil +potdef.on_rightclick = function(pos, node, clicker, itemstack) + if itemstack:get_name() == "bucket:bucket_water" then + node.name = "cooking:pot_4" + minetest.swap_node(pos, node) + return {name="bucket:bucket_empty"} + end +end +potdef.preserve_metadata = function(pos, oldnode, oldmeta, drops) + for i, drop in pairs(drops) do + local itemmeta = drop:get_meta() + itemmeta:from_table({}) + end + return drops +end +potdef.after_place_node = nil +minetest.register_node("cooking:pot_0", table.copy(potdef)) + +minetest.register_craftitem("cooking:bowl", { + description = "Bowl", + inventory_image = "cooking_bowl.png", + param2 = 222 +}) + +minetest.register_lbm({ + name = "cooking:additems", + nodenames = {"group:cookingholder"}, + run_at_every_load = true, + action = function(pos, node, _, _) + if minetest.get_item_group(node.name, "furnace") > 0 then + return cooking.update_furnace_objects(pos) + end + local meta = minetest.get_meta(pos) + local tbl = minetest.deserialize(meta:get_string("table")) + if not tbl then return end + for i, stackstring in pairs(tbl) do + local itemstack = ItemStack(stackstring) + local pos2 = vector.add(pos, cooking.get_item_offset(node, i)) + add_item(pos2, itemstack, node.param2, true) + end + end, +}) + +dofile(mp.."/crafts.lua") \ No newline at end of file diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..db998f6 --- /dev/null +++ b/license.txt @@ -0,0 +1,36 @@ +in ovenstove.lua there is some copied and edited code from minetest_game, which is under the following license: +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2018 celeron55, Perttu Ahola +Copyright (C) 2011-2018 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + +on technic.lua there is some copied and edited code from the technic mod, which is under the following license: +------------------------- +LGPLv2 + +Credits for technic mod: +kpoppel +Nekogloop +Nore/Ekdohibs +ShadowNinja +VanessaE +And many others... + +jelys_pizzaria_rolling_pin_inv.png +------------------------------ +Attribution-ShareAlike 3.0 (CC BY-SA 3.0) Extex +inspired by https://www.brik.co/blogs/pixel-art/rolling-pin-pixel-art + +all other code, textures, and models: +---------------------- +Attribution 2.0 Generic (CC BY 2.0) Elkien3 \ No newline at end of file diff --git a/models/cooking_pot_0.b3d b/models/cooking_pot_0.b3d new file mode 100644 index 0000000000000000000000000000000000000000..c949afa58e8404bfa4a8af1c3fd33dd9eead3e7f GIT binary patch literal 33134 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 literal 0 HcmV?d00001 diff --git a/models/cooking_pot_1.b3d b/models/cooking_pot_1.b3d new file mode 100644 index 0000000000000000000000000000000000000000..6e6747a3947a83cf1e4aa7e49f8f614753cb5902 GIT binary patch literal 35078 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 literal 0 HcmV?d00001 diff --git a/models/cooking_pot_2.b3d b/models/cooking_pot_2.b3d new file mode 100644 index 0000000000000000000000000000000000000000..b309601beeca2c143724f30e13966029fa8c72b3 GIT binary patch literal 35078 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 literal 0 HcmV?d00001 diff --git a/models/cooking_pot_3.b3d b/models/cooking_pot_3.b3d new file mode 100644 index 0000000000000000000000000000000000000000..4410eecb9cfcf7f5e98a3d1ccec607c5f9b435b3 GIT binary patch literal 35078 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 literal 0 HcmV?d00001 diff --git a/models/cooking_pot_4.b3d b/models/cooking_pot_4.b3d new file mode 100644 index 0000000000000000000000000000000000000000..0f066cbe292925e346bdf82015f57e7ddfe621f9 GIT binary patch literal 35078 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 literal 0 HcmV?d00001 diff --git a/models/electric_oven.b3d b/models/electric_oven.b3d new file mode 100644 index 0000000000000000000000000000000000000000..903f3acef784b910e5b04af02faab049e28f6235 GIT binary patch literal 53680 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 RUic(@0`7+g;M4Fa_#b00@d*F` literal 0 HcmV?d00001 diff --git a/models/electric_stove.b3d b/models/electric_stove.b3d new file mode 100644 index 0000000000000000000000000000000000000000..d3b26f011c8070f82ffccb8bca186b8b17c314f8 GIT binary patch literal 1953 zcma)-yH8X>6vjuzH!2DWz7b!DdVy?gcaja8Xo5<10V`rbmS|#P0;`3UJ@m#F5{oTt z=r%F8vV(&Eg4(RLe&3lhduQ*xUcAYVox?ZhF=x*1tyD@gUymDe$QVB6(Tg=HI|#JZ+2pH%%mzQj)AOMj(*>HNb>9rP!OuX@+t>HdCpex&sv zKjL@wn7K(%KlA(kQkOmL{W091%!l{~_apw)`0(tEuexZAPc5k5$EV(nU!(`~ksII5 z*BmsLKYjk@-cQv3zxr(Eew@F|x8&e?crGPo|AP6;z5hUu1Am@h{EOy0eg5L}<X+d6Av?d+7Z-l( z_w!&qJ-_Y!&A>lz{(H{v@7LFts{f$;h4C?8+3yeQOZwZ@eSYh7-@k1Bt@ZD|e-b}E zKTdCz=WEaE9bOI|z7P0b;By4f=7U#;ISTp!UL|64eF~feC%|d7xjqZdfPQdJZLTkX z^I!lBs?GH!a1jiF%U}cygKOX_xB_m18{j$^1Gm5^xC`!p+h82r2lv23FaaI_zIY#l KM_^KIuKxlzgt1Kk literal 0 HcmV?d00001 diff --git a/models/wood_oven.b3d b/models/wood_oven.b3d new file mode 100644 index 0000000000000000000000000000000000000000..a9a3cf68bd842a8ed104065ab3e70943d15ae641 GIT binary patch literal 8332 zcmbuEYmgm96~{-jKB9t>;3H~u#a$9#F}TK8$Q@lbz|~~~y8#~oiIHqb$R-+OQSlKK z(O`mdeP9B?7jFf{gpJR8qb>@11HN5dt+M>Wm$j_2EWhgSf4X}zGdpwVTDeufz1{nt zK7IO}p6;2xgM$M@*YrlwW1=V;9KB#{1>aWQb>$V8tysD84C=e%Eba<~=)ZhM)(x#4 z?2V$UcJ93NlAV*AclcJ)qt@_0?;VJuUMx8N)w3%8H<-$wbJvcY)6?rLT{yaatot@euvA%VET0hoq+yBw@?fc&y+S5m(tB+Xr zHEQhF4(wmj8W=c~Zr?gGadkYiXK5|y4Y(M?Z?yo$Fd)EH@^A0{8Rhj|HAuwS{E%@ z5$n6ZzRUaz_VfKqmwo!S{;^S0UPJz7r~XlUaAa;^PHXZ9RigI)Cx+4)OcBd;qyK{wykk93V6&2-g$|JH}>JH6f1HGcjC|60nw z^Uvu%e~GUA1>KF$=5I##^S3Fz$iCBuP51Xl(mt$6_-6hU>Gv&Ot+5sQulqOXMg2>6 zeMCM#S^q_vfmM57Zvnw#psqxeX7{m<7mel(3iWafXP zZ(%&SX<0Hp>DY?4Em#$cM&Cm<=?C`jxA9BU$Lq|eqqctXFY}-4Y)<$wN3&D+)TT$~ zWYcuzH$6V-o0k2j#=JB8`TXygoyzF>{7PRw`FGkE=STjh^?ZJ%`}L)x|0n8SRs5^s z>vLzZ_4k+N0PEkPuzo0q^VTQjcW(M*@>iLEYp>iE*=Jqz`D>dGVSXH$xXJGCkl(WW zhxnD{ugZQ^`;h;#{D$%8*Y6OYs`v&SKazV-aZ>#K`ldM;*0+|AA@@fVyZKkP|3~Hl(Pgi=k<16>y)&_hi9$$5Sir3F@e=#eJ+fj^mP3E z{7Kp$k8fxH>A$J?md%f9|6Kmc`mf5L`gRn@w+p=@ex3cpzTLn08J>SNk6Az5^KTdH zkHrr=h5JL5ee{m)nZM?r?5EbBxZb$c_Ma~1pKovR4fBKhGdzEE9zS96?Th!PpqH(0 zRsMzc`Tbk_-@3UTt*IURud-jISLNqK<6qT2==iC57icNJ+MmMs%i>ctzAF3ZF)=9J zAL-w8J%6O%FY@cJ_b-`W(tZA{eFxq0TQeL0SH!&rLsUYn$^S=|5@j-(R}%k82YDlJ@ei%l^ao)V8I0 z8pf~u_#9={C%u22H#cO@*D2lFs(tGHOwVBR-Vej`f3Tm=uXNdGToH~Uq3e*cz#zJ1e;?~wcp@cgqeK02~p@0X@~`-v|9 zoZc?g|F-AgnT+4`{QH5%@AOLlPsl%}spT(!|AhPpy(mBbPyUM9yZm-HzN+|^#Sj1e z{I>a(}6pegEkFLhsUL&u8_RUPH{BeV|_j=3wXTAkp>u**6RqfTc zt|=S8i@jZwSzp8ZEp40LM&|jm-ssD`|8h<4e52mA?tPfo-k+b?{P*@1J460;K3_@t zuWE1kDYEb4U;O-%>fhSu_m9;6WBnKD>GM&qEB_iF`^%zm{;d2#c7IOg$MjTwef#8m zU3x+Olk;)YQ})dV+1LE%|AqIT&d1&PTief%?D{1=oWD8$v(NWc=X2qFk8#=fv_7Su z55xJh)|X&kaSQQN|L*;^czp@y`?6oW{z{(!>0*=TH59unbmTQ{ZW^*wM#Q5!Z4f< z=fOHy4`VP2Z-EQp0(d*T4c-bD!$q(GHo_(F4tN)Af_K6=Y=%o=D_jO!U^`q6+h8Z` zfC<p!jIvo zFHiIRQ}_uy0II9}Ap9JD1`qkV%5C^1`~r^oy2`(TN8n-jwXduEJNPa927d4BD$l?l V;Sca9Usw4rFbjW%zxuk${{y12wDkZ0 literal 0 HcmV?d00001 diff --git a/models/wood_stove.b3d b/models/wood_stove.b3d new file mode 100644 index 0000000000000000000000000000000000000000..7ef7656e774fabae4c3fdc43da21bd709a1d1351 GIT binary patch literal 3573 zcmbuCxo;Ce7{!;HaFcMK0UQ$UKnQnsz&L<`m|%yyK;jSx2$ncoQ-Y{08j#>0KvYD~ zplm~dAoP(eQ6Qv%6dHtR;k|EXmhrM{8)c=RcE)e!yJluJPA1z@-={jxD93S<*<-o& zcuV`n?VFd^x3+FXzo5$TM?i3XFTFDJ;X8=0OgHn5{Wt4AxsMhfRD9FF z(P>}%H}iw|FqihFjyivj@1}Ioowai#>LR+-Q|l5RbuOFH+uB~r?>c_P`dPYX>9j98 z?Q;oWL+Zo!l`-v#yzVWz&jxA3k^C9IogejJ^vFPHP;^aoD| zgZ0(*k=Pg?_fz+9D$t|WU+a-+$V~FM8DaTKSpvx8kd_{i|?%@K>8_X+9Ae8w5|eS`ms_N&b|y8eCz`ITP1knbmS$v>|Cwbn1L zKE{6d`|10a^{wc?*7|Gzo?br{Iv-~L8$I~G)=(d*f3^C>Ym;d~gCrE)bH~{v8gSyXl7dQ+Kfo^aFWIzsN!BKD=90NVzgzmF_8k_ +--Copyright (C) 2011-2018 Various Minetest developers and contributors +--see license.txt for more info + +-- support for MT game translation. +local S = default.get_translator +--[[ +function cooking.get_furnace_active_formspec(fuel_percent, item_percent) + return "size[8,8.5]".. + "list[context;src;3.75,0.5;1,1;]".. + "list[context;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (fuel_percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR0]".. + --"list[context;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + --"listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + +function cooking.get_furnace_inactive_formspec() + return "size[8,8.5]".. + "list[context;src;3.75,0.5;1,1;]".. + "list[context;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR0]".. + --"list[context;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + --"listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end--]] + +-- +-- Node callback functions that are the same for active and inactive furnace +-- + +local function can_dig(pos, player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext", S((method:gsub("^%l", string.upper)).." is empty")) + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + if inv:is_empty("src") then--or not inv:contains_item(listname, stack) then + return 1--stack:get_count() + else + return 0 + end + elseif listname == "dst" then + return 0 + end +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function swap_node(pos, name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + node.name = name + minetest.swap_node(pos, node) +end + +local function furnace_node_timer(pos, elapsed) + local method = string.gsub(minetest.get_node(pos).name, "cooking:", "") + method = string.gsub(method, "_active", "") + -- + -- Initialize metadata + -- + local meta = minetest.get_meta(pos) + local fuel_time = meta:get_float("fuel_time") or 0 + local src_time = meta:get_float("src_time") or 0 + local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 + + local inv = meta:get_inventory() + local srclist, fuellist + local dst_full = false + + local cookable, cooked + local fuel + + local update = true + while elapsed > 0 and update do + update = false + + srclist = inv:get_list("src") + fuellist = inv:get_list("fuel") + + -- + -- Cooking + -- + + -- Check if we have cookable content + local aftercooked + cooked, aftercooked = cooking.get_craft_result({method = method, width = 1, items = srclist}) + cookable = cooked.time ~= 0 + --local firepos = minetest.find_node_near(pos, 2, "air") + --minetest.set_node(firepos, {name = "fire:basic_flame"}) + local el = math.min(elapsed, fuel_totaltime - fuel_time) + if cookable then -- fuel lasts long enough, adjust el to cooking duration + el = math.min(el, cooked.time - src_time) + end + + -- Check if we have enough fuel to burn + if fuel_time < fuel_totaltime then + -- The furnace is currently active and has enough fuel + fuel_time = fuel_time + el + -- If there is a cookable item then check if it is ready yet + if cookable then + src_time = src_time + el + if src_time >= cooked.time then + -- Place result in dst list if possible + --if inv:room_for_item("dst", aftercooked.items[1]) then + --inv:add_item("dst", aftercooked.items[1]) + local item = cooked.item + inv:set_stack("src", 1, item) + cooking.update_furnace_objects(pos) + src_time = src_time - cooked.time + update = true + --else + -- dst_full = true + --end + else + -- Item could not be cooked: probably missing fuel + update = true + end + end + else + -- Furnace ran out of fuel + if cookable then + -- We need to get new fuel + local afterfuel + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + fuel.time = fuel.time*6 + + if fuel.time == 0 then + -- No valid fuel in fuel list + fuel_totaltime = 0 + src_time = 0 + else + -- Take fuel from fuel list + inv:set_stack("fuel", 1, afterfuel.items[1]) + -- Put replacements in dst list or drop them on the furnace. + local replacements = fuel.replacements + if replacements[1] then + --local leftover = inv:add_item("dst", replacements[1]) + --if not leftover:is_empty() then + local above = vector.new(pos.x, pos.y + 1, pos.z) + local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above + minetest.item_drop(replacements[1], nil, drop_pos) + --end + end + update = true + cooking.update_furnace_objects(pos) + fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) + end + else + -- We don't need to get new fuel since there is no cookable item + fuel_totaltime = 0 + src_time = 0 + end + fuel_time = 0 + end + + elapsed = elapsed - el + end + + if fuel and fuel_totaltime > fuel.time then + fuel_totaltime = fuel.time + end + if srclist and srclist[1]:is_empty() then + src_time = 0 + end + + -- + -- Update formspec, infotext and node + -- + local formspec + local item_state + local item_percent = 0 + if cookable then + item_percent = math.floor(src_time / cooked.time * 100) + if dst_full then + item_state = S("100% (output full)") + else + item_state = S("@1%", item_percent) + end + else + if srclist and not srclist[1]:is_empty() then + item_state = S("Not cookable") + else + item_state = S("Empty") + end + end + + local fuel_state = S("Empty") + local active = false + local result = false + + if fuel_totaltime ~= 0 then + active = true + local fuel_percent = 100 - math.floor(fuel_time / fuel_totaltime * 100) + fuel_state = S("@1%", fuel_percent) + --formspec = cooking.get_furnace_active_formspec(fuel_percent, item_percent) + swap_node(pos, "cooking:"..method.."_active") + -- make sure timer restarts automatically + result = true + else + if fuellist and not fuellist[1]:is_empty() then + fuel_state = S("@1%", 0) + end + --formspec = cooking.get_furnace_inactive_formspec() + swap_node(pos, "cooking:"..method) + -- stop timer on the inactive furnace + minetest.get_node_timer(pos):stop() + end + + + local infotext + if active then + infotext = S((method:gsub("^%l", string.upper)).." active") + else + infotext = S((method:gsub("^%l", string.upper)).." inactive") + end + infotext = infotext .. "\n" .. S("(Item: @1; Fuel: @2)", item_state, fuel_state) + + -- + -- Set meta values + -- + meta:set_float("fuel_totaltime", fuel_totaltime) + meta:set_float("fuel_time", fuel_time) + meta:set_float("src_time", src_time) + --meta:set_string("formspec", formspec) + meta:set_string("infotext", infotext) + + return result +end + +-- +-- Node definitions +-- + +local furnace_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + minetest.get_node_timer(pos):start(1.0) + local inv = meta:get_inventory() + if minetest.get_craft_result({method="fuel", width=1, items={itemstack}}).time ~= 0 and inv:room_for_item("fuel", itemstack) then + itemstack = inv:add_item("fuel", itemstack) + cooking.update_furnace_objects(pos) + elseif inv:is_empty("src") then + local tempstack = ItemStack(itemstack) + tempstack:set_count(1) + inv:add_item("src", tempstack) + itemstack:take_item(1) + cooking.update_furnace_objects(pos) + end + return itemstack +end + +local ovenstovedef = { + drawtype = "mesh", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=2, cookingholder = 1, furnace = 1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + + --can_dig = can_dig, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('src', 1) + inv:set_size('fuel', 1) + --inv:set_size('dst', 1) + furnace_node_timer(pos, 0) + end, + + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local tbl = {} + tbl["fuel"] = inv:get_stack("fuel", 1):to_string() + tbl["src"] = inv:get_stack("src", 1):to_string() + cooking.remove_items(pos, false, tbl) + end, + + on_rightclick = furnace_rightclick, + + on_metadata_inventory_move = function(pos) + minetest.get_node_timer(pos):start(1.0) + end, + on_metadata_inventory_put = function(pos) + -- start timer function, it will sort out whether furnace can burn or not. + minetest.get_node_timer(pos):start(1.0) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "src", drops) + default.get_inventory_drops(pos, "fuel", drops) + --default.get_inventory_drops(pos, "dst", drops) + drops[#drops+1] = "cooking:stove" + minetest.remove_node(pos) + return drops + end, + + on_timer = furnace_node_timer, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +} + +--OVEN +ovenstovedef.description = S("Oven") +ovenstovedef.mesh = "wood_oven.b3d" +ovenstovedef.tiles = {"wood_oven_uv.png"} +ovenstovedef.selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- NodeBox3 + {-0.5, -0.5, 0.375, 0.5, 0.5, 0.5}, -- NodeBox4 + {0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- NodeBox5 + {-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox7 + {-0.375, -0.0625, -0.5, 0.375, 0.0625, 0.375}, -- NodeBox6 + } +} + +minetest.register_node("cooking:oven", table.copy(ovenstovedef)) + + +--STOVE +ovenstovedef.description = S("Stove") +ovenstovedef.mesh = "wood_stove.b3d" +ovenstovedef.tiles = {"wood_stove_uv.png"} +ovenstovedef.selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.3125, 0.375, 0.5}, -- NodeBox3 + {-0.5, -0.5, 0.375, 0.5, 0.375, 0.5}, -- NodeBox4 + {0.3125, -0.5, -0.5, 0.5, 0.375, 0.5}, -- NodeBox5 + {-0.5, 0.1875, -0.5, 0.5, 0.375, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.5, 0.5, -0.125, 0.5}, -- NodeBox7 + } +} + +minetest.register_node("cooking:stove", table.copy(ovenstovedef)) + +ovenstovedef = { + drawtype = "mesh", + paramtype = "light", + + on_rightclick = furnace_rightclick, + + paramtype2 = "facedir", + light_source = 8, + groups = {cracky=2, not_in_creative_inventory=1, cookingholder = 1, furnace = 1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + + --can_dig = can_dig, + on_timer = furnace_node_timer, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +} + +--ACTIVE OVEN +ovenstovedef.description = S("Oven") +ovenstovedef.mesh = "wood_oven.b3d" +ovenstovedef.tiles = {"wood_oven_uv.png^fireboi.png"} +ovenstovedef.use_texture_alpha = true +ovenstovedef.selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- NodeBox3 + {-0.5, -0.5, 0.375, 0.5, 0.5, 0.5}, -- NodeBox4 + {0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- NodeBox5 + {-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox7 + {-0.375, -0.0625, -0.5, 0.375, 0.0625, 0.375}, -- NodeBox6 + } +} + +ovenstovedef.drop = "cooking:oven" +minetest.register_node("cooking:oven_active", table.copy(ovenstovedef)) + +--ACTIVE STOVE +ovenstovedef.description = S("Stove") +ovenstovedef.mesh = "wood_stove.b3d" +ovenstovedef.tiles = {"wood_stove_uv.png^fireboi.png"} +ovenstovedef.selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.3125, 0.375, 0.5}, -- NodeBox3 + {-0.5, -0.5, 0.375, 0.5, 0.375, 0.5}, -- NodeBox4 + {0.3125, -0.5, -0.5, 0.5, 0.375, 0.5}, -- NodeBox5 + {-0.5, 0.1875, -0.5, 0.5, 0.375, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.5, 0.5, -0.125, 0.5}, -- NodeBox7 + } +} + +ovenstovedef.drop = "cooking:stove" +minetest.register_node("cooking:stove_active", table.copy(ovenstovedef)) \ No newline at end of file diff --git a/technic.lua b/technic.lua new file mode 100644 index 0000000..30d519e --- /dev/null +++ b/technic.lua @@ -0,0 +1,236 @@ +local S = technic.getter + +local fs_helpers = pipeworks.fs_helpers +local tube_entry = "^pipeworks_tube_connection_metallic.png" + +local connect_default = {"bottom", "back", "left", "right"} + +local function round(v) + return math.floor(v + 0.5) +end + +local furnace_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + minetest.get_node_timer(pos):start(1.0) + local inv = meta:get_inventory() + if not inv:is_empty("src") then return itemstack end + local tempstack = ItemStack(itemstack) + tempstack:set_count(1) + inv:add_item("src", tempstack) + itemstack:take_item(1) + cooking.update_furnace_objects(pos) + return itemstack +end + +function register_base_machine(data) + local typename = data.typename + local machine_name = data.machine_name + local machine_desc = data.machine_desc + local tier = data.tier + local ltier = string.lower(tier) + + data.modname = data.modname or minetest.get_current_modname() + + local groups = {cracky = 2, technic_machine = 1, ["technic_"..ltier] = 1, cookingholder = 1, furnace = 1} + + local active_groups = {not_in_creative_inventory = 1} + for k, v in pairs(groups) do active_groups[k] = v end + + local on_destruct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local tbl = {} + tbl["fuel"] = inv:get_stack("fuel", 1):to_string() + tbl["src"] = inv:get_stack("src", 1):to_string() + cooking.remove_items(pos, false, tbl) + end + + local run = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local eu_input = meta:get_int(tier.."_EU_input") + + local machine_desc_tier = machine_desc:format(tier) + local machine_node = data.modname..":"..machine_name + local machine_demand = data.demand + + -- Setup meta data if it does not exist. + if not eu_input then + meta:set_int(tier.."_EU_demand", machine_demand[1]) + meta:set_int(tier.."_EU_input", 0) + return + end + + local EU_upgrade, tube_upgrade = 0, 0 + + local powered = eu_input >= machine_demand[EU_upgrade+1] + if powered then + meta:set_int("src_time", meta:get_int("src_time") + round(data.speed*10)) + end + --while true do + local result = cooking.get_craft_result({method = typename, width = 1, items = inv:get_list("src")}) + if not result or result.time == 0 then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Idle"):format(machine_desc_tier)) + meta:set_int(tier.."_EU_demand", 0) + meta:set_int("src_time", 0) + return + end + meta:set_int(tier.."_EU_demand", machine_demand[EU_upgrade+1]) + technic.swap_node(pos, machine_node.."_active") + meta:set_string("infotext", S("%s Active"):format(machine_desc_tier)) + if meta:get_int("src_time") < round(result.time*10) then + if not powered then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Unpowered"):format(machine_desc_tier)) + end + return + end + --[[local output = result.output + if type(output) ~= "table" then output = { output } end + local output_stacks = {} + for _, o in ipairs(output) do + table.insert(output_stacks, ItemStack(o)) + end + local room_for_output = true + inv:set_size("dst_tmp", inv:get_size("dst")) + for _, o in ipairs(output_stacks) do + if not inv:room_for_item("dst_tmp", o) then + room_for_output = false + break + end + inv:add_item("dst_tmp", o) + end--]] + --[[if not room_for_output then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Idle"):format(machine_desc_tier)) + meta:set_int(tier.."_EU_demand", 0) + meta:set_int("src_time", round(result.time*10)) + return + end--]] + meta:set_int("src_time", meta:get_int("src_time") - round(result.time*10)) + inv:set_stack("src", 1, result.item) + cooking.update_furnace_objects(pos) + --inv:set_list("src", result.new_input) + --inv:set_list("dst", inv:get_list("dst_tmp")) + --end + end + + local tentry = tube_entry + if ltier == "lv" then + tentry = "" + end + + minetest.register_node(data.modname..":"..machine_name, { + description = machine_desc:format(tier), + tiles = {"electric_"..typename.."_uv.png"}, + drawtype = "mesh", + mesh = "electric_"..typename..".b3d", + paramtype = "light", + paramtype2 = "facedir", + groups = groups, + tube = data.tube and tube or nil, + selection_box = data.selection_box, + connect_sides = data.connect_sides or connect_default, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + + local form_buttons = "" + + meta:set_string("infotext", machine_desc:format(tier)) + meta:set_int("tube_time", 0) + --meta:set_string("formspec", formspec..form_buttons) + local inv = meta:get_inventory() + inv:set_size("src", 1) + inv:set_size("dst", 1) + end, + on_destruct = on_destruct, + on_rightclick = furnace_rightclick, + --can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + after_place_node = data.tube and pipeworks.after_place, + after_dig_node = technic.machine_after_dig_node, + }) + + minetest.register_node(data.modname..":"..machine_name.."_active",{ + description = machine_desc:format(tier), + tiles = {"electric_"..typename.."_uv.png"}, + drawtype = "mesh", + mesh = "electric_"..typename..".b3d", + paramtype = "light", + paramtype2 = "facedir", + drop = data.modname..":"..machine_name, + groups = active_groups, + selection_box = data.selection_box, + connect_sides = data.connect_sides or connect_default, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + technic_disabled_machine_name = data.modname..":"..machine_name, + on_rightclick = furnace_rightclick, + on_destruct = on_destruct + }) + + technic.register_machine(tier, data.modname..":"..machine_name, technic.receiver) + technic.register_machine(tier, data.modname..":"..machine_name.."_active", technic.receiver) + +end -- End registration + +register_base_machine({ + typename = "oven", + machine_name = "electric_oven", + machine_desc = "Electric Oven", + tier="LV", + demand={50}, + speed = 1, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.375, -0.3125, 0.5, 0.5}, -- NodeBox3 + {-0.5, -0.5, 0.375, 0.5, 0.5, 0.5}, -- NodeBox4 + {0.3125, -0.5, -0.375, 0.5, 0.5, 0.5}, -- NodeBox5 + {-0.5, 0.1875, -0.375, 0.5, 0.5, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.375, 0.5, -0.125, 0.5}, -- NodeBox7 + } + } +}) +register_base_machine({ + typename = "stove", + machine_name = "electric_stove", + machine_desc = "Electric Stove", + tier="LV", + demand={50}, + speed = 1, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox6 + } + } +}) + +minetest.register_craft({ + recipe = { + {"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot"}, + {"default:steel_ingot", "technic:lv_cable", "default:steel_ingot"}, + {"default:steel_ingot", "technic:lv_cable", "default:steel_ingot"} + }, + output = "cooking:electric_stove" +}) +minetest.register_craft({ + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "basic_materials:heating_element", "default:steel_ingot"}, + {"default:steel_ingot", "technic:lv_cable", "default:steel_ingot"} + }, + output = "cooking:electric_oven" +}) diff --git a/textures/cooking_apple_pie.png b/textures/cooking_apple_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..2def3e99d6e36f359775a8860845a2e6badfb412 GIT binary patch literal 745 zcmVEX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0002MNklNwQ bC_n`Os=PbBS300000NkvXXu0mjfL$E%r literal 0 HcmV?d00001 diff --git a/textures/cooking_apple_pie_uncooked.png b/textures/cooking_apple_pie_uncooked.png new file mode 100644 index 0000000000000000000000000000000000000000..86d7cf698b2d094d38783a18c85ae074e06ea393 GIT binary patch literal 1731 zcmV;!20ZzRP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HEaxEtehTmC5mVm?{u^h&#>>$g}&(LlA_?*OX z?n_c`s(}U}34K6g`X9d!^BW$vVvP@?F~w-{_~a93RMhS#ubix3`T4L{}?*me}VV0+#NZ)a^7CL z`I5^h6LNL|a_B`J)>ls3TLWa1o~3kR%l0pySKgcV?jP(Qu--L#(SB%~i$dhn;T|Z( zyL{SC;ZpQ~b+LPAIqGfsLwnZS#18g_Z@yzR9i#8rWgju+cqVmCWz`^8X0+C*h$J=| zEJ8(Pri7%}78Pr$*=h??r9=#rgFH3LG^nq#QiY42I}1wYYCv~3Dqtk8Zo>65(O?1c z<`l3imV`qq-@ec?o0hpsYMZf*Aj$+~bA5a}nXd|twI_(I-m!vTJXamOumt?GfEb9- zI6)07z*l;FCRYc7VTD;S!EB4!DoUWY#pM=g2f=`HZ(@>m6d*(}9pDT(5U`P4pa_qI zS%?rw1)vPq*?BG?Kp}90lkA;~fP*~@+ZZFXL^<$o#$o8Zalu7wKb@Nru)GggKjIZ@ zC`lsHe-EKa-xi6Wv#l4N!2HE2{()ucIbayWHE!hTGeQpy=d zGc;$6&Jf7CaB;<#P-2myC7F^dmQVFH)L5lzO*J=eu3;ay*raJoEqCfzO5OL+W0$Ty z^*pfDh8uo_5r>$eBaM7hJ6J!Ze?W~6HD08qpxo5ZDsriyd7OmF48+(IfD5RB7#8+q zW|h3>Np3Q;iLomJ!^tq=G@8Uf(0Af6=w^4w8AS1ya5JKd8~8>g1eV%{eoO6tBX5ecc*)fVQ(GnlLLw3H%CL8vOYM5MMlG(M5viX@dSQ|<7y z98Tyxo8DjYIPzu%zfc`}R+MBZ6y=0Zdx)FWJsW4f<;@fC%$s{(4axIJm|w78e-!JgfD&KS#HcF&W?y ziRYMZSi~E|Gn%r#XxWmJme@B4m_NKoJ%~v}&Z7h|_+! zg@4HL$H*m4qx>~*g4i16Q9A&S!cy~v0Z~vaD_xA&-;c~sWddVCB000JJOGiWi000000Qp0^ ze*gdg32;bRa{vG?BLDy{BLR4&KXw2B00(qQO+^Rg2^kSDDd!e5vj6}98FWQhbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b0JKR&K~y-)?U1n!!B7;2ziY*-XoOt| z38STh(b9p*D)9#F77t)ClCX8L35oPAT1i`Sui=_1y_D7B+fL5;|MQ;%e}0ch7t_f= z`+fkx?Ro-}1f$Q!8 zkWwL~GQx?zEmslu`ir!3FQ^z5PLCxjS}Kf7|-U ZZW((*pni002ovPDHLkV1j=&AcFt^ literal 0 HcmV?d00001 diff --git a/textures/cooking_blueberry_jam.png b/textures/cooking_blueberry_jam.png new file mode 100644 index 0000000000000000000000000000000000000000..3448cf41dc12e8885634f10ead038321a3d94a61 GIT binary patch literal 757 zcmVEX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0002YNklX$E n*%|=BX%*G_2u4xlfB50<7nDG#2b%@B00000NkvXXu0mjf%Q8tf literal 0 HcmV?d00001 diff --git a/textures/cooking_bowl.png b/textures/cooking_bowl.png new file mode 100644 index 0000000000000000000000000000000000000000..44a3f5a1cbc43e74cb978f9e6e1a3da683393448 GIT binary patch literal 784 zcmV+r1MmEaP)EX>4Tx04R}tkv&MmKpe$i(~43m9jqYYkfAzR5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RR0!X5l%$?&0I>U5saWpZjz4D+QAQK9P8i>4rtTK|Hf* z>74h8Bdjbb#OK8023?T&k?XR{Z=6dG3p_JoWYhD+5n{2_#c~(3vY`@B6Gs(QqkJLf zvch?bvs$gQ_C5IvLj`Rm!*!Y?NMH#`q#!~@9TikzAx5i4iitGs$36VRjz2{%nOqex zax9<*6_Voz|AXJ%n#HL}Hz^bcdR}b%V-)D!1zHW;{yw(t)(PN$2ClS@zt#k1KS^(N zwCE8K-UcqNJDR))TeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{008JoL_t(I%k7dOP6JU8hQE1l!4y?hN)V);Dgpy7 zNvy>Hz|rj9Rth@!_O8K9U_vqsn2Za88OK*k`%=({B`_0>i{yqotQW8|3K(#9{qW9( zzOByAWE^=;P}NXpBYQjB97bM}vnEX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0001uNklj1gE4K{YU11{`i`Kfq{Xca^+)2 zyapg^w6wQ@i~sxopJC7D4G{Lf{|wcupTPC8pqmKO`0qc8BN%L4y%-o67#I%i+=?R3 zgv|@+n(+Z9bieM}v>rpzj~~C_wlgs?;x+(VAi*@_Qp1AFY3Le>@&c)vaT-7h!0H9` cs2bb=06-Ep!>Q5YZU6uP07*qoM6N<$f;H?c+yDRo literal 0 HcmV?d00001 diff --git a/textures/cooking_bread_with_jam.png b/textures/cooking_bread_with_jam.png new file mode 100644 index 0000000000000000000000000000000000000000..4d632b4ce9a943efaf61eb6691b8042deb67b437 GIT binary patch literal 806 zcmV+>1KIqEP)EX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0002}Nklj1gE4K{YU11{`i`Kfq{Xca^+)2 zyapg^w6wQ@i~sxopJC7D4G{Lf{|wcupTPC8pqmKO`0xLJhWaV;4ANri3{PL(WT;H> zVqjokU^ujMD~fsy17@ytWq9)HCIbTl16;GTm^wr2tp5zvX?HNZ%Y^P%Mb0dS#+-+6 z%?u0-41fRrXOI$AXE?NTD+3b~BmO{a510La_+dWW1%LnkXL$DdCPQ`F9fm_Yx1#tT z!v!!PEvC*OA*{ym_{9x^(TLT6IKM4$_OsVF8KgwjNi%?ffq@}0a4TG6V&GQd6HG>H^#%m4rY07*qoM6N<$g36U+%m4rY literal 0 HcmV?d00001 diff --git a/textures/cooking_bun.png b/textures/cooking_bun.png new file mode 100644 index 0000000000000000000000000000000000000000..34bb3bfa95637eb4a02f226ee73f6772904b43a9 GIT binary patch literal 865 zcmV-n1D^beP)EX>4Tx04R}tkv&MmP!xqv(~4TE4t5Z6$WWauh>AE$6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRR>vujoZTdZ7c=mzuY2mGx{LBG@4i2)Psy7M@QK88OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|LraX|B^6K^#j+APEsNYAB-u3sKrNQcR@iJm%pacKk_l$>b`7 zkz)Z>sE`~#_#gb9ty!3wbdy3cpzFo9KSqJ>U7%UF?eAmTZk_=CXW&X}`>PFL_LKB_ zTZl~*KK!#?ud;=UD z0%JwWUiWx+Pv_kJ?P<;L2kYu`aWKc2ng9R*24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jvM40TTsx)#~{G000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0003vNklWW5Bi*-xs#Fgv%q*ZnwK$z_kpn3qb%op-`y`zAxAgh(M(Z7bnN7Ewq~r0P?Iu zxGQQI@JbLzisK4ez@V=@jzTfaIJXb4%PqvZNAjgO9#|Gs1Ho}1iWMjE&0lexfBjRK_8f~UA9mCOUc%PpSYKdIMdEX>4Tx04R}tkv&MmP!xqv(~4TE4t5Z6$WWauh>AE$6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRR>vujoZTdZ7c=mzuY2mGx{LBG@4i2)Psy7M@QK88OgAjz4dR(i zOXs{#9A+g+AwDM_H|T=Ik6f2se&bwpSm2pqBa@mZ4ik&T4wgHZl?;`5nmD4U8s!UF zmle)ioYhK=weHDZ7|LraX|B^6K^#j+APEsNYAB-u3sKrNQcR@iJm%pacKk_l$>b`7 zkz)Z>sE`~#_#gb9ty!3wbdy3cpzFo9KSqJ>U7%UF?eAmTZk_=CXW&X}`>PFL_LKB_ zTZl~*KK!#?ud;=UD z0%JwWUiWx+Pv_kJ?P<;L2kYu`aWKc2ng9R*24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jvM40T4BMA&Hg%000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0002ENklWY=W4+C>C-0$ zWX!<8z|a_A%P7plMK~J2{{7F8=VFYan46gq#RV|Hh@KZo4 TM#jZo00000NkvXXu0mjfBw9Li literal 0 HcmV?d00001 diff --git a/textures/cooking_burnt_food.png b/textures/cooking_burnt_food.png new file mode 100644 index 0000000000000000000000000000000000000000..a63975056b5e395830fd83d1e0934b334e9a3fe9 GIT binary patch literal 849 zcmV-X1FrmuP)EX>4Tx04R}tkv&MmKpe$iQ>7{u1zQkt$WWauh>GYYRV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;o12rOinMK^-z$1H*pGxb<mDAy-i3Kq`*VMeUL|WXz#|gRG2O6;H;AV< zEuHf|aex&hh4`F!%%BSrKXP4m`HgelVS#4`j8tNtI6y4sTUc&kRxniJDdLc#YLqXe zT~;`6aaKze*0?8sp+BpwB)Lv=7*Q-ChB!pXsGx`vEQD#*NHLM1{YV@CkmHY&OD0zl zj2sInLxtq{!T;cQw`Oi~!cFo=fX)}&{ulv#yFk5a+uz5wT|WW5&%l+|^p|VE%qQv9 zrWQH^`nG|K>!v2}0hc?#;FB&Hk|TL(3b`Ecen#Jv0S0b?o;A0(#y(CTfE0DLd;=UD z0;74#UT^d6uGZfEJ=5s#2g18@$3<3$vH$=824YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jvMB5da_CX>@2HM@dakSAh-}0003fNkluvdZFSz_VbR(?}bgJZp3+j6lNo5qtS@t@ksZB0o-mky!S6Yw1CUy!u@_{JRbL6 zemwd4d}g=Xy#uPMlG$u#bzP&XhzNCElVussIh=Ed2q6T#_bot%)I_9J{WCWN_%s|} b#@B!!HW{ixvtnWK00000NkvXXu0mjfE3|Z~ literal 0 HcmV?d00001 diff --git a/textures/cooking_burnt_soup.png b/textures/cooking_burnt_soup.png new file mode 100644 index 0000000000000000000000000000000000000000..9a42fbd05a0aa2a765e8e832d9ce8b6079f62c8b GIT binary patch literal 1921 zcmV-{2Y&d8P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|acH}k;{O2ih1Ong!9*66Dxj~Mf;v$XR?RM!pch9mEgGxYh$>#>s|_iqfPeg?|>fqV?H9tW4l<49;bupexeUF3H&Y9X z%pXafay+fT4f=8Qc|F5MYd{$wpr1}`*?xMxLT}!}KeWH2_3qIN`C;2!ECfCS^1xEK z+YjaBFGCNsF7DoV4tjfjCvW|Bv4eflH-BR^9i#8nWf!pIa29nfW%Zy}X0+C1+I#7jUCDj3Qj%Q=tyiB6G2 z*^77H`{1KjpL`AyW`%_i!`xMKl<1<5A;zdCrkGXKsn?)URg>n#NwDksgnCSxQpy=l zGc0G!&QQp?aFODQFQLSuC7F^d(x<8W49p((8_)B;*Q5SFgZ<#Zbx-T;K%-ct- zwRt?(#n>*x8B{B%K8$zGta+Z6FI)3Z3SVu18~SbNKWu1()#1{Ej#vl9^O~F)Ps6$^ zE8wIKyF0MGRFam?Ys%7wU31hzYj(_3^MX_K$iLf4+a2>{U&BE`QvDH=dUE)iyX6|i z#|rkLDVn=njk%en;fM5CEcVl_-eoJr#?Oa1t`=;ICJSAEyj34X5OV+H8DDe~50$qmA6w!o1qPaXE*xv+W?6@r@w8 z4qg&-5~d=tB`?>>QaG`>E2Lhb8M32PT9O*y5N&>{Qa@p|llRbuhW~3z{?}DK3tJYr(;f#j1mgv#t)Vf*|+- z;^yY0=prTlFDbN$@!+^0@9sVB-T^|R!c;Rb0jQc~q~b9#n_CsTUlBwA0|3S)X6lLb zVg{b$>mEM7-bHzq_qjhuuaY+z;1h}Gm~L3a8^kl4md<&fILu0tLVQjPFL_LKB_TZ_CX>@2HM@dakSAh-}0002= zNklI!qE#emghW3tM%`3^M%|SAvt0oi zc2b6&v=(ADW^Nv{#o&D^w$_aPNt?)w^M}l80af!Nx616AMZG?1VZhbXtJPNc3{L;J zjSGUnE9HBK+e`~5%Zug;x2HRD7ee17LE!-jJ|<3-guTHyf0=udDjEX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0001iNkl;M1&07*qoM6N<$f`oV_BLDyZ literal 0 HcmV?d00001 diff --git a/textures/cooking_mushroom_soup.png b/textures/cooking_mushroom_soup.png new file mode 100644 index 0000000000000000000000000000000000000000..bad2101ac136b362897e49cc395615c860dc669e GIT binary patch literal 795 zcmV+$1LXXPP)EX>4Tx04R}tkv&MmKpe$i(~43m9jqYYkfAzR5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RR0!X5l%$?&0I>U5saWpZjz4D+QAQK9P8i>4rtTK|Hf* z>74h8Bdjbb#OK8023?T&k?XR{Z=6dG3p_JoWYhD+5n{2_#c~(3vY`@B6Gs(QqkJLf zvch?bvs$gQ_C5IvLj`Rm!*!Y?NMH#`q#!~@9TikzAx5i4iitGs$36VRjz2{%nOqex zax9<*6_Voz|AXJ%n#HL}Hz^bcdR}b%V-)D!1zHW;{yw(t)(PN$2ClS@zt#k1KS^(N zwCE8K-UcqNJDR))TeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{008qzL_t(I%k7e}E<|Avg}<5qUK^oONkpqcynv{LM61MfLdDx%*`FDj2<6RPcY#ohbQQP?XRVG|XFQ%z>_oyp`3{Ok8+pBv`~%WCRT z7Lq8F18{ipXj2Uu`1-CQLbw}MmGNZkZIsN;I7gQ~`_iC+Z|+A7UuuZJlOu#-v|0t* ztA+t5S5F_DPr6k(*j;nnz>^__1ZC-Lt~jrC(CgRVpK!XrqzEBIgn_+ps3Rl6a1eNr z*E`+*L&Fr421RnqgmM4`kwqTQ#_)Wn+aF9#0pNIRQI-O8fgp0??DpAyoN;?+VeapL Z;v3l5Vw?Ok9S#5h002ovPDHLkV1fptQUL$} literal 0 HcmV?d00001 diff --git a/textures/cooking_mushroom_soup_uncooked.png b/textures/cooking_mushroom_soup_uncooked.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0bec8b7a15741c5368206bab4cd8cbeb10c753 GIT binary patch literal 801 zcmV++1K#|JP)EX>4Tx04R}tkv&MmKpe$i(~43m9jqYYkfAzR5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RR0!X5l%$?&0I>U5saWpZjz4D+QAQK9P8i>4rtTK|Hf* z>74h8Bdjbb#OK8023?T&k?XR{Z=6dG3p_JoWYhD+5n{2_#c~(3vY`@B6Gs(QqkJLf zvch?bvs$gQ_C5IvLj`Rm!*!Y?NMH#`q#!~@9TikzAx5i4iitGs$36VRjz2{%nOqex zax9<*6_Voz|AXJ%n#HL}Hz^bcdR}b%V-)D!1zHW;{yw(t)(PN$2ClS@zt#k1KS^(N zwCE8K-UcqNJDR))Thlh^eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{008+(L_t(I%k7dePQySDMc?dh3?WFCsG#5qT!E4kP*Q_L zLBTbkpiB)Mf{wcci4?J88QG54-dP$Vg$N>1LBX$P{^);w=@0zl_aW=V`0Ow)XWvDT z$iNx^E*>Vb(O@a|%?^T~K|utUIO;HGm>4b}Up{Hfx>);^uJTAUB->jUWAIJOP*Q3i zxH&zDs|Id$@j>Y|CmE%P6&7`a70bXSZ=dpNV+#OR$NN#NA|^rv4VJs-sryy3F-~YsS4~}QSitXsE00000NkvXXu0mjfXH!n) literal 0 HcmV?d00001 diff --git a/textures/cooking_pie_crust.png b/textures/cooking_pie_crust.png new file mode 100644 index 0000000000000000000000000000000000000000..df4e67e514495db718dd8fc031ccc7cd7ad762d1 GIT binary patch literal 716 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 literal 0 HcmV?d00001 diff --git a/textures/cooking_spoon.png b/textures/cooking_spoon.png new file mode 100644 index 0000000000000000000000000000000000000000..557a34beeed167ee9b9b2995ac57e8e56f6fe3be GIT binary patch literal 666 zcmV;L0%iS)P)EX>4Tx04R}tkv&MmKpe$iQ>7{u2dfluh)|s@h>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWEwqU7;J6>}?mh0_0Ya_BRI_6OP&La) zL?dE4vnu*t(TyMmFo+R}nR+a_n1bv0x`&6acVV98e(ulFt7J_EctqkkrW+RV2Jy_M zrE}gV4zPlx5T6r|8+1Y9N3P2ae&d{XSm2ofBbAsZ4iJm^HkR9%6%3VlnmDAW8s!V= z1}mJmIIE=!Yu=N;(4W;-l3b@bj3|~6LmVPxR8T|-7Q(b@q?kz1e#FH;DP$4;f@IUz7t(lveY$W+3K&ouk{0i8&4xcJ@i>i_@%24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jvME6&V8x1f;0|000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0001SNklPDy(y4_|L$=!0_%P1LKr)Bp3kG zc;&e`gA~_GhG*Zz8Kk&g!VO^}#&(!yY=9^ObR=Kmlw%>}{C6KAY?#y6-FQh{AY#*u z9C&yQAXYP014z+~VF0O`Q4AnQGgiOD5)Rz}07{fbrUJH%_W%F@07*qoM6N<$f}FA! A0ssI2 literal 0 HcmV?d00001 diff --git a/textures/cooking_sugar.png b/textures/cooking_sugar.png new file mode 100644 index 0000000000000000000000000000000000000000..6254ebd30856f013f21adba3daaad934131990b3 GIT binary patch literal 631 zcmV--0*L*IP)EX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0000^Nkl_CW z{y%&A7|xfHmc?oa6ET_@7#J9yJ$=lubkW@ZL>WK|!082SwnfJ!GY-Ra0svoU9-UH} RuDJjJ002ovPDHLkV1gek1`GfI literal 0 HcmV?d00001 diff --git a/textures/cooking_toast.png b/textures/cooking_toast.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f147d96ef66297a1256eec850f69b699607ff5 GIT binary patch literal 697 zcmV;q0!ICbP)EX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0001xNklj1QYEg{v-2$eE-bAz`($;{M1)Q zyapg^w9w**i~s%4$Z+`FV+IBW28RFt{xhsN^9`<#1>HoL#=rkjEi=+lU|?WiU^si} zK8iRKHZP!S#s`?t{d(Z+6AVRPe=);tXJlf;Z2-1Ff@#L3h6R_?&@~d}1yVKRG=LO< f)eGoRHMju)9>y_gn{d0U00000NkvXXu0mjfnT#wK literal 0 HcmV?d00001 diff --git a/textures/cooking_toast_with_jam.png b/textures/cooking_toast_with_jam.png new file mode 100644 index 0000000000000000000000000000000000000000..576da21afed982427aed8a01045a35a5e083eb2b GIT binary patch literal 806 zcmV+>1KIqEP)EX>4Tx04R}tkv&MmKpe$iQ>7{ug?3PJ$WX<>f~bh2RIvyaN?V~-2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzE(n59U#<7Of@?u09CV$ zL^L9%GpnNS72Oy_KLQw&n5oB-iz&E{uX}j-dKczd?&tm-y-L<(fJY>rW4d7xZxGLH zS~}-_;vg$X3h_DdxIq^re&o8`;5W{BhXtM)G*XFq;vlh@Z)3TQS;0_=r-?&~s!_g> zZm`06i?dp)u;xAa3;kJbCCPP~!-!%DF~lK4Mg>KbU?EJaMv939?MGbvLykXAE}2|K zFmf!Q3>A{&2mgcL-I}?n$wrbt0(8FE_Qwd|+Xd=X+x|Yb?fMDeeFmlN54hX`2A*`ukQ~WNQ^@6j_cQvY3=p^lde$1fHTQA)0Hmm^_CX>@2HM@dakSAh-}0002}Nkl?kadg|Iyn%obL}&KO!h zKsrhI2r2FP1QY4>18lAAjBCus!mYMI2!VG7eh8&N#JbpVi=@bEgd+(FWD0UA*}zBlk(O?MD+?%x3r zgz?JzltIvK@imA5EbO_Or;jVDemfP{NoF1QFS$6mwJ?A&LNTWa!WiYK%|onJGBR>* zYzM{&yafBw0~wFaf5YkTeuBZ@h_n*l&M-?U&k-`xHq k)hZd0nfwYQXRv?G0kh0j_AWi6`Tzg`07*qoM6N<$f@b1ht^fc4 literal 0 HcmV?d00001 diff --git a/textures/electric_oven_uv.png b/textures/electric_oven_uv.png new file mode 100644 index 0000000000000000000000000000000000000000..015608223201d53956ea75f83ffdcf613a90b0e9 GIT binary patch literal 11351 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 Z{|jk>Ui~J$(fR-Y002ovPDHLkV1hNCa8LjM literal 0 HcmV?d00001 diff --git a/textures/electric_stove_uv.png b/textures/electric_stove_uv.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5dc48207e103df4295b064c3cddcf2272381b3 GIT binary patch literal 6172 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 M07*qoM6N<$f)mA_X8-^I literal 0 HcmV?d00001 diff --git a/textures/invis.png b/textures/invis.png new file mode 100644 index 0000000000000000000000000000000000000000..7a969344e992d428c7c9eef0d9d07a7e39a3342b GIT binary patch literal 565 zcmV-50?Pe~P)EX>4Tx04R}tkv&MmKpe$iKcpg+f@TnL$WWauh>AE$6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_3;J6>}?mh0_0sdx{sb+8jP&La) zC*oo*zbb}a5kwdRh(M5-sV6gwS$K}Gd-(Wz7vovp=l&f1O2K4+Pb8jWx?vG-5YKE{ zI_G_2ft4kN_?&p$pbHW|a$R=$jdRIiKhG45YF_EVIxQBn(@u$coldA$o zjs?`9LUR1zfAG6ovp6;BCWYfb&x>t;i~^xupw+PL?_=9;odAJn;7aTGYfWJGlk`SM ziyi@yZQ$a%qse=~eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{000e1L_t&t*JEI?j$!}+0crr2-ff`f00000NkvXXu0mjf DQ`_fe literal 0 HcmV?d00001 diff --git a/textures/jelys_pizzaria_rolling_pin_inv.png b/textures/jelys_pizzaria_rolling_pin_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..c754835a773f340f4fbe7fe3929ec63f6c6ccb6a GIT binary patch literal 300 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 U7X%H;y8r+H07*qoM6N<$f}ti2pa1{> literal 0 HcmV?d00001 diff --git a/textures/wood_oven_uv.png b/textures/wood_oven_uv.png new file mode 100644 index 0000000000000000000000000000000000000000..539b25437b44ddf229cdcffaa0c691329f78dfeb GIT binary patch literal 11633 zcmV-%EsoNOP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3;uk{n5ro&Vb@cm&&*4HA{E@&;NezfAOc)6kRT@*HNqIPab*1$v549f4;B5XZzRwq+dS^ z|N6R1`R50bmy+K3{cpWL@1MM0{(PYQyg#geeciSFbDjQkp`Rc8x?s|sBj22#hy1xv zir?$u=l|V^-#4@VWjR0prDm7-{pP>_e{KZh6ka4o@urZx{TshKCH)uDEW`Tg^b^d}tOg?=ro{w+>FuZQx_@v|uX^@&3Kc}x8B z1N~Vo{G{UFd&HnEz!Q?jf-$5`&i{~cf}dsQThDlsWy&yGTfQ zKQS#9-{8J4{_lU3*hB`4g}Jl9>DPCORl=XzN|xv3i{q`?e0_!eUefjD;ZGkNlua$IB}6j$QmDPvBllAIoOZ$8t4y*HNly$rmNh>~h*q=wcZ zSvi+n>9^FPu8L(O7Clbvc}7; z{klXDoD}7ZjKv(tcvA)_=%}3e9&(P#oO0$zOb)DyJY`XGPEf|kV7?)i7k=mNPv-t( z-W<{W@8&K3Q|6pf_x~evPO1A#=Keiz|B$sa4Q`VqNL@%wLC8e=@rK)H>{Gn-Kl&>+ROln@9`nl^ ze13kHr~(u+U(Sxuy$q7NKWjeXl`Pg#hoB zW+;QQPIZdEP$9$CReREs$MK`CN)g%5xR~Q=b@X~m^h6~EYMhc<))e{yk;)_vb3t;6?%Y6!+58)(|QUk5%W!kbK+K$#D+myxs74#+3zT% zv_o98JokETl*GGjWE|rf zo<6P5w)dA$Za&$r;(cbKp;-7D;m*u53oHWpf*f^ImFg{hCebcqZ%T8G+0UT{Vc}EB z(I5`FNNfG=t1FBAgu4|X->8NA?g3BA+$)B%N?%F~RI{f_dI%0uq%0@tAo7XQ<$utS z{pL*t_kAeFdpr4JJy~G)x3+uP_gh{Z3qhQAP4nazc6w_Eq~E=3qx>k*!dvI@RyRkj zy0p?b_xPHJ9ypf{j4Yg&e!Y9bZ+4YLiNhIhxx%E8Gxc#N|F^bxFk#w;{0k-3dVF2!1;uI=c@Qeqms^QoNg zpnhku3wYihloH(u!PqEqq(2dTK>p?4l+Eb=t{0uI*iXZf1nGnf6jxGF(05XB;#$%I zvU?9oguF)(VRBK*8A5pU&>oFm^WlrMWvE|KmA+s@@J6ILF?c9D4DAAaEXmB6e`)5dsW zeB7%kaTLLvVa&DChO0+yp+aF)=%Kmk1+rhuOQZ9|z`-%<>wCL7X`+cwJAktXgQBm5&#S`+t!;wh&f)Q z7~NiC@G%3Cb$68 zVobK8cu)`nUcXs%3TV7lND(C<4h7BBru1xKO)QZcQbgQEZ5WoLn8!H)HLQdRy89fs zLFEVg@_{mEhLdv)8yCADjRCHU&LB~H;@V$WbU#(pc1sy-PcgtfTMP`HNs!SF+22Hj zDQGy0C{d^TQb-XNKXV_Vv|68T_XYZqr`;ZThh*>Jy4-_Rblw6Ft4AbdCcIZ?hjV*T z^&%t)hbO@vFQWVjj0080%x_Zkd7wI7@lz=}r_g?t0WrXGN)=z-YO z1Np7~E%m(KUJ|iE>eS>{Lx^XPAYU4T&PB-$`f@n+wuIk9&_B|Sa)ES8g$7YOtQB$~ znMfE>d~M|@SSSk6Ky^VAQ8e%xQL#GKJqs!tlnZ*E42=->viRH?hDMp(L3cMv_W{Sm zG2^{y?eq%3cB0sZF0QB-tEgeA-K|?pV9Avtw6IW_RC9$GcDkf`ZKTwMg!Dvvq9sqq ztA1D3fB^4hE$Ocun9Q zjOSm5<6|NvxT{UdHgLK0>F5`{TrhJ`K-ahd!ACjF9ze(fTtHq1uRs*_iYt(J5v-(; zOp$=&G5bkXRlcWQg_2Y+@*nZJQ6sEg_J`1*o`#Sj?1?C)N+H12FppS8IHoDCh(v@X zGTrBqHsZ%*C3nvb;~CLxE&3C~qOu;Yd~$CrFpNS8+|gw)xC;OWo&?!lYFo11C@zuY ziatVpJfs7ng+~HQ8XSpiD>Y&8amYYanUX_0Mifu-lnv&NMd>>575NDdHG*_RYQV2> z4T2zQLWx7e{$Qx!&(H~}K?jZo2?U@5Ui7%C^V8xeT{qe%qVTw=8>AGqL<7TH*zJ|e z2((BDv`|;RPNgyr)P+3#{7%Xh&50TzB{cV*^(+qtiX5zI$~rN}h3%#)cN0R~mSx%x z5|o^mD-#So2Xrl)gvXohh0i9nJlgeu_EwZ;_vx!W^^1Yog>CJ;n z;+9LPj)t@veqIC$(GnP+4uSAg5YwZPaFo?OIX#|)z!SWhX!`-QaV20TX{?{k+=&^- z85M8^MA|sWSI~wk((nVJ)uH7o-2F_rj5HJt$4 zql}k0u^VM)@EoO{nq>(O3f&49HASJa7k?h0u_l z%)?#?vnc7ylKE!VW^!5XX05t4vzjP-5(%Q4VL{f2%s?U@S|0orU4)zzmMP4?9plc2 z=?o1vsW;@TN|-g(F5m_VHPS%xEvekNk;H%uT?pY(Xt*z6Q5+M*6?s|d=PJlSCR6M) zLm(6&zUnv(CU=b;F4-Q#5F!RoV}4n2c7_z2^BifN3>f>U!_;xh>ykF;16kBnM$+kc+rj|rYgW8X};^* z&+F5K5rRn4m8BtWhAI+;!b@w=9l#t;*q!t1BVppV-XWXx$3a4S^py-}lO+NxF*wqx zD8A2e63jmU<%Ce<*xc`_dMN9OsptRbW@v;rsm#!jD8GxT9N6XCJ_(Kw!Qa3)v`Frw zz*4cv{%dFy#YXC*Bo#>p0u1<-t*9E(+S=%>68Ae6(s-bg;82>;YbHmMVTp`HOIrS2%dc5 zo)vx^G7Nz+q#wD7WTB%Z@GC0;Lp^JAQOg6N0PQ|CDKEWOuW6nb>?Dej40i+&aF=0* zWd0is$$GDdjkbD7!U4$RJzB&4jfcfN%Qigm!w!2AHQZ}kENnSTIBtbZuI|RgtGB@Km@fD` zCIO1(0pi|Pv^Rs#>F(=Fkc5#atP^kD@RESh+dDVS>_8;yb<-0^IvB`@G*RtHo8m-!jhll$n<}8u z@Wq;(vW!%apr|HLu#fOfkJT4m-LNDBL08#6jm9>TkKP)ZV*=HDCq}EOYJLkvFPbBu z+`sNG01LH);mCvo*ZFMfpP}qqg78|dxm*1sTm{eQwyX)K38T+g>}5|?w3%STE9`Nd zB=9D>f9aY8zaCiVX2dP{54x+Xc)BR4h~?%z;X&jAA7@pc+lIupjeeRegs%KeQApfD zk4<$bnE^+MDQu&i=M_;)*DPH}+wkc>(_GuVap1d+b2Xhh3-vu%>B4Rwx=14}NVT=k ziw!L0T(8nFJgq$yCU*g&AmqK8{-S{a5eqN$S4uLdEghpp>L5eu9f&N44YlyJv_gGT zs7v9}odkPp(gOqyVvK7Oe}S)EA1HRYo;w}IbG;Y8?I<*4zluCgN!=#76M#zm%aMH`Z+ ze;$eQ)k7hS{T1hZ)WI9*{=Yr+LK8MRY|8(9GZOB{>cMy%*r96*0)>=74OJbARUCOc z0MCP|&9=?L=og1Jz6~-}GcBfBy(Zo8kp}al@hHL0tu)Qx*Tz=P=_uZtg(YHt>JPPp zs1t#5`GR9aFs!iruuYpjDGYcKTFK4ZBnb-!6))G(aeRnCYI_Jm>meB{PVoj3Aff=Y ztAw7Q>IYKu=AO*tkrkd%n_{6mFd7C&h1FWBAL5~@&{LN8ZmjP&5;nUJmZMTYtEKIe z)u}sbRH#?5>si}vO=BIj4;i~LX*1r1XVmabJJuvd%}&@dd{93&oDc6h9sGLH zqB7^DJcKDNPe+9KGmpbc{M}qEO%RbvI3d)4&U2uxfDxTul4GSoZG%)#L1$Iz6^$sV z8p>A>D?~`ES7MXFPp%Q9DXJ`nlR6Q=V!i&sGPJUUn;N?!N2+FD*n|#7Bf5{q!Jo*9 z*+ttWh1StEEyakP)CG8wPIs<_&&Ud|o(-LGDxuL%8i>5K>DGjbC>__wl^9}4N_r~z zaE(l_iV*$WmgcU&FtL}dL|T0AZBtiR6wLUN%j?clP4D)o1*r0_?dSo1hTaWHhGX^3 z@~rGqqY{yEPvpA9qCz>)kfZ(V3?}U^(y#}%wNFp&tb z#|9bS9}mJ5Xr)lQ5q_^_X{X_pT0R|ck}oiIY$PTP{;y@|e@ zVJE+XP_wR!SU|kLwD3^#ErKhi4BqnS+!U{Gt(-CJEh}$v|pMo2Vz7s?R}I zs#JOd?75b&ST__$Mfpo}tP-(8_#U|CAOfDWZR|@pg2*^(ZEe%xwuG75Ql~b!A#glV zG7AyW6F3DgYAi<$A$2rw)g}vWp1AVjv+e{(kUO0RTiQtq8shSrFTQ}WPP>{uNMQ<< zgq2ehtO)FF~WHAbe3@6$+b|2iByD z2LhjtwqFj51z!mL)-VAl<=40btMSAxBj$jhP<5_D69J?jJ^{X@^}$iw4#b}3C%T1j zI-I8+ESvSCPDl==-W)($6V@DWjtSxh^$SxN`)(-CwvPxhPF?u6}GzgL=cU5~18|xhdx&TPD$`n^A zAfP73QKH#S{R|d{zJJ?& zIj4F~l}6J*9q*wqQMX68A6$h+p(yytd_k6QXqy~Mqjs^uW^@Z=T38fRgOOsFrNFr$xlEQ!DeaDD=y@pbBTeLZo#d&Kq^q3>qey8u%50sWC{XND-u1 zl5tmc|CYwK1)g+_p~jm~wPZyjf@PYqAj>sQ;rTTuIyzi}{%O!l1;d^~{;pE~2}KMC zLIvgQfW38Liyh&21oYY8nS`thqI7U1ygzGWaP6)$1WSiiutI|OcMWI4!T9lbgk5tT zGDF{QJ_G+R;OF$BuuIf{IUt{w;t|<^ezZEFZ0PC&4j{CusIX`YW8{`(OSPUiwZVk4 z)oGJYD0G`)NM&i$*|t#;fXEK`R3lbRvs5O5wJs89f7-LJhO$3srP1jLG(GC%0oh_s$XIVB8ZP~U9r6Dmj zm|5_ZkRt}xHnIevQ~?vjp*yKRPsF>98itO7L3`KyIW~ykK0QTt-nP25+Ci0}VQ}J+ zD1ebZBSet!NMsyZm#?OgI_uC`77x^5ybi`#M?1i57LPX?o6FdYFt+hP7A*y-S=IOD zD3$a)fv<5EokP=k2MuqRZTtjR_Clr#RkU#p-lBSz#v6p3w#8nX9?8Sh$Q&WwsPmI= za1R~9)u}f~NF!F7zG2g0YWQ56=|~JswrC28Vf-&489&pinShES(>_ z0c+ZE2KqOatIGS-i=+5)2@uoK*2nO64(T~GEr!18&>WUUA|l}=fVVPq#sl_1Y^#2R z$v6o5Yi5dL8(1|ECTfU0UC$M^GWq&!N>zU*0zU(R-6c?;G#fazDg192Yh%>mla$w( zti0K;Fz7&Kj$ouv4pP-70Eno8BUC`)z?7(vA+8b9;NI5O`7E9RH!VfdogJ?{D}956 zCVGMT_z0HtdnTPtC8x;k>g^ywM*3IKRlW`~qwWcs3rJ0r$i^3~D<3y()BD(Y$ne<@ zFrJtN0!|ZZ+x|P{1{4dOWfc;N4OeCROZ*sY@-^vHk2nwNz~n-Z_{a*0>ofzk=MiFv zE!YC_lI$?goO!u*lg&{?rCsN&;?!?0)TT|X0VWL1u5~sebZzf6L^wqS_+JRDs}qjg zugfgz>JUW6UjRO^h@HV2cK8KK!DmfEeJE$QE2yyD5M%U~F)(wX?3D-$MN7H;X9|_t;JG)(&`=dW9(E>9bg_pD+p+gxR zh(rHr@F^pYTGnLQRF-4Vac_O=J^JfTUvBz*%pzDP*QY z%Ah&sFC7KOa+jr@GH~PA$!!h1pJ4t>KeqowZq!*_{oacz3wm>Q*sYL(E{H!uI4-eD zU?EY5C%rbk@6N++aw#a%5otO*BcyHH8Al>(Itm&S1w#nicf19hqiu$!M>+8C*Qz*< z-7~&8qhK_;6BTvgHfWgK>89TZK5VT@M7-n8KuP?duw)%S#{LfG&_lsy^#}CNkhK7} zN=i-4u~h!0$2XzT8n(25uZKTxI(bQqEll0CA z%fk$nz)jmfgQoj+)EWsN^q}U_L>*PqY^JS)j2eq<4~|2V$S%YZ#*1=Xs8wq&;4Gn- z@`P#WG@U@xydbBJO#`oV0?3BxV31f4qRJB3^z)Re-2l;-ruYMI4hssQPB3%hUi8}u zTqgbcG3vVXC_AC)|CHLR$i^;54-D9;3tElvyNJm|6wm|OLdst{D5hp47;Nx7@nG~F zAk(6ah}zXG^#XzoYZ!pC;+BTIw_#2{`mD%d$|s`*>~waQrcG#&7OAmuKZQw)sS$Ln z^=|EON<;RV!6%RYu?ellaypKy!!^U}eA9Yj(LCqVFX9Ltrj)TZaj3Tglx-cY!nSi= z!zc;)VB~`PD|za}J8Ac|=~vpuDB8V7n8rHOUrtMEf67g+E1@%WK+D{r91X0F@K;~CNZcSbbizJa=JyQYbwG$;q9{y z<tVzF4BR3svJNUx1J3-rr=f=F(-ZVd z1DN#BYy5iAPQnAtTRT?g8zn5c(ciS;^t%jizHehf`n1Z&>30upW=}kA`up$}@bj;g`Z8sg_z+M8epA(za|H)4FJ;IXM^^im`6M%2^H;R4Lg}Y^&ldE z0?{Gl+%&Sy_)MPtPHt+ytr1{SEIu7ybjI(FDymMP+%bm+Fx0DGVUQ4yKYK6L9{J~P zx#InFGy*P3N0a{6qzSaaYco=bs9#p!$th`{Ut8NoRQH*tq?Od(_O9?dq=C$RTS+S= zX+>0S(qMf#xDBTaIuXwPb50Xc8NVl7cJhzc7hO>jG8!?Bt&onELH69sF^ob(3U_cItK5bHOFEeFv89 zlmKO1Uqq~HgOB2fD9(aDY0z@ul}p;Uqxh}QhE7&!*L;{$&bBXs@Tuq!JPy=UWZ-Mg z(vc5`wlvGIcxjmD>gCcJoNy{8gqFIfONXm_4>~20}BtS;@$rR zzDhrd*aJjS0004nX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmKpe$iQ>7{u5eteq1gtJv z5EXHhDi*;)X)CnqU~=gfG-*guTpR`0f`cE6RR*plX&8kA%fkdR6qjq7(h-#W2PsX6n(zViGOK*F8LZy$kWI z*602l-Acw}fJY>rW4d7xZxGLHS~}-_;sDD_3h_DdxIq^re&o9B@*C%z!vfC?7|HlN zae!FNHL={pEN`g9)5JkV)hJ&`xvX&B;;a_StbR}aLVreENpPL!5F%JY6fua9QAPnp zSP0RokzyiF`{5S;LB}5>mrSk#7&#VDf(ps;ga5(rZq4k}q?_aq1MM%i{V@Xgc7a;O zw!e>UyLJM2pMfi_;V)Hz*-z3d4J~*C^lSqc*9}eH11@)ffhS!uBuDbn6tY?1{fxdT z4fNdtU2AS{^?jT^07>d<`35*R1V(d|z24&89nHP{d#2vs56TvD%5WXJ5C8xG24YJ` zL;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jvMD5hFKIb2je) z01H7$L_t(&-rZWuj_br0T`rd$$4TtOPWq@1ASAv4BqR`Hgka9++@AvR2f!2wi4Q=1 zh#fm|UXGu22S7LI~Kl4I$ni{Ut8SufF<9)pZTu_p#k>VHgGgAP54aY097a zn9t_`fHY0<>#x5W|0F;uB|Oi=X0y3(y;2H72uLX*gn(ff2*VHnuv)F4l;V2;NRos_ zgQ)mVj`R5pr4$UqfNk5T>-si8!!WQ|ERZA#mdhoQBpH->8eteBNfIW)=bwMBOw;VF zY1&w1D0j6&d}PTD4wYUfmKRDO4$KTM9?`$IyvM%L|?3iKwcYR7%~9j!fZB!QVQGc z7D_2(S%xgj7=Uftux*Op!bO8(4d3q7lGXEcJMrpsjC|!-8j&^&IQ_=K8Xm1VL(a=$8j(kjXK;XmC?V8 zA+EdzY#-ciw}Vm&p6BraXR{d$!(a+aDfs{dTuKQkB}~)gOUkYW)pd>2>4ekig!OvO zdy*v3MSHTFxW|$X5h9Lb))jqZSq9JZIt0*PPT$GwlQkv|(X*l`c%JlFN{J|nAcR0! zmKcpjo%ie99&{4~W{8ve9Ic~6(S~F}N$;{O!)!Lg`Fv(k)DPr14vL~+0?>ZM6%yO3 zsxTUj*wK&2Vtlz*G3QoXxkS1{l3F7y6;;#+qN;CPGMOVuOV?FV`7>n zgC*C{G!2U_fm2GcqbJT1@yJ*)2m2zZf4>*3E{=v_!1Fxp_xp}{*L97I3>}E z21H7U(P#wQw&A)is;WX=*UZ(XX;9ZSY};lLACJdyT^D(tGm(T4m`GmS91aJ_&1TbyMsx$vwk@YiP19gLpLbHH zAPDg1pMQ415kTD+&1N%9r&AU+5-&0`{q;@LbgU~8v@az}DU@Z2#bUvtZdn#=+y2`h ze*gXVs-N$zRx6G#iG!=v3UM5F?v+xQPN&cE#d`)tLBIX>8*`h$_2W_3b(xE{ZDY6F zAx%^M&Ew-EX0sWD5J-{)d7dK-L;U{x?}kj%6pxROyjc`QNYfO{jpv{=#atVnQqy3x09mKN6SHG{t(o#(X}9>$;u1k|H76gWQcC z|2mG-F=CG6U_2h9C8DNv@y$2isD4n9rYUUOhLp17YPQ=gM?z#NN&G#}LtWPxjYgct{qe^i`0&FI5k(QZ zlBcJq=SC)qqMM}xBEpb$C1wBNhaUz*qaT0#(Exz&zWYw;I{fb4I~az6`FzeGec$f@ z*5lAT&#_*wF`LbBJRaE^6A^Tm^91{PK%INp?RE)T5jJGXhSLQRIrQu$D@sKqqBfN@`XKlFJ$&D1BV$=sCjiicbh5(qd#NA3 zuVcg|n$x-V@bG}ArzfOo%2xD?FTPMi2keJ(6hP>?n;xvw+Wmgd;OKeVwy3I#0a6A} zajYJE-{jzsLD7LmQN){UHXEiKz1Z_SzUsQ>uuG?I7=|6)BXGSE{j*evI7tBYa*3WF zzF1WoGB88jR7%~YfBN|L+iz8pB<#=n?z_KiqWyxSJmkWdt$n%^l0-a2szzlKb zwFc)kgNze}X#|XXq7Z_kB04aYEA-fuf&t(6xo4r5JH#y=yLSu~hVS*8R9Rmv77#)p z2m(%j_WM18AmChYKA%7Hbren#u-R+|-}iZqyv3a%kbO(4Tdda%I>7OG#A2~PmSxY9 z>o5$t{7BUUy`)Hyi)C3DjYeExrkr!P+d)!;ML%Q|MLb9Dqd(UVkG}l!OZDc>8;)U@ z%Vp=jAI*?s4uSyt{T|EZ@)@DF+b#cAubt`yq7tHIS+Fb%j^n^_oWFIju4`0P#hG*v z1YB|t!|>T$5Cm-Y*XuQuQi$UizVD+b3QVU{lx2yhrzezUiRpBT%jMF!s;c6{=6Q|} zKKKCV^BJep36A5iu01|JVmuyWJRV~*nV>97IF7^N8xdqY9>Z}QeEjjpFijJV=uwd8~l*lxF-nvnj^{#?K6M+x{{?K52uuT{5co@%5` z({!jTgy=ME`T$9P^fEm~LNq^Ad%e~(34#Ew>ngomNP1Zm1wQ@sQ^?(J*Lm5sGNC?C z?K84!L|s}#Rqr%S8L;lu`+p|TyF)`=tv+Gtp8AiJh*QW$miBVFyyxIhXZN1ogkczi z<;5Xx=sKhml>DC%qC=2d;B+GD!8(aOW%Z}i>2DF$%Yyd+rA>7m>_5L&E#GW5h~pSi zO1Q3jHT$^tZzXztR_`DmkH_I`qED$?->-2{r+S|&eeUYuhI*2>`jmaKC;uvhK$d0K z+h;=?_UCSa8;VN$Qm|YuvE6R3x`6&49)<>2u(d#&QmCeB-izpFv$+~i>WAvTj1D#= zqV&6=zDHjoOw)X3K(6V({s)F22q2~81Q-A}Maj@eQgVG$or^;+?sIVHKtt4j>CX;B z;QRA>*)on})OF1@QF29k@Ga9c?Swt|_#iUPePZ16?+o4OY&IK|W!Z5vuW6qX#|Wfh z7&xELozAcv(wS@RGdjRae_XiLdegZgr9=<}H+|ndx=5Coj0?5Ugb?qI%+P^{#FFlp z%O&fqZXj-n;I%e*nxZ^wSJDmXf{A4nLZQGnhP@{+XjAG~@`iqAABi&Oeq5tx0 zMrFvCQbK!6#D_qV4RBqzQ{bYKBDd%I+@m&>-pC)~Y8=PUIIlmagY>zh-&3GK($If) zEsLNvl;Dm=BS7Z^WZoR%Cf|MzsG+8Tr!b%5QSB400000NkvXXu0mjfQTAIk literal 0 HcmV?d00001 diff --git a/textures/wood_stove_uv.png b/textures/wood_stove_uv.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc0aa99fdf4d55cec6c27403130f686c62f110e GIT binary patch literal 9223 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