end,
})
+default.chest_formspec =
+ "size[8,9]"..
+ "list[current_name;main;0,0;8,4;]"..
+ "list[current_player;main;0,5;8,4;]"
+
+function default.get_locked_chest_formspec(pos)
+ local spos = pos.x .. "," .. pos.y .. "," ..pos.z
+ local formspec =
+ "size[8,9]"..
+ "list[nodemeta:".. spos .. ";main;0,0;8,4;]"..
+ "list[current_player;main;0,5;8,4;]"
+ return formspec
+end
+
+
minetest.register_node("default:chest", {
description = "Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
- meta:set_string("formspec",
- "size[8,9]"..
- "list[current_name;main;0,0;8,4;]"..
- "list[current_player;main;0,5;8,4;]")
+ meta:set_string("formspec",default.chest_formspec)
meta:set_string("infotext", "Chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
on_rightclick = function(pos, node, clicker)
local meta = minetest.get_meta(pos)
if has_locked_chest_privilege(meta, clicker) then
- local pos = pos.x .. "," .. pos.y .. "," ..pos.z
- minetest.show_formspec(clicker:get_player_name(), "default:chest_locked",
- "size[8,9]"..
- "list[nodemeta:".. pos .. ";main;0,0;8,4;]"..
- "list[current_player;main;0,5;8,4;]")
+ minetest.show_formspec(
+ clicker:get_player_name(),
+ "default:chest_locked",
+ default.get_locked_chest_formspec(pos)
+ )
end
end,
})
+function default.get_furnace_active_formspec(pos, percent)
+ local formspec =
+ "size[8,9]"..
+ "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
+ (100-percent)..":default_furnace_fire_fg.png]"..
+ "list[current_name;fuel;2,3;1,1;]"..
+ "list[current_name;src;2,1;1,1;]"..
+ "list[current_name;dst;5,1;2,2;]"..
+ "list[current_player;main;0,5;8,4;]"
+ return formspec
+end
+
default.furnace_inactive_formspec =
"size[8,9]"..
"image[2,2;1,1;default_furnace_fire_bg.png]"..
meta:get_float("fuel_totaltime") * 100)
meta:set_string("infotext","Furnace active: "..percent.."%")
hacky_swap_node(pos,"default:furnace_active")
- meta:set_string("formspec",
- "size[8,9]"..
- "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
- (100-percent)..":default_furnace_fire_fg.png]"..
- "list[current_name;fuel;2,3;1,1;]"..
- "list[current_name;src;2,1;1,1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]")
+ meta:set_string("formspec",default.get_furnace_active_formspec(pos, percent))
return
end