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.
This commit is contained in:
Zefram 2014-08-01 18:25:20 +01:00
parent daa6135211
commit 8275091347
5 changed files with 31 additions and 38 deletions

View 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

View 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 =

View 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

View 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 =

View 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,