From 536363473a6ef86802c642eecd68b5875274849c Mon Sep 17 00:00:00 2001 From: BlockMen Date: Mon, 3 Jun 2013 21:56:17 +0200 Subject: [PATCH 1/3] Separate formspecs of active furnace and chests Makes its possible to override formspecs by mods --- mods/default/nodes.lua | 45 +++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 2f571f79..1c9c3686 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -600,6 +600,20 @@ minetest.register_node("default:sign_wall", { 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 formspec = + "size[8,9]".. + "list[nodemeta:".. pos .. ";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", @@ -610,10 +624,7 @@ minetest.register_node("default:chest", { 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) @@ -719,14 +730,23 @@ minetest.register_node("default:chest_locked", { 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(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]".. @@ -939,14 +959,7 @@ minetest.register_abm({ 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(percent)) return end From 9367dbf93fc906a17d142b1e9b20eeb46c953c4c Mon Sep 17 00:00:00 2001 From: BlockMen Date: Sat, 8 Jun 2013 15:39:16 +0300 Subject: [PATCH 2/3] Tweak seperating --- mods/default/nodes.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 1c9c3686..44728797 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -606,9 +606,10 @@ default.chest_formspec = "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:".. pos .. ";main;0,0;8,4;]".. + "list[nodemeta:".. spos .. ";main;0,0;8,4;]".. "list[current_player;main;0,5;8,4;]" return formspec end @@ -729,13 +730,12 @@ minetest.register_node("default:chest_locked", { 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",default.get_locked_chest_formspec(pos)) end end, }) -function default.get_furnace_active_formspec(percent) +function default.get_furnace_active_formspec(pos,percent) local formspec = "size[8,9]".. "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. @@ -959,7 +959,7 @@ minetest.register_abm({ meta:get_float("fuel_totaltime") * 100) meta:set_string("infotext","Furnace active: "..percent.."%") hacky_swap_node(pos,"default:furnace_active") - meta:set_string("formspec",default.get_furnace_active_formspec(percent)) + meta:set_string("formspec",default.get_furnace_active_formspec(pos, percent)) return end From 525e56da267029cd9fd27d5ece2f10a0c3fb6639 Mon Sep 17 00:00:00 2001 From: BlockMen Date: Sat, 8 Jun 2013 14:42:42 +0200 Subject: [PATCH 3/3] fix typo --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 44728797..902a8fe5 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -735,7 +735,7 @@ minetest.register_node("default:chest_locked", { end, }) -function default.get_furnace_active_formspec(pos,percent) +function default.get_furnace_active_formspec(pos, percent) local formspec = "size[8,9]".. "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..