diff --git a/minetestforfun_game/mods/bucket/init.lua b/minetestforfun_game/mods/bucket/init.lua index 1373a4bb..daf19980 100644 --- a/minetestforfun_game/mods/bucket/init.lua +++ b/minetestforfun_game/mods/bucket/init.lua @@ -120,7 +120,6 @@ minetest.register_craftitem(":bucket:bucket_empty", { local liquiddef = bucket.liquids[node.name] if liquiddef ~= nil and liquiddef.itemname ~= nil and node.name == liquiddef.source then - minetest.setting_getbool("liquid_finite"))) then if check_protection(pointed_thing.under, user:get_player_name(), "take ".. node.name) then diff --git a/minetestforfun_game/mods/default/furnace.lua b/minetestforfun_game/mods/default/furnace.lua index 2163f6ae..3b26d3d2 100644 --- a/minetestforfun_game/mods/default/furnace.lua +++ b/minetestforfun_game/mods/default/furnace.lua @@ -6,8 +6,6 @@ local function active_formspec(fuel_percent, item_percent) local formspec = "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. default.gui_slots.. "list[current_name;src;2.75,0.5;1,1;]".. "list[current_name;fuel;2.75,2.5;1,1;]".. @@ -24,8 +22,6 @@ end local inactive_formspec = "size[8,8.5]".. - default.gui_bg.. - default.gui_bg_img.. default.gui_slots.. "list[current_name;src;2.75,0.5;1,1;]".. "list[current_name;fuel;2.75,2.5;1,1;]".. @@ -138,6 +134,182 @@ minetest.register_node("default:furnace_active", { allow_metadata_inventory_take = allow_metadata_inventory_take, }) +-- Locked Furnace thanks to kotolegokot: + +local function has_locked_furnace_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") and player:get_player_name() ~= minetest.setting_get("name") then + return false + end + return true +end + +minetest.register_node("default:furnace_locked", { + description = "Locked Furnace", + tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_side.png", "default_furnace_lock.png"}, + paramtype2 = "facedir", + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", "Locked Furnace (owned by " .. placer:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", inactive_formspec) + meta:set_string("infotext", "Locked Furnace") + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = can_dig, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked furnace at "..minetest.pos_to_string(pos) ..".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked furnace at "..minetest.pos_to_string(pos) ..".") + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from locked furnace at "..minetest.pos_to_string(pos) ..".") + end, +}) + +minetest.register_node("default:furnace_locked_active", { + description = "Locked 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_lock_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_locked", + groups = {cracky = 2, not_in_creative_inventory = 1}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("owner", "Locked Furnace (owned by " .. player:get_player_name() .. ")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", inactive_formspec) + meta:set_string("infotext", "Locked 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_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return count + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_furnace_privilege(meta, player) then + minetest.log("action", player:get_player_name().. + " tried to access a locked furnace belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos) .. ".") + return 0 + end + return stack:get_count() + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in locked furnace at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to locked furnace at "..minetest.pos_to_string(pos) .. ".") + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from locked furnace at "..minetest.pos_to_string(pos) .. ".") + end, +}) + + -- -- ABM -- @@ -281,3 +453,103 @@ minetest.register_abm({ meta:set_string("infotext", infotext) end, }) + +minetest.register_abm({ + nodenames = {"default:furnace_locked","default:furnace_locked_active"}, + interval = 1.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + for i, name in ipairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time" + }) do + if meta:get_string(name) == "" then + meta:set_float(name, 0.0) + end + end + + local inv = meta:get_inventory() + + local srclist = inv:get_list("src") + local cooked = nil + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) + meta:set_float("src_time", meta:get_float("src_time") + 1) + if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then + -- check if there's room for output in "dst" list + if inv:room_for_item("dst",cooked.item) then + -- Put result in "dst" list + inv:add_item("dst", cooked.item) + -- take stuff from "src" list + srcstack = inv:get_stack("src", 1) + srcstack:take_item() + inv:set_stack("src", 1, srcstack) + else + -- print("Could not insert " .. cooked.item .. ".") + end + meta:set_string("src_time", 0) + end + end + + local item_percent = 0 + if cooked then + item_percent = meta:get_float("src_time") * 100 / cooked.time + end + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + local percent = math.floor(meta:get_float("fuel_time") / + meta:get_float("fuel_totaltime") * 100) + meta:set_string("infotext","Furnace active: " .. percent .. " % (owned by "..meta:get_string("owner") .. ")") + swap_node(pos,"default:furnace_locked_active") + meta:set_string("formspec", active_formspec(percent, item_percent)) + return + end + + local fuel = nil + local cooked = nil + local fuellist = inv:get_list("fuel") + local srclist = inv:get_list("src") + + if srclist then + cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + end + if fuellist then + fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if fuel.time <= 0 then + meta:set_string("infotext","Locked Furnace is out of fuel (owned by "..meta:get_string("owner")..")") + swap_node(pos,"default:furnace_locked") + meta:set_string("formspec", inactive_formspec) + return + end + + if cooked.item:is_empty() then + if was_active then + meta:set_string("infotext","Locked Furnace is empty (owned by "..meta:get_string("owner")..")") + swap_node(pos,"default:furnace_locked") + meta:set_string("formspec", inactive_formspec) + end + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + local stack = inv:get_stack("fuel", 1) + stack:take_item() + inv:set_stack("fuel", 1, stack) + end, +}) + diff --git a/minetestforfun_game/mods/default/init.lua b/minetestforfun_game/mods/default/init.lua index 057267b2..0a1057d9 100644 --- a/minetestforfun_game/mods/default/init.lua +++ b/minetestforfun_game/mods/default/init.lua @@ -11,8 +11,9 @@ LAVA_VISC = 3 -- Slower movement in lava. LIGHT_MAX = 14 -- 15 is reserved for sunlight. -- GUI related stuff: - -gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" +default.gui_bg = "bgcolor[#080808BB;true]" +default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" +default.gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" function default.get_hotbar_bg(x,y) local out = "" @@ -22,8 +23,8 @@ function default.get_hotbar_bg(x,y) return out end -gui_suvival_form = "size[8,8.5]".. - gui_slots .. +default.gui_suvival_form = "size[8,8.5]".. + default.gui_slots .. "list[current_player;main; 0, 4.25; 8, 4; ]" .. "list[current_player;craft; 1.75, 0.5; 3, 3; ]" .. "list[current_player;craftpreview; 5.75, 1.5; 1, 1; ]" .. diff --git a/minetestforfun_game/mods/default/nodes.lua b/minetestforfun_game/mods/default/nodes.lua index d3e78f9b..66ed8b4a 100644 --- a/minetestforfun_game/mods/default/nodes.lua +++ b/minetestforfun_game/mods/default/nodes.lua @@ -1,7 +1,5 @@ -- mods/default/nodes.lua -gui_slots = "listcolors[#606060AA;#808080;#101010;#202020;#FFF]" - minetest.register_node("default:stone", { description = "Stone", tiles = {"default_stone.png"}, @@ -581,7 +579,7 @@ minetest.register_node("default:papyrus", { default.bookshelf_formspec = "size[8,7;]" .. - gui_slots .. + default.gui_slots .. "list[context;books;0, 0.3;8,2;]" .. "list[current_player;main;0,2.85;8,4;]" .. default.get_hotbar_bg(0, 2.85) .. @@ -1189,7 +1187,7 @@ minetest.register_node("default:sign_wall", { default.chest_formspec = "size[8,9]" .. - gui_slots .. + default.gui_slots .. "list[current_name;main;0,0.3;8,4;]" .. "list[current_player;main;0,4.85;8,4;]" .. default.get_hotbar_bg(0, 4.85) .. @@ -1199,7 +1197,7 @@ function default.get_locked_chest_formspec(pos) local spos = pos.x .. "," .. pos.y .. "," .. pos.z local formspec = "size[8,9]" .. - gui_slots .. + default.gui_slots .. "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]" .. "list[current_player;main;0,4.85;8,4;]" .. default.get_hotbar_bg(0, 4.85) .. @@ -1324,403 +1322,6 @@ minetest.register_node("default:chest_locked", { end, }) --- Locked Furnace thanks to kotolegokot: - -local function has_locked_furnace_privilege(meta, player) - if player:get_player_name() ~= meta:get_string("owner") and player:get_player_name() ~= minetest.setting_get("name") then - return false - end - return true -end - -minetest.register_node("default:furnace_locked", { - description = "Locked Furnace", - tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", - "default_furnace_side.png", "default_furnace_side.png", "default_furnace_lock.png"}, - paramtype2 = "facedir", - groups = {cracky = 2}, - sounds = default.node_sound_stone_defaults(), - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos) - meta:set_string("owner", placer:get_player_name()) - meta:set_string("infotext", "Locked Furnace (owned by " .. placer:get_player_name() .. ")") - end, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Locked 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_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return count - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return stack:get_count() - end, - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return stack:get_count() - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in locked furnace at "..minetest.pos_to_string(pos) ..".") - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to locked furnace at "..minetest.pos_to_string(pos) ..".") - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from locked furnace at "..minetest.pos_to_string(pos) ..".") - end, -}) - -minetest.register_node("default:furnace_locked_active", { - description = "Locked 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_lock_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_locked", - groups = {cracky = 2, not_in_creative_inventory = 1}, - sounds = default.node_sound_stone_defaults(), - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos) - meta:set_string("owner", placer:get_player_name()) - meta:set_string("owner", "Locked Furnace (owned by " .. player:get_player_name() .. ")") - end, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.furnace_inactive_formspec) - meta:set_string("infotext", "Locked 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_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return count - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return stack:get_count() - end, - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if not has_locked_furnace_privilege(meta, player) then - minetest.log("action", player:get_player_name().. - " tried to access a locked furnace belonging to ".. - meta:get_string("owner").." at ".. - minetest.pos_to_string(pos) .. ".") - return 0 - end - return stack:get_count() - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in locked furnace at "..minetest.pos_to_string(pos) .. ".") - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to locked furnace at "..minetest.pos_to_string(pos) .. ".") - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from locked furnace at "..minetest.pos_to_string(pos) .. ".") - end, -}) - -minetest.register_abm({ - nodenames = {"default:furnace_locked","default:furnace_locked_active"}, - interval = 1.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) - for i, name in ipairs({ - "fuel_totaltime", - "fuel_time", - "src_totaltime", - "src_time" - }) do - if meta:get_string(name) == "" then - meta:set_float(name, 0.0) - end - end - - local inv = meta:get_inventory() - - local srclist = inv:get_list("src") - local cooked = nil - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - - local was_active = false - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - was_active = true - meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) - meta:set_float("src_time", meta:get_float("src_time") + 1) - if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then - -- check if there's room for output in "dst" list - if inv:room_for_item("dst",cooked.item) then - -- Put result in "dst" list - inv:add_item("dst", cooked.item) - -- take stuff from "src" list - srcstack = inv:get_stack("src", 1) - srcstack:take_item() - inv:set_stack("src", 1, srcstack) - else - -- print("Could not insert " .. cooked.item .. ".") - end - meta:set_string("src_time", 0) - end - end - - local item_percent = 0 - if cooked then - item_percent = meta:get_float("src_time")/cooked.time - end - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - local percent = math.floor(meta:get_float("fuel_time") / - meta:get_float("fuel_totaltime") * 100) - meta:set_string("infotext","Furnace active: " .. percent .. " % (owned by "..meta:get_string("owner") .. ")") - swap_node(pos,"default:furnace_locked_active") - meta:set_string("formspec", - "invsize[8,8.5;]" .. gui_slots .. - "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;src;2.75, 0.5;1,1;]" .. - "list[current_name;fuel;2.75,2.5;1,1;]" .. - "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 - end - - local fuel = nil - local cooked = nil - local fuellist = inv:get_list("fuel") - local srclist = inv:get_list("src") - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - if fuellist then - fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - end - - if fuel.time <= 0 then - meta:set_string("infotext","Locked Furnace is out of fuel (owned by "..meta:get_string("owner")..")") - swap_node(pos,"default:furnace_locked") - meta:set_string("formspec", default.furnace_inactive_formspec) - return - end - - if cooked.item:is_empty() then - if was_active then - meta:set_string("infotext","Locked Furnace is empty (owned by "..meta:get_string("owner")..")") - swap_node(pos,"default:furnace_locked") - meta:set_string("formspec", default.furnace_inactive_formspec) - end - return - end - - meta:set_string("fuel_totaltime", fuel.time) - meta:set_string("fuel_time", 0) - - local stack = inv:get_stack("fuel", 1) - stack:take_item() - inv:set_stack("fuel", 1, stack) - end, -}) - -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 - -minetest.register_abm({ - nodenames = {"default:furnace","default:furnace_active"}, - interval = 1.0, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local meta = minetest.get_meta(pos) - for i, name in ipairs({ - "fuel_totaltime", - "fuel_time", - "src_totaltime", - "src_time" - }) do - if meta:get_string(name) == "" then - meta:set_float(name, 0.0) - end - end - - local inv = meta:get_inventory() - - local srclist = inv:get_list("src") - local cooked = nil - local aftercooked - - if srclist then - cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - - local was_active = false - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - was_active = true - meta:set_float("fuel_time", meta:get_float("fuel_time") + 1) - meta:set_float("src_time", meta:get_float("src_time") + 1) - if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then - -- check if there"s room for output in "dst" list - if inv:room_for_item("dst",cooked.item) then - -- Put result in "dst" list - inv:add_item("dst", cooked.item) - -- take stuff from "src" list - inv:set_stack("src", 1, aftercooked.items[1]) - else - --print("Could not insert ""..cooked.item:to_string()..""") - end - meta:set_string("src_time", 0) - end - end - - if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then - local percent = math.floor(meta:get_float("fuel_time") / - meta:get_float("fuel_totaltime") * 100) - meta:set_string("infotext","Furnace active: "..percent.."%") - swap_node(pos,"default:furnace_active") - meta:set_string("formspec", default.get_furnace_active_formspec(pos, percent)) - return - end - - local fuel = nil - local afterfuel - local cooked = nil - local fuellist = inv:get_list("fuel") - local srclist = inv:get_list("src") - - if srclist then - cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - end - if fuellist then - fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - end - - if not fuel or fuel.time <= 0 then - meta:set_string("infotext","Furnace is out of fuel") - swap_node(pos,"default:furnace") - meta:set_string("formspec", default.furnace_inactive_formspec) - return - end - - if cooked.item:is_empty() then - if was_active then - meta:set_string("infotext","Furnace is empty") - swap_node(pos,"default:furnace") - meta:set_string("formspec", default.furnace_inactive_formspec) - end - return - end - - meta:set_string("fuel_totaltime", fuel.time) - meta:set_string("fuel_time", 0) - - inv:set_stack("fuel", 1, afterfuel.items[1]) - end, -}) - minetest.register_node("default:cobble", { description = "Cobblestone", tiles = {"default_cobble.png"}, diff --git a/minetestforfun_game/mods/default/player.lua b/minetestforfun_game/mods/default/player.lua index 73e4e1e0..ea113c30 100644 --- a/minetestforfun_game/mods/default/player.lua +++ b/minetestforfun_game/mods/default/player.lua @@ -147,7 +147,7 @@ minetest.register_on_joinplayer(function(player) if minetest.setting_getbool("creative_mode") then -- creative.set_creative_formspec(player, 0, 1) else - player:set_inventory_formspec(gui_suvival_form) + player:set_inventory_formspec(default.gui_suvival_form) end minetest.after(0.5,function() player:hud_set_hotbar_image("gui_hotbar.png") diff --git a/minetestforfun_game/mods/fire/init.lua b/minetestforfun_game/mods/fire/init.lua index 6e8c8e5d..000e0cdb 100644 --- a/minetestforfun_game/mods/fire/init.lua +++ b/minetestforfun_game/mods/fire/init.lua @@ -1,4 +1,5 @@ -- minetest/fire/init.lua +fire = {} minetest.register_node("fire:basic_flame", { description = "Fire", diff --git a/mods/christmas_craft/settings.lua~ b/mods/christmas_craft/settings.lua~ deleted file mode 100644 index f7eb9ccb..00000000 --- a/mods/christmas_craft/settings.lua~ +++ /dev/null @@ -1,100 +0,0 @@ - -print (" ---- Overrider christmas_craft = true! ---- ") - -minetest.after(0, function() -minetest.register_node(":default:dirt_with_grass", { - description = "Dirt with Grass", - tiles = {"snow.png", "default_dirt.png", "grass_w_snow_side.png"}, - is_ground_content = true, - groups = {crumbly=3,soil=1}, - drop = { - max_items = 3, items = { - {items = {'default:dirt'}, rarity = 0,}, - {items = {'christmas_craft:snowball'}, rarity = 0,}, - {items = {'snow:snowball_entity'}, rarity = 2,}, - }}, - sounds = default.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.4}, - }), -}) - --- remplace leaves (normal) -minetest.register_node(":default:leaves", { - description = "Leaves", - drawtype = "nodebox", - visual_scale = 1.3, - tiles = {"snow.png", "christmas_craft_leaves_top.png", "christmas_craft_leaves_side.png"}, - paramtype = "light", - walkable = false, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, - drop = { - max_items = 1, - items = { - { - -- player will get sapling with 1/40 chance - items = {'default:sapling'}, - rarity = 40, - }, - { - -- player will get leaves only if he get no saplings, - -- this is because max_items is 1 - items = {'default:leaves'}, - } - } - }, - sounds = default.node_sound_leaves_defaults(), - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - }, - }, -}) --- remplace jungleleaves -minetest.register_node(":default:jungletree_leaves", { - description = "Leaves", - drawtype = "nodebox", - visual_scale = 1.3, - tiles = {"snow.png", "christmas_craft_leaves_top.png", "christmas_craft_leaves_side.png"}, - paramtype = "light", - walkable = false, - groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, - drop = { - max_items = 1, - items = { - { - -- player will get sapling with 1/40 chance - items = {'moretrees:jungletree_sapling'}, - rarity = 40, - }, - { - -- player will get leaves only if he get no saplings, - -- this is because max_items is 1 - items = {'moretrees:jungletree_leaves_green'}, - } - } - }, - sounds = default.node_sound_leaves_defaults(), - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - }, - }, -}) -end) - -print (" ---- Overrider christmas_craft [OK] ---- ") - diff --git a/mods/sprint/esprint.lua~ b/mods/sprint/esprint.lua~ deleted file mode 100644 index ef3f24b8..00000000 --- a/mods/sprint/esprint.lua~ +++ /dev/null @@ -1,123 +0,0 @@ ---[[ -Sprint mod for Minetest by GunshipPenguin - -To the extent possible under law, the author(s) -have dedicated all copyright and related and neighboring rights -to this software to the public domain worldwide. This software is -distributed without any warranty. -]] - -local players = {} -local staminaHud = {} - -minetest.register_on_joinplayer(function(player) - playerName = player:get_player_name() - players[playerName] = { - sprinting = false, - timeOut = 0, - stamina = SPRINT_STAMINA, - epressed = false, - hud = player:hud_add({ - hud_elem_type = "statbar", - position = {x=0.5,y=1}, - size = {x=24, y=24}, - text = "stamina.png", - number = 20, - alignment = {x=0,y=1}, - offset = {x=-320, y=-186}, - } - ), - } -end) -minetest.register_on_leaveplayer(function(player) - playerName = player:get_player_name() - players[playerName] = nil -end) -minetest.register_globalstep(function(dtime) - --Get the gametime - local gameTime = minetest.get_gametime() - - --Loop through all connected players - for playerName,playerInfo in pairs(players) do - local player = minetest.get_player_by_name(playerName) - if player ~= nil then - --Check if they are pressing the e key - players[playerName]["epressed"] = player:get_player_control()["aux1"] - - --Stop sprinting if the player is pressing the LMB or RMB - if player:get_player_control()["LMB"] or player:get_player_control()["RMB"] then - setSprinting(playerName, false) - playerInfo["timeOut"] = 3 - end - - --If the player is sprinting, create particles behind him/her - if playerInfo["sprinting"] == true and gameTime % 0.1 == 0 then - local numParticles = math.random(1, 2) - local playerPos = player:getpos() - local playerNode = minetest.get_node({x=playerPos["x"], y=playerPos["y"]-1, z=playerPos["z"]}) - if playerNode["name"] ~= "air" then - for i=1, numParticles, 1 do - minetest.add_particle({ - pos = {x=playerPos["x"]+math.random(-1,1)*math.random()/2,y=playerPos["y"]+0.1,z=playerPos["z"]+math.random(-1,1)*math.random()/2}, - vel = {x=0, y=5, z=0}, - acc = {x=0, y=-13, z=0}, - expirationtime = math.random(), - size = math.random()+0.5, - collisiondetection = true, - vertical = false, - texture = "default_dirt.png", - }) - end - end - end - - --Adjust player states - if players[playerName]["epressed"] == true and playerInfo["timeOut"] == 0 then --Stopped - setSprinting(playerName, true) - elseif players[playerName]["epressed"] == false then - setSprinting(playerName, false) - end - - if playerInfo["timeOut"] > 0 then - playerInfo["timeOut"] = playerInfo["timeOut"] - dtime - if playerInfo["timeOut"] < 0 then - playerInfo["timeOut"] = 0 - end - else - --Lower the player's stamina by dtime if he/she is sprinting and set his/her state to 0 if stamina is zero - if playerInfo["sprinting"] == true then - playerInfo["stamina"] = playerInfo["stamina"] - dtime - if playerInfo["stamina"] <= 0 then - playerInfo["stamina"] = 0 - setSprinting(playerName, false) - minetest.chat_send_player(playerName, "Your sprint stamina has run out") - playerInfo["timeOut"] = 1 - end - end - end - - --Increase player's stamina if he/she is not sprinting and his/her stamina is less than SPRINT_STAMINA - if playerInfo["sprinting"] == false and playerInfo["stamina"] < SPRINT_STAMINA then - playerInfo["stamina"] = playerInfo["stamina"] + dtime - end - - --Update the players's hud sprint stamina bar - local numBars = (playerInfo["stamina"]/SPRINT_STAMINA)*20 - player:hud_change(playerInfo["hud"], "number", numBars) - end - end -end) - -function setSprinting(playerName, sprinting) --Sets the state of a player (0=stopped/moving, 1=sprinting) - local player = minetest.get_player_by_name(playerName) - if players[playerName] then - players[playerName]["sprinting"] = sprinting - if sprinting == true then - player:set_physics_override({speed=SPRINT_SPEED,jump=SPRINT_JUMP}) - elseif sprinting == false then - player:set_physics_override({speed=1.0,jump=1.0}) - end - return true - end - return false -end