Improve detector, fix filler bug
This commit is contained in:
parent
1e36775c18
commit
9218c3097b
@ -1126,6 +1126,7 @@ techage.manual_DE.aText = {
|
||||
"Der Detektor ist eine spezieller Röhrenblock\\, der erkennt\\, wenn Items über die Röhre weitergegeben werden. Es muss dazu auf beiden Seiten mit der Röhre verbunden sein. Werden Items mit einem Schieber in den Detektor geschoben\\, gibt er diese automatisch weiter.\n"..
|
||||
"Er sendet ein 'on'\\, wenn ein Item erkannt wird\\, gefolgt von einem 'off' eine Sekunde später.\n"..
|
||||
"Danach werden weitere Kommando für 8 Sekunden blockiert.\n"..
|
||||
"Die Wartezeit\\, sowie die Items\\, die ein Kommando auslösen sollen\\, können über das Gabelschlüssel-Menü konfiguriert werden.\n"..
|
||||
"\n"..
|
||||
"\n"..
|
||||
"\n",
|
||||
|
@ -1125,6 +1125,7 @@ techage.manual_EN.aText = {
|
||||
"The detector is a special tube block that detects when items are passed on through the tube. To do this\\, it must be connected to tubes on both sides. If items are pushed into the detector with a pusher\\, they are automatically passed on.\n"..
|
||||
"It sends an 'on' when an item is recognized\\, followed by an 'off' a second later.\n"..
|
||||
"Then further commands are blocked for 8 seconds.\n"..
|
||||
"The waiting time and the items that should trigger a command can be configured using the open-ended wrench menu. \n"..
|
||||
"\n"..
|
||||
"\n"..
|
||||
"\n",
|
||||
@ -1200,7 +1201,7 @@ techage.manual_EN.aText = {
|
||||
"\n"..
|
||||
"\n",
|
||||
"",
|
||||
"The Techage Info Tool (wrench) has several functions. It shows the time\\, position\\, temperature and biome when an unknown block is clicked on.\n"..
|
||||
"The Techage Info Tool (open-ended wrench) has several functions. It shows the time\\, position\\, temperature and biome when an unknown block is clicked on.\n"..
|
||||
"If you click on a TechAge block with command interface\\, all available data will be shown (see also \"Logic / switching blocks\").\n"..
|
||||
"\n"..
|
||||
"With Shift + right click an extended menu can be opened for some blocks. Depending on the block\\, further data can be called up or special settings can be made here. In the case of a generator\\, for example\\, the charging curve/switch-off can be programmed. \n"..
|
||||
|
@ -74,12 +74,12 @@ local function node_timer(pos, elapsed)
|
||||
if not inv:is_empty("src") then
|
||||
local taken = techage.get_items(pos, inv, "src", 1)
|
||||
if liquid.is_container_empty(taken:get_name()) then
|
||||
return liquid.fill_container({x = pos.x, y = pos.y+1, z = pos.z}, inv, taken:get_name())
|
||||
liquid.fill_container({x = pos.x, y = pos.y+1, z = pos.z}, inv, taken:get_name())
|
||||
else
|
||||
return liquid.empty_container({x = pos.x, y = pos.y-1, z = pos.z}, inv, taken:get_name())
|
||||
liquid.empty_container({x = pos.x, y = pos.y-1, z = pos.z}, inv, taken:get_name())
|
||||
end
|
||||
end
|
||||
return false
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_node("techage:filler", {
|
||||
|
@ -210,8 +210,16 @@ TA2 Cylinder=TA2 Zylinder
|
||||
|
||||
### detector.lua ###
|
||||
|
||||
Configured Items=Konfigurierte Gegenstände
|
||||
Items which generate an 'on' command.@nIf empty, all passed items generate an 'on' command.=Items, die einen 'on'-Kommando generieren.@nWenn leer, generieren alle übergebenen Items einen 'on'-Befehl.
|
||||
TA3 Detector=TA3 Detektor
|
||||
TA4 Detector=TA4 Detektor
|
||||
Waiting time between two 'on' commands=Wartezeit zwischen zwei 'on'-Kommandos
|
||||
|
||||
### detector.lua ###
|
||||
### logic_block.lua ###
|
||||
|
||||
Blocking Time=Sperrzeit
|
||||
|
||||
### display.lua ###
|
||||
|
||||
@ -370,6 +378,7 @@ loaded=geladen
|
||||
|
||||
### formspecs.lua ###
|
||||
|
||||
Block has a wrench menu=Block hat ein Gabelschlüssel-Menü
|
||||
Charge termination=Ladebegrenzung
|
||||
Current output [ku]=Aktueller Ausgabewert
|
||||
Maximum output [ku]=Maximaler Ausgabewert
|
||||
@ -595,7 +604,8 @@ no usable water=Kein brauchbares Wasser
|
||||
@nRule:@n<output> @= on/off if <input-expression> is true@n=@nRegel:@n<output> @= on/off if <input-expression> is true@n
|
||||
@nThe internal processing time for all@ncommands is 100 ms.=@nDie interne Durchlaufzeit für alle@nKommandos beträgt 100 ms.
|
||||
@nValid operators:@nand or on off me @=@= ~@= ( )@n=@nGültige Operatoren:@nand or on off @=@= ~@= ( )@n
|
||||
Blocking Time=Sperrzeit
|
||||
Clear=Löschen
|
||||
Debug=Debug
|
||||
Help=Hilfe
|
||||
Inputs=Eingänge
|
||||
Outputs=Ausgänge
|
||||
@ -750,7 +760,7 @@ TA Power Pole Top 2 (for landlines)=TA Strommastkopf 2 (für Überlandleitungen)
|
||||
|
||||
### power_terminal2.lua ###
|
||||
|
||||
Commands@nhelp . . . print this text@ncls . . . . . clear screen@ngen . . . . print all generators@nsto . . . . . print all storage systems@n=Kommandos@nhelp . . . diesen Text ausgeben@ncls . . . . . Bildschirm löschen@ngen . . . . Alle Generatoren ausgeben@nsto . . . . . Alle Speichersysteme ausgeben@n
|
||||
Commands@nhelp . . . print this text@ncls . . . . . clear screen@ngen . . . . print all generators@nsto . . . . . print all storage systems@ncon . . . . . print main consumers@n=Kommandos@nhelp . . . diesen Text ausgeben@ncls . . . . . Bildschirm löschen@ngen . . . . Alle Generatoren ausgeben@nsto . . . . . Alle Speichersysteme ausgeben@ncon . . . . . Hauptverbraucher ausgeben@n
|
||||
Consumer=Verbraucher
|
||||
Network Data=Netzwerkdaten
|
||||
Number of consumers:=Anzahl der Verbraucher
|
||||
@ -902,7 +912,6 @@ TA Lamp=TA Lampe
|
||||
|
||||
TA1 Sluice Gate=TA1 Schleusenschieber
|
||||
TA1 Sluice Handle=TA1 Schleusengriff
|
||||
Your pond is too small!=Der Teich ist zu klein!
|
||||
|
||||
### solarcell.lua ###
|
||||
|
||||
@ -1099,11 +1108,6 @@ Usmium Powder=Usmium Pulver
|
||||
TA Valve=TA Ventil
|
||||
TA3 Valve=TA3 Ventil
|
||||
|
||||
### water.lua ###
|
||||
|
||||
Flowing Water=Fließendes Wasser
|
||||
Water Source=Wasserquelle
|
||||
|
||||
### waterinlet.lua ###
|
||||
|
||||
Error: No natural water!=Fehler: Kein natürliches Wasser!
|
||||
@ -1132,3 +1136,8 @@ This is not the surface of the ocean!=Das ist nicht die Meeresoberfläche!
|
||||
[TA4 Wind Turbine]=[TA4 Windkraftanlage]
|
||||
biome and no ocean!=Biom und keine Meer (ocean)!
|
||||
is a suitable place for a wind turbine!=ist ein geeigneter Ort für eine Windkraftanlage!
|
||||
|
||||
|
||||
##### not used anymore #####
|
||||
|
||||
Maximum command transmission frequency=Maximale Sendefrequenz für Kommandos
|
||||
|
@ -210,8 +210,16 @@ TA2 Cylinder=
|
||||
|
||||
### detector.lua ###
|
||||
|
||||
Configured Items=
|
||||
Items which generate an 'on' command.@nIf empty, all passed items generate an 'on' command.=
|
||||
TA3 Detector=
|
||||
TA4 Detector=
|
||||
Waiting time between two 'on' commands=
|
||||
|
||||
### detector.lua ###
|
||||
### logic_block.lua ###
|
||||
|
||||
Blocking Time=
|
||||
|
||||
### display.lua ###
|
||||
|
||||
@ -370,6 +378,7 @@ loaded=
|
||||
|
||||
### formspecs.lua ###
|
||||
|
||||
Block has a wrench menu=
|
||||
Charge termination=
|
||||
Current output [ku]=
|
||||
Maximum output [ku]=
|
||||
@ -595,7 +604,8 @@ no usable water=
|
||||
@nRule:@n<output> @= on/off if <input-expression> is true@n=
|
||||
@nThe internal processing time for all@ncommands is 100 ms.=
|
||||
@nValid operators:@nand or on off me @=@= ~@= ( )@n=
|
||||
Blocking Time=
|
||||
Clear=
|
||||
Debug=
|
||||
Help=
|
||||
Inputs=
|
||||
Outputs=
|
||||
@ -750,7 +760,7 @@ TA Power Pole Top 2 (for landlines)=
|
||||
|
||||
### power_terminal2.lua ###
|
||||
|
||||
Commands@nhelp . . . print this text@ncls . . . . . clear screen@ngen . . . . print all generators@nsto . . . . . print all storage systems@n=
|
||||
Commands@nhelp . . . print this text@ncls . . . . . clear screen@ngen . . . . print all generators@nsto . . . . . print all storage systems@ncon . . . . . print main consumers@n=
|
||||
Consumer=
|
||||
Network Data=
|
||||
Number of consumers:=
|
||||
@ -902,7 +912,6 @@ TA Lamp=
|
||||
|
||||
TA1 Sluice Gate=
|
||||
TA1 Sluice Handle=
|
||||
Your pond is too small!=
|
||||
|
||||
### solarcell.lua ###
|
||||
|
||||
@ -1099,11 +1108,6 @@ Usmium Powder=
|
||||
TA Valve=
|
||||
TA3 Valve=
|
||||
|
||||
### water.lua ###
|
||||
|
||||
Flowing Water=
|
||||
Water Source=
|
||||
|
||||
### waterinlet.lua ###
|
||||
|
||||
Error: No natural water!=
|
||||
|
@ -20,6 +20,24 @@ local NDEF = function(pos) return (minetest.registered_nodes[techage.get_node_lv
|
||||
local logic = techage.logic
|
||||
local BLOCKING_TIME = 8 -- seconds
|
||||
|
||||
local WRENCH_MENU = {
|
||||
{
|
||||
type = "dropdown",
|
||||
choices = "2,4,6,8,12,16,20",
|
||||
name = "blockingtime",
|
||||
label = S("Blocking Time") .. " [s]",
|
||||
tooltip = S("Waiting time between two 'on' commands"),
|
||||
default = "8",
|
||||
},
|
||||
{
|
||||
type = "items",
|
||||
name = "config",
|
||||
label = S("Configured Items"),
|
||||
tooltip = S("Items which generate an 'on' command.\nIf empty, all passed items generate an 'on' command."),
|
||||
size = 4,
|
||||
}
|
||||
}
|
||||
|
||||
local function switch_on(pos)
|
||||
local mem = techage.get_mem(pos)
|
||||
local t = minetest.get_gametime()
|
||||
@ -31,7 +49,7 @@ local function switch_on(pos)
|
||||
logic.swap_node(pos, "techage:ta4_detector_on")
|
||||
end
|
||||
logic.send_on(pos, M(pos), 1)
|
||||
mem.time = t + BLOCKING_TIME
|
||||
mem.time = t + (tonumber(M(pos):get_string("blockingtime")) or BLOCKING_TIME)
|
||||
end
|
||||
end
|
||||
|
||||
@ -48,12 +66,15 @@ end
|
||||
local function formspec(meta)
|
||||
local numbers = meta:get_string("numbers") or ""
|
||||
return "size[7.5,3]"..
|
||||
techage.wrench_image(7, -0.1) ..
|
||||
"field[0.5,1;7,1;numbers;"..S("Insert destination node number(s)")..";"..numbers.."]" ..
|
||||
"button_exit[2,2;3,1;exit;"..S("Save").."]"
|
||||
end
|
||||
|
||||
local function after_place_node(pos, placer)
|
||||
local meta = M(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('cfg', 4)
|
||||
logic.after_place_node(pos, placer, "techage:ta3_detector_off", NDEF(pos).description)
|
||||
logic.infotext(meta, NDEF(pos).description)
|
||||
meta:set_string("formspec", formspec(meta))
|
||||
@ -97,6 +118,7 @@ minetest.register_node("techage:ta3_detector_off", {
|
||||
on_receive_fields = on_receive_fields,
|
||||
techage_set_numbers = techage_set_numbers,
|
||||
after_dig_node = after_dig_node,
|
||||
ta3_formspec = WRENCH_MENU,
|
||||
|
||||
on_rotate = screwdriver.disallow,
|
||||
paramtype = "light",
|
||||
@ -124,6 +146,7 @@ minetest.register_node("techage:ta3_detector_on", {
|
||||
on_rotate = screwdriver.disallow,
|
||||
techage_set_numbers = techage_set_numbers,
|
||||
after_dig_node = after_dig_node,
|
||||
ta3_formspec = WRENCH_MENU,
|
||||
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy=2, cracky=2, crumbly=2, not_in_creative_inventory=1},
|
||||
@ -148,6 +171,7 @@ minetest.register_node("techage:ta4_detector_off", {
|
||||
on_receive_fields = on_receive_fields,
|
||||
techage_set_numbers = techage_set_numbers,
|
||||
after_dig_node = after_dig_node,
|
||||
ta3_formspec = WRENCH_MENU,
|
||||
|
||||
on_rotate = screwdriver.disallow,
|
||||
paramtype = "light",
|
||||
@ -175,6 +199,7 @@ minetest.register_node("techage:ta4_detector_on", {
|
||||
on_rotate = screwdriver.disallow,
|
||||
techage_set_numbers = techage_set_numbers,
|
||||
after_dig_node = after_dig_node,
|
||||
ta3_formspec = WRENCH_MENU,
|
||||
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy=2, cracky=2, crumbly=2, not_in_creative_inventory=1},
|
||||
@ -204,7 +229,10 @@ minetest.register_craft({
|
||||
techage.register_node({"techage:ta3_detector_off", "techage:ta3_detector_on"}, {
|
||||
on_push_item = function(pos, in_dir, stack)
|
||||
if techage.safe_push_items(pos, in_dir, stack) then
|
||||
local inv = minetest.get_inventory({type = "node", pos = pos})
|
||||
if not inv or inv:is_empty("cfg") or inv:contains_item("cfg", ItemStack(stack:get_name())) then
|
||||
switch_on(pos)
|
||||
end
|
||||
return true
|
||||
end
|
||||
return false
|
||||
|
@ -695,6 +695,7 @@ Detektoren scannen ihre Umgebung ab und senden ein `on`-Kommando, wenn das Gesuc
|
||||
Der Detektor ist eine spezieller Röhrenblock, der erkennt, wenn Items über die Röhre weitergegeben werden. Es muss dazu auf beiden Seiten mit der Röhre verbunden sein. Werden Items mit einem Schieber in den Detektor geschoben, gibt er diese automatisch weiter.
|
||||
Er sendet ein `on`, wenn ein Item erkannt wird, gefolgt von einem `off` eine Sekunde später.
|
||||
Danach werden weitere Kommando für 8 Sekunden blockiert.
|
||||
Die Wartezeit, sowie die Items, die ein Kommando auslösen sollen, können über das Gabelschlüssel-Menü konfiguriert werden.
|
||||
|
||||
|
||||
[ta3_detector|image]
|
||||
|
@ -690,6 +690,7 @@ Detectors scan their surroundings and send an `on` command when the search is re
|
||||
The detector is a special tube block that detects when items are passed on through the tube. To do this, it must be connected to tubes on both sides. If items are pushed into the detector with a pusher, they are automatically passed on.
|
||||
It sends an `on` when an item is recognized, followed by an `off` a second later.
|
||||
Then further commands are blocked for 8 seconds.
|
||||
The waiting time and the items that should trigger a command can be configured using the open-ended wrench menu.
|
||||
|
||||
|
||||
[ta3_detector|image]
|
||||
@ -810,7 +811,7 @@ The processing power is up to 8 times one item every 4 seconds.
|
||||
|
||||
### Techage Info Tool
|
||||
|
||||
The Techage Info Tool (wrench) has several functions. It shows the time, position, temperature and biome when an unknown block is clicked on.
|
||||
The Techage Info Tool (open-ended wrench) has several functions. It shows the time, position, temperature and biome when an unknown block is clicked on.
|
||||
If you click on a TechAge block with command interface, all available data will be shown (see also "Logic / switching blocks").
|
||||
|
||||
With Shift + right click an extended menu can be opened for some blocks. Depending on the block, further data can be called up or special settings can be made here. In the case of a generator, for example, the charging curve/switch-off can be programmed.
|
||||
|
@ -165,6 +165,11 @@ end
|
||||
-------------------------------------------------------------------------------
|
||||
-- API formspec functions
|
||||
-------------------------------------------------------------------------------
|
||||
function techage.wrench_image(x, y)
|
||||
return "image["..x.."," .. y .. ";0.5,0.5;techage_inv_wrench.png]" ..
|
||||
"tooltip["..x.."," .. y .. ";0.5,0.5;" .. S("Block has a wrench menu") .. ";#0C3D32;#FFFFFF]"
|
||||
end
|
||||
|
||||
function techage.storage_formspec(self, pos, nvm, label, netw_data, curr_load, max_load)
|
||||
return "size[6.3,4]" ..
|
||||
default.gui_bg ..
|
||||
|
@ -143,7 +143,8 @@ local function settings_menu(pos, playername)
|
||||
|
||||
context[playername] = pos
|
||||
if form_def then
|
||||
minetest.show_formspec(playername, "techage:ta_formspec", menu.generate_formspec(pos, ndef, form_def))
|
||||
minetest.show_formspec(playername, "techage:ta_formspec",
|
||||
menu.generate_formspec(pos, ndef, form_def, playername))
|
||||
end
|
||||
end
|
||||
|
||||
@ -162,10 +163,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
local form_def = ndef and (ndef.ta3_formspec or ndef.ta4_formspec)
|
||||
|
||||
if form_def then
|
||||
if menu.eval_input(pos, ndef, form_def, fields) then
|
||||
if menu.eval_input(pos, ndef, form_def, fields, playername) then
|
||||
--context[playername] = pos
|
||||
minetest.after(0.2, function()
|
||||
minetest.show_formspec(playername, "techage:ta_formspec", menu.generate_formspec(pos, ndef, form_def))
|
||||
minetest.show_formspec(playername, "techage:ta_formspec",
|
||||
menu.generate_formspec(pos, ndef, form_def, playername))
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
@ -22,10 +22,25 @@ local function index(list, x)
|
||||
return nil
|
||||
end
|
||||
|
||||
local function allow_put(inv, listname, index, stack, player)
|
||||
local list = inv:get_list(listname)
|
||||
stack:set_count(1)
|
||||
inv:set_stack(listname, index, stack)
|
||||
return 0
|
||||
end
|
||||
|
||||
local function allow_take(inv, listname, index, stack, player)
|
||||
local list = inv:get_list(listname)
|
||||
stack:set_count(0)
|
||||
inv:set_stack(listname, index, stack)
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
-- generate the formspec string to be placed into a container frame
|
||||
local function generate_formspec_substring(pos, meta, form_def)
|
||||
local function generate_formspec_substring(pos, meta, form_def, player_name)
|
||||
local tbl = {}
|
||||
local player_inv_needed = false
|
||||
if meta and form_def then
|
||||
local nvm = techage.get_nvm(pos)
|
||||
|
||||
@ -97,6 +112,9 @@ local function generate_formspec_substring(pos, meta, form_def)
|
||||
local idx = index(l, val) or 1
|
||||
tbl[#tbl+1] = "dropdown[4.72," .. (offs) .. ";5.5,1.4;" .. elem.name .. ";" .. elem.choices .. ";" .. idx .. "]"
|
||||
end
|
||||
elseif elem.type == "items" then
|
||||
tbl[#tbl+1] = "list[detached:" .. minetest.formspec_escape(player_name) .. "_techage_wrench_menu;cfg;4.75," .. offs .. ";" .. elem.size .. ",1;]"
|
||||
player_inv_needed = true
|
||||
end
|
||||
end
|
||||
if nvm.running or techage.is_running(nvm) then
|
||||
@ -104,7 +122,8 @@ local function generate_formspec_substring(pos, meta, form_def)
|
||||
tbl[#tbl+1] = "label[0," .. offs .. ";" .. S("Note: You can't change any values while the block is running!") .. "]"
|
||||
end
|
||||
end
|
||||
return table.concat(tbl, "")
|
||||
|
||||
return player_inv_needed, table.concat(tbl, "")
|
||||
end
|
||||
|
||||
local function value_check(elem, value)
|
||||
@ -114,7 +133,7 @@ local function value_check(elem, value)
|
||||
return true
|
||||
end
|
||||
|
||||
local function evaluate_data(pos, meta, form_def, fields)
|
||||
local function evaluate_data(pos, meta, form_def, fields, player_name)
|
||||
local res = true
|
||||
|
||||
if meta and form_def then
|
||||
@ -166,21 +185,55 @@ local function evaluate_data(pos, meta, form_def, fields)
|
||||
if fields[elem.name] ~= nil then
|
||||
meta:set_string(elem.name, fields[elem.name])
|
||||
end
|
||||
elseif elem.type == "items" then
|
||||
local inv_name = minetest.formspec_escape(player_name) .. "_techage_wrench_menu"
|
||||
local dinv = minetest.get_inventory({type = "detached", name = inv_name})
|
||||
local ninv = minetest.get_inventory({type = "node", pos = pos})
|
||||
if dinv and ninv then
|
||||
for i = 1, ninv:get_size("cfg") do
|
||||
ninv:set_stack("cfg", i, dinv:get_stack("cfg", i))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
function menu.generate_formspec(pos, ndef, form_def)
|
||||
function menu.generate_formspec(pos, ndef, form_def, player_name)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local number = techage.get_node_number(pos)
|
||||
local mem = techage.get_mem(pos)
|
||||
mem.star = ((mem.star or 0) + 1) % 2
|
||||
local star = mem.star == 1 and "*" or ""
|
||||
local inv_name = minetest.formspec_escape(player_name) .. "_techage_wrench_menu"
|
||||
minetest.create_detached_inventory(inv_name, {
|
||||
allow_put = allow_put,
|
||||
allow_take = allow_take})
|
||||
local dinv = minetest.get_inventory({type = "detached", name = inv_name})
|
||||
local ninv = minetest.get_inventory({type = "node", pos = pos})
|
||||
if dinv and ninv then
|
||||
dinv:set_size('cfg', ninv:get_size("cfg"))
|
||||
for i = 1, ninv:get_size("cfg") do
|
||||
dinv:set_stack("cfg", i, ninv:get_stack("cfg", i))
|
||||
end
|
||||
end
|
||||
|
||||
if meta and number and ndef and form_def then
|
||||
local title = ndef.description .. " (" .. number .. ")"
|
||||
local player_inv_needed, text = generate_formspec_substring(pos, meta, form_def, player_name)
|
||||
local buttons
|
||||
|
||||
if player_inv_needed then
|
||||
buttons = "button[0.5,6.2;3,1;refresh;" .. S("Refresh") .. "]" ..
|
||||
"button_exit[3.5,6.2;3,1;cancel;" .. S("Cancel") .. "]" ..
|
||||
"button[6.5,6.2;3,1;save;" .. S("Save") .. "]" ..
|
||||
"list[current_player;main;1,7.2;8,2;]"
|
||||
else
|
||||
buttons = "button[0.5,8.4;3,1;refresh;" .. S("Refresh") .. "]" ..
|
||||
"button_exit[3.5,8.4;3,1;cancel;" .. S("Cancel") .. "]" ..
|
||||
"button[6.5,8.4;3,1;save;" .. S("Save") .. "]"
|
||||
end
|
||||
|
||||
return "size[10,9]" ..
|
||||
default.gui_bg ..
|
||||
@ -190,20 +243,18 @@ function menu.generate_formspec(pos, ndef, form_def)
|
||||
"label[0.2,-0.1;" .. minetest.colorize( "#000000", title) .. "]" ..
|
||||
"label[9.5,-0.1;" .. minetest.colorize( "#000000", star) .. "]" ..
|
||||
"container[0,1]" ..
|
||||
generate_formspec_substring(pos, meta, form_def) ..
|
||||
text ..
|
||||
"container_end[]" ..
|
||||
"button[0.5,8.4;3,1;refresh;" .. S("Refresh") .. "]" ..
|
||||
"button_exit[3.5,8.4;3,1;cancel;" .. S("Cancel") .. "]" ..
|
||||
"button[6.5,8.4;3,1;save;" .. S("Save") .. "]"
|
||||
buttons
|
||||
end
|
||||
return ""
|
||||
end
|
||||
|
||||
function menu.eval_input(pos, ndef, form_def, fields)
|
||||
function menu.eval_input(pos, ndef, form_def, fields, player_name)
|
||||
--print(dump(fields))
|
||||
if fields.save then
|
||||
local meta = minetest.get_meta(pos)
|
||||
evaluate_data(pos, meta, form_def, fields)
|
||||
evaluate_data(pos, meta, form_def, fields, player_name)
|
||||
end
|
||||
return fields.refresh or fields.save
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user