Improve injector interface
authorZefram <zefram@fysh.org>
Fri, 1 Aug 2014 17:25:20 +0000 (18:25 +0100)
committerZefram <zefram@fysh.org>
Fri, 1 Aug 2014 17:25:20 +0000 (18:25 +0100)
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
technic/locale/es.txt
technic/locale/it.txt
technic/locale/template.txt
technic/machines/other/injector.lua

index 1a1e82a5557b3a5107984b7787fe935bc68e32a9..763d92a26d8ae6ac0d79d54eaf13d967e8ecec5d 100644 (file)
@@ -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
index 9d58ebded64044e5c4b88658fffc62682260c55e..c5b6037f52e7f919feac3befb3ce7f88a4c8a61e 100644 (file)
@@ -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 =
index 234a858a868877d3af6244efaaf4ae55a0afd2b2..5ba7e69d63487e676cd6a463c85df1c5d621a452 100644 (file)
@@ -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
index 0d4797485224e789039f6a2dd6e1270918e8ffa4..e57952d9556924ae60d71b3c8257b8be77d616ab 100644 (file)
@@ -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 =
index c1314701d5a2891729c838e95e0360251c002561..11c545542aad553aec23b7035eeb255110cb4fbf 100644 (file)
@@ -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,