diff --git a/minetestforfun_game/mods/default/furnace.lua b/minetestforfun_game/mods/default/furnace.lua index d49d8efe..2163f6ae 100644 --- a/minetestforfun_game/mods/default/furnace.lua +++ b/minetestforfun_game/mods/default/furnace.lua @@ -133,7 +133,7 @@ minetest.register_node("default:furnace_active", { can_dig = can_dig, - aallow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_move = allow_metadata_inventory_move, allow_metadata_inventory_take = allow_metadata_inventory_take, }) diff --git a/minetestforfun_game/mods/default/init.lua b/minetestforfun_game/mods/default/init.lua index 0bb0a077..057267b2 100644 --- a/minetestforfun_game/mods/default/init.lua +++ b/minetestforfun_game/mods/default/init.lua @@ -34,6 +34,7 @@ gui_suvival_form = "size[8,8.5]".. dofile(minetest.get_modpath("default").."/functions.lua") dofile(minetest.get_modpath("default").."/commands.lua") dofile(minetest.get_modpath("default").."/nodes.lua") +dofile(minetest.get_modpath("default").."/furnace.lua") dofile(minetest.get_modpath("default").."/tools.lua") dofile(minetest.get_modpath("default").."/craftitems.lua") dofile(minetest.get_modpath("default").."/crafting.lua") diff --git a/minetestforfun_game/mods/default/nodes.lua b/minetestforfun_game/mods/default/nodes.lua index 3709315d..eea01356 100644 --- a/minetestforfun_game/mods/default/nodes.lua +++ b/minetestforfun_game/mods/default/nodes.lua @@ -1321,228 +1321,6 @@ minetest.register_node("default:chest_locked", { end, }) -function default.furnace_active(pos, percent, item_percent) - local formspec = - "size[8,8.5]".. - gui_slots.. - "list[current_name;src;2.75, 0.5;1,1;]" .. - "list[current_name;fuel;2.75,2.5;1,1;]" .. - "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:" .. - (100-percent)..":default_furnace_fire_fg.png]" .. - "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:" .. - (item_percent * 100)..":gui_furnace_arrow_fg.png^[transformR270]" .. - "list[current_name;dst;4.75,0.96;2,2;]" .. - "list[current_player;main;0,4.25;8,4;]" .. - default.get_hotbar_bg(0, 4.25) .. - default.get_hotbar_bg(0, 5.25) - return formspec - end - -function default.get_furnace_active_formspec(pos, percent) - local meta = minetest.get_meta(pos)local inv = meta:get_inventory() - local srclist = inv:get_list("src") - local cooked = nil - local aftercooked = nil - if srclist then - cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - local item_percent = 0 - if cooked then - item_percent = meta:get_float("src_time")/cooked.time - end - - return default.furnace_active(pos, percent, item_percent) -end - -default.furnace_inactive_formspec = - "size[8,8.5]".. - gui_slots.. - "list[current_name;src;2.75, 0.5;1,1;]" .. - "list[current_name;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^[transformR270]" .. - "list[current_name;dst;4.75, 0.96;2,2;]" .. - "list[current_player;main;0,4.25;8,4;]" .. - default.get_hotbar_bg(0, 4.25) .. - default.get_hotbar_bg(0, 5.25) - -minetest.register_node("default:furnace", { - description = "Furnace", - tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", - "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, - paramtype2 = "facedir", - groups = {cracky = 2}, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Furnace") - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, - allow_metadata_inventory_put = function(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","Furnace is empty") - end - return stack:get_count() - else - return 0 - end - elseif listname == "src" then - return stack:get_count() - elseif listname == "dst" then - return 0 - end - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, 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() - local stack = inv:get_stack(from_list, from_index) - if to_list == "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","Furnace is empty") - end - return count - else - return 0 - end - elseif to_list == "src" then - return count - elseif to_list == "dst" then - return 0 - end - end, - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - if minetest.is_protected(pos, player:get_player_name()) then - return 0 - end - return stack:get_count() - end, -}) - -minetest.register_node("default:furnace_active", { - description = "Furnace (active)", - tiles = { - "default_furnace_top.png", - "default_furnace_bottom.png", - "default_furnace_side.png", - "default_furnace_side.png", - "default_furnace_side.png", - { - image = "default_furnace_front_active.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1 - }, - } - }, - paramtype2 = "facedir", - light_source = 9, - drop = "default:furnace", - groups = {cracky = 2, not_in_creative_inventory = 1,hot= 1}, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Furnace"); - local inv = meta:get_inventory() - inv:set_size("fuel", 1) - inv:set_size("src", 1) - inv:set_size("dst", 4) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - if not inv:is_empty("fuel") then - return false - elseif not inv:is_empty("dst") then - return false - elseif not inv:is_empty("src") then - return false - end - return true - end, - allow_metadata_inventory_put = function(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","Furnace is empty") - end - return stack:get_count() - else - return 0 - end - elseif listname == "src" then - return stack:get_count() - elseif listname == "dst" then - return 0 - end - end, - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, 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() - local stack = inv:get_stack(from_list, from_index) - if to_list == "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","Furnace is empty") - end - return count - else - return 0 - end - elseif to_list == "src" then - return count - elseif to_list == "dst" then - return 0 - end - end, - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - if minetest.is_protected(pos, player:get_player_name()) then - return 0 - end - return stack:get_count() - end, -}) - -- Locked Furnace thanks to kotolegokot: local function has_locked_furnace_privilege(meta, player)