From 8275091347560e2cf6594d57c646e1da4c97d502 Mon Sep 17 00:00:00 2001 From: Zefram Date: Fri, 1 Aug 2014 18:25:20 +0100 Subject: [PATCH] Improve injector interface Make the injector's mode button lag-resistant. Display the mode on the button, as is done with other machines' toggle buttons. Describe the modes using the same words that are now used to distinguish the corresponding pipeworks objects. Expand name to "self-contained injector", now that the pipeworks objects are also called "injector". Show injector item image along with the item name at the head of the form. --- technic/locale/de.txt | 7 ++--- technic/locale/es.txt | 4 ++- technic/locale/it.txt | 7 ++--- technic/locale/template.txt | 7 ++--- technic/machines/other/injector.lua | 44 +++++++++++++---------------- 5 files changed, 31 insertions(+), 38 deletions(-) diff --git a/technic/locale/de.txt b/technic/locale/de.txt index 1a1e82a..763d92a 100644 --- a/technic/locale/de.txt +++ b/technic/locale/de.txt @@ -52,9 +52,8 @@ Upgrade Slots = Verbesserungsfaecher In: = Rein: Out: = Raus: Slot %d = Fach %d -Mode: %s = Methode: %s -single items = Einzelstuecke -whole stacks = Ganzer Stapel +Itemwise = Einzelstuecke +Stackwise = Ganzer Stapel ## Machine names # $1: Tier @@ -77,7 +76,7 @@ Hydro %s Generator = %s Wassermuehle Nuclear %s Generator Core = %s Reaktorkern Small Solar %s Generator = %s Solarmodul Wind %s Generator = %s Windmuehle -Injector = Injektor +Self-Contained Injector = Selbstversorger-Injektor Constructor Mk%d = Konstruktor Modell %d Frame = Rahmen Frame Motor = Rahmenmotor diff --git a/technic/locale/es.txt b/technic/locale/es.txt index 9d58ebd..c5b6037 100644 --- a/technic/locale/es.txt +++ b/technic/locale/es.txt @@ -48,6 +48,8 @@ Inventory move disallowed due to protection = %s Improperly Placed = %s No Colocado Apropiadamente Range = Alcance Enable/Disable = Habilitar/Deshabilitar +Itemwise = +Stackwise = ## Machine names # $1: Tier @@ -70,7 +72,7 @@ Hydro %s Generator = Molino de Agua %s Nuclear %s Generator Core = Nucleo de Reactor Nuclear %s Small Solar %s Generator = Panel Solar %s Wind %s Generator = Molino de Viento %s -Injector = +Self-Contained Injector = Constructor Mk%d = Frame = Frame Motor = diff --git a/technic/locale/it.txt b/technic/locale/it.txt index 234a858..5ba7e69 100644 --- a/technic/locale/it.txt +++ b/technic/locale/it.txt @@ -49,9 +49,8 @@ Upgrade Slots = In: = Ingresso: Out: = Uscita: Slot %d = -Mode: %s = Modalità: %s -single items = Singolo elemento -whole stacks = pila completa +Itemwise = Singolo elemento +Stackwise = pila completa ## Machine names # $1: Tier @@ -74,7 +73,7 @@ Hydro %s Generator = Turbina Elettrica %s Nuclear %s Generator Core = Reattore nucleare %s Small Solar %s Generator = %s Pannello solare Wind %s Generator = %s Generatore eolico -Injector = Ignettore +Self-Contained Injector = Ignettore Constructor Mk%d = Costruttore Mk%d Frame = Cornice Frame Motor = Cornice del motore diff --git a/technic/locale/template.txt b/technic/locale/template.txt index 0d47974..e57952d 100644 --- a/technic/locale/template.txt +++ b/technic/locale/template.txt @@ -54,9 +54,8 @@ Upgrade Slots = In: = Out: = Slot %d = -Mode: %s = -single items = -whole stacks = +Itemwise = +Stackwise = Ignoring Mesecon Signal = Controlled by Mesecon Signal = @@ -82,7 +81,7 @@ Hydro %s Generator = Nuclear %s Generator Core = Small Solar %s Generator = Wind %s Generator = -Injector = +Self-Contained Injector = Constructor Mk%d = Frame = Frame Motor = diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua index c131470..11c5455 100644 --- a/technic/machines/other/injector.lua +++ b/technic/machines/other/injector.lua @@ -54,8 +54,21 @@ minetest.register_craft({ } }) +local function set_injector_formspec(meta) + local is_stack = meta:get_string("mode") == "whole stacks" + meta:set_string("formspec", + "invsize[8,9;]".. + "item_image[0,0;1,1;technic:injector]".. + "label[1,0;"..S("Self-Contained Injector").."]".. + (is_stack and + "button[0,1;2,1;mode_item;"..S("Stackwise").."]" or + "button[0,1;2,1;mode_stack;"..S("Itemwise").."]").. + "list[current_name;main;0,2;8,2;]".. + "list[current_player;main;0,5;8,4;]") +end + minetest.register_node("technic:injector", { - description = S("Injector"), + description = S("Self-Contained Injector"), tiles = {"technic_injector_top.png", "technic_injector_bottom.png", "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png"}, groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1}, @@ -63,17 +76,11 @@ minetest.register_node("technic:injector", { sounds = default.node_sound_wood_defaults(), on_construct = function(pos) local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", - "invsize[8,9;]".. - "label[0,0;"..S("Injector").."]".. - "button[0,1;.8,.8;mode;]".. - "label[.8,1;"..S("Mode: %s"):format("single items").."]".. - "list[current_name;main;0,2;8,2;]".. - "list[current_player;main;0,5;8,4;]") - meta:set_string("infotext", S("Injector")) + meta:set_string("infotext", S("Self-Contained Injector")) local inv = meta:get_inventory() inv:set_size("main", 8*4) meta:set_string("mode","single items") + set_injector_formspec(meta) end, can_dig = function(pos,player) local meta = minetest.env:get_meta(pos); @@ -82,22 +89,9 @@ minetest.register_node("technic:injector", { end, on_receive_fields = function(pos, formanme, fields, sender) local meta = minetest.env:get_meta(pos) - local mode=meta:get_string("mode") - if fields.mode then - if mode == "single items" then - mode = "whole stacks" - else - mode = "single items" - end - meta:set_string("mode", mode) - end - meta:set_string("formspec", - "invsize[8,9;]".. - "label[0,0;"..S("Injector").."]".. - "button[0,1;.8,.8;mode;]".. - "label[.8,1;"..S("Mode: %s"):format(S(mode)).."]".. - "list[current_name;main;0,2;8,2;]".. - "list[current_player;main;0,5;8,4;]") + if fields.mode_item then meta:set_string("mode", "single items") end + if fields.mode_stack then meta:set_string("mode", "whole stacks") end + set_injector_formspec(meta) end, allow_metadata_inventory_put = technic.machine_inventory_put, allow_metadata_inventory_take = technic.machine_inventory_take,