forked from minetest-mods/unified_inventory
Multiple related changes to string handling
1) Convert most formspec elements to use string.format(), when the result would be more readable, or less messy, or at least makes the line shorter, assuming it looked like it really needed it to begin with. 2) Convert all long `foo..","..bar..";"..baz..bleh..` types of excessive string concatenation into tables that then get concated only once, when their containing functions return the final formspec string. 3) In some places in the code, such tables were already being used, and were named "formspec", while others were named "fs". I settled on just one name, "formspec", as it's more readable, if longer. 4) There was a mix of styles of adding items to those tables: * Some places used line after line of `t[#t + 1] = foo/bar/baz`. * Others places used the form `t[1] = foo, t[2] = bar, ...`. * Still others used the form `t[n] = foo, t[n+1] = bar...`, with `n` being increased or reset every so often. Most of them should now be of the third form, with a few of the second.
This commit is contained in:
parent
694553e68b
commit
5ea0208ffe
27
bags.lua
27
bags.lua
@ -8,14 +8,14 @@ License: GPLv3
|
|||||||
local S = minetest.get_translator("unified_inventory")
|
local S = minetest.get_translator("unified_inventory")
|
||||||
local F = minetest.formspec_escape
|
local F = minetest.formspec_escape
|
||||||
local ui = unified_inventory
|
local ui = unified_inventory
|
||||||
local bags_inv_bg_prefix = "image[0.3,1.5;"..(ui.imgscale*8)..","
|
local bags_inv_bg = "image[0.3,1.5;"..(ui.imgscale*8)..",%f;%s]"
|
||||||
|
|
||||||
ui.register_page("bags", {
|
ui.register_page("bags", {
|
||||||
get_formspec = function(player)
|
get_formspec = function(player)
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
return { formspec = table.concat({
|
return { formspec = table.concat({
|
||||||
ui.style_full.standard_inv_bg,
|
ui.style_full.standard_inv_bg,
|
||||||
bags_inv_bg_prefix..ui.imgscale..";ui_bags_header.png]",
|
string.format(bags_inv_bg, ui.imgscale, "ui_bags_header.png"),
|
||||||
"label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Bags")) .. "]",
|
"label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Bags")) .. "]",
|
||||||
"button[0.6125,2.75;1.875,0.75;bag1;" .. F(S("Bag @1", 1)) .. "]",
|
"button[0.6125,2.75;1.875,0.75;bag1;" .. F(S("Bag @1", 1)) .. "]",
|
||||||
"button[3.1125,2.75;1.875,0.75;bag2;" .. F(S("Bag @1", 2)) .. "]",
|
"button[3.1125,2.75;1.875,0.75;bag2;" .. F(S("Bag @1", 2)) .. "]",
|
||||||
@ -49,30 +49,34 @@ for bag_i = 1, 4 do
|
|||||||
get_formspec = function(player)
|
get_formspec = function(player)
|
||||||
local stack = get_player_bag_stack(player, bag_i)
|
local stack = get_player_bag_stack(player, bag_i)
|
||||||
local image = stack:get_definition().inventory_image
|
local image = stack:get_definition().inventory_image
|
||||||
local fs = {
|
local formspec = {
|
||||||
ui.style_full.standard_inv_bg,
|
ui.style_full.standard_inv_bg,
|
||||||
"image[9.2,0.4;1,1;" .. image .. "]",
|
"image[9.2,0.4;1,1;" .. image .. "]",
|
||||||
"label[0.3,0.65;" .. F(S("Bag @1", bag_i)) .. "]",
|
"label[0.3,0.65;" .. F(S("Bag @1", bag_i)) .. "]",
|
||||||
"listcolors[#00000000;#00000000]",
|
"listcolors[#00000000;#00000000]",
|
||||||
"listring[current_player;main]",
|
"listring[current_player;main]",
|
||||||
}
|
}
|
||||||
|
local n = 6
|
||||||
|
|
||||||
local slots = stack:get_definition().groups.bagslots
|
local slots = stack:get_definition().groups.bagslots
|
||||||
if slots == 8 then
|
if slots == 8 then
|
||||||
fs[#fs + 1] = bags_inv_bg_prefix..ui.imgscale..";ui_bags_inv_small.png]"
|
formspec[n] = string.format(bags_inv_bg, ui.imgscale, "ui_bags_inv_small.png")
|
||||||
elseif slots == 16 then
|
elseif slots == 16 then
|
||||||
fs[#fs + 1] = bags_inv_bg_prefix..(ui.imgscale*2)..";ui_bags_inv_medium.png]"
|
formspec[n] = string.format(bags_inv_bg, ui.imgscale*2, "ui_bags_inv_medium.png")
|
||||||
elseif slots == 24 then
|
elseif slots == 24 then
|
||||||
fs[#fs + 1] = bags_inv_bg_prefix..(ui.imgscale*3)..";ui_bags_inv_large.png]"
|
formspec[n] = string.format(bags_inv_bg, ui.imgscale*3, "ui_bags_inv_large.png")
|
||||||
end
|
end
|
||||||
fs[#fs + 1] = "list[current_player;bag" .. bag_i .. "contents;0.45,1.65;8,3;]"
|
formspec[n+1] = "list[current_player;bag" .. bag_i .. "contents;0.45,1.65;8,3;]"
|
||||||
fs[#fs + 1] = "listring[current_name;bag" .. bag_i .. "contents]"
|
formspec[n+2] = "listring[current_name;bag" .. bag_i .. "contents]"
|
||||||
|
n = n + 3
|
||||||
|
|
||||||
local player_name = player:get_player_name() -- For if statement.
|
local player_name = player:get_player_name() -- For if statement.
|
||||||
if ui.trash_enabled
|
if ui.trash_enabled
|
||||||
or ui.is_creative(player_name)
|
or ui.is_creative(player_name)
|
||||||
or minetest.get_player_privs(player_name).give then
|
or minetest.get_player_privs(player_name).give then
|
||||||
fs[#fs + 1] = "image[7.8,0.25;"..ui.imgscale..","..ui.imgscale..";ui_trash_slot.png]"
|
formspec[n] = "image[7.8,0.25;"..ui.imgscale..","..ui.imgscale..";ui_trash_slot.png]"
|
||||||
.. "list[detached:trash;main;7.95,0.25;1,1;]"
|
.. "list[detached:trash;main;7.95,0.25;1,1;]"
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
local inv = player:get_inventory()
|
local inv = player:get_inventory()
|
||||||
for i = 1, 4 do
|
for i = 1, 4 do
|
||||||
@ -89,11 +93,12 @@ for bag_i = 1, 4 do
|
|||||||
end
|
end
|
||||||
local img = def.inventory_image
|
local img = def.inventory_image
|
||||||
local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size
|
local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size
|
||||||
fs[#fs + 1] = string.format("image_button[%f,0.4;1,1;%s;bag%i;%s]",
|
formspec[n] = string.format("image_button[%f,0.4;1,1;%s;bag%i;%s]",
|
||||||
(i + 1.35)*1.25, img, i, label)
|
(i + 1.35)*1.25, img, i, label)
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return { formspec = table.concat(fs) }
|
return { formspec = table.concat(formspec) }
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
87
internal.lua
87
internal.lua
@ -68,7 +68,9 @@ function ui.get_formspec(player, page)
|
|||||||
|
|
||||||
if ui.is_creative(player_name)
|
if ui.is_creative(player_name)
|
||||||
and page == "craft" then -- add the "Refill" slot.
|
and page == "craft" then -- add the "Refill" slot.
|
||||||
formspec[n] = "image["..(ui_peruser.craft_x-2.5)..","..(ui_peruser.craft_y+2.5)..";"..ui.imgscale..","..ui.imgscale..";ui_single_slot.png]"
|
formspec[n] = string.format("image[%f,%f;%f,%f;ui_single_slot.png]",
|
||||||
|
ui_peruser.craft_x - 2.5, ui_peruser.craft_y + 2.5,
|
||||||
|
ui.imgscale, ui.imgscale)
|
||||||
n = n+1
|
n = n+1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -100,21 +102,20 @@ function ui.get_formspec(player, page)
|
|||||||
|
|
||||||
if def.type == "image" then
|
if def.type == "image" then
|
||||||
if (def.condition == nil or def.condition(player) == true) then
|
if (def.condition == nil or def.condition(player) == true) then
|
||||||
formspec[n] = "image_button["
|
formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]",
|
||||||
formspec[n+1] = ( ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4)
|
ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4,
|
||||||
formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * ui_peruser.btn_spc)..";"..ui_peruser.btn_size..","..ui_peruser.btn_size..";"
|
ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
|
||||||
formspec[n+3] = F(def.image)..";"
|
ui_peruser.btn_size,ui_peruser.btn_size,
|
||||||
formspec[n+4] = F(def.name)..";]"
|
F(def.image),
|
||||||
formspec[n+5] = "tooltip["..F(def.name)
|
F(def.name))
|
||||||
formspec[n+6] = ";"..(def.tooltip or "").."]"
|
formspec[n+1] = "tooltip["..F(def.name)..";"..(def.tooltip or "").."]"
|
||||||
n = n+7
|
n = n+2
|
||||||
else
|
else
|
||||||
formspec[n] = "image["
|
formspec[n] = string.format("image[%f,%f;%f,%f;%s^[colorize:#808080:alpha]",
|
||||||
formspec[n+1] = ( ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4)
|
ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4,
|
||||||
formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * ui_peruser.btn_spc)..";"..ui_peruser.btn_size..","..ui_peruser.btn_size..";"
|
ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
|
||||||
formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]"
|
ui_peruser.btn_size,ui_peruser.btn_size,def.image)
|
||||||
n = n+4
|
n = n+1
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -133,23 +134,21 @@ function ui.get_formspec(player, page)
|
|||||||
-- Search box
|
-- Search box
|
||||||
formspec[n] = "field_close_on_enter[searchbox;false]"
|
formspec[n] = "field_close_on_enter[searchbox;false]"
|
||||||
|
|
||||||
formspec[n+1] = "field["..ui_peruser.page_buttons_x..","..
|
formspec[n+1] = string.format("field[%f,%f;%f,%f;searchbox;;%s]",
|
||||||
ui_peruser.page_buttons_y..";"..
|
ui_peruser.page_buttons_x, ui_peruser.page_buttons_y,
|
||||||
(ui_peruser.searchwidth - 0.1)..","..
|
ui_peruser.searchwidth - 0.1, ui_peruser.btn_size,
|
||||||
ui_peruser.btn_size..";searchbox;;"..
|
F(ui.current_searchbox[player_name]))
|
||||||
F(ui.current_searchbox[player_name]) .. "]"
|
formspec[n+2] = string.format("image_button[%f,%f;%f,%f;ui_search_icon.png;searchbutton;]",
|
||||||
formspec[n+2] = "image_button["..(ui_peruser.page_buttons_x + ui_peruser.searchwidth)..","..
|
ui_peruser.page_buttons_x + ui_peruser.searchwidth, ui_peruser.page_buttons_y,
|
||||||
ui_peruser.page_buttons_y..";"..
|
ui_peruser.btn_size,ui_peruser.btn_size)
|
||||||
ui_peruser.btn_size..","..ui_peruser.btn_size..
|
formspec[n+3] = "tooltip[searchbutton;" ..F(S("Search")) .. "]"
|
||||||
";ui_search_icon.png;searchbutton;]"..
|
formspec[n+4] = string.format("image_button[%f,%f;%f,%f;ui_reset_icon.png;searchresetbutton;]",
|
||||||
"tooltip[searchbutton;" ..F(S("Search")) .. "]"
|
ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc,
|
||||||
formspec[n+3] = "image_button["..(ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc)..","..
|
ui_peruser.page_buttons_y,
|
||||||
ui_peruser.page_buttons_y..";"..
|
ui_peruser.btn_size, ui_peruser.btn_size)
|
||||||
ui_peruser.btn_size..","..ui_peruser.btn_size..
|
formspec[n+5] = "tooltip[searchresetbutton;"..F(S("Reset search and display everything")).."]"
|
||||||
";ui_reset_icon.png;searchresetbutton;]"..
|
|
||||||
"tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]"
|
|
||||||
|
|
||||||
n = n + 4
|
n = n + 6
|
||||||
|
|
||||||
-- Controls to flip items pages
|
-- Controls to flip items pages
|
||||||
|
|
||||||
@ -169,15 +168,14 @@ function ui.get_formspec(player, page)
|
|||||||
|
|
||||||
local bn = 0
|
local bn = 0
|
||||||
for _, b in pairs(btnlist) do
|
for _, b in pairs(btnlist) do
|
||||||
formspec[n] = "image_button["..
|
formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]",
|
||||||
(ui_peruser.page_buttons_x + ui_peruser.btn_spc*bn)..","..
|
ui_peruser.page_buttons_x + ui_peruser.btn_spc*bn,
|
||||||
(ui_peruser.page_buttons_y + ui_peruser.btn_spc)..";"..
|
ui_peruser.page_buttons_y + ui_peruser.btn_spc,
|
||||||
ui_peruser.btn_size..","..
|
ui_peruser.btn_size, ui_peruser.btn_size,
|
||||||
ui_peruser.btn_size..";"..
|
b[1],b[2])
|
||||||
b[1]..";"..b[2]..";]"..
|
formspec[n+1] = "tooltip["..b[2]..";"..F(S(b[3])).."]"
|
||||||
"tooltip["..b[2]..";"..F(S(b[3])).."]"
|
|
||||||
bn = bn + 1
|
bn = bn + 1
|
||||||
n = n + 1
|
n = n + 2
|
||||||
end
|
end
|
||||||
|
|
||||||
local no_matches = S("No matching items")
|
local no_matches = S("No matching items")
|
||||||
@ -230,14 +228,17 @@ function ui.get_formspec(player, page)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
formspec[n] = "label["..ui_peruser.page_x..","..ui_peruser.form_header_y..";"..F(S("Page")) .. ": "
|
formspec[n] = string.format("label[%f,%f;%s: %s]",
|
||||||
.. S("@1 of @2",page2,pagemax).."]"
|
ui_peruser.page_x, ui_peruser.form_header_y,
|
||||||
|
F(S("Page")), S("@1 of @2",page2,pagemax))
|
||||||
end
|
end
|
||||||
n= n+1
|
n= n+1
|
||||||
|
|
||||||
if ui.activefilter[player_name] ~= "" then
|
if ui.activefilter[player_name] ~= "" then
|
||||||
formspec[n] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y - 0.65)..";" .. F(S("Filter")) .. ":]"
|
formspec[n] = string.format("label[%f,%f;%s:]",
|
||||||
formspec[n+1] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y - 0.25)..";"..F(ui.activefilter[player_name]).."]"
|
ui_peruser.page_x, ui_peruser.page_y - 0.65, F(S("Filter")))
|
||||||
|
formspec[n+1] = string.format("label[%f,%f;%s]",
|
||||||
|
ui_peruser.page_x, ui_peruser.page_y - 0.25, F(ui.activefilter[player_name]))
|
||||||
end
|
end
|
||||||
return table.concat(formspec, "")
|
return table.concat(formspec, "")
|
||||||
end
|
end
|
||||||
|
108
register.lua
108
register.lua
@ -173,24 +173,32 @@ ui.register_page("craft", {
|
|||||||
local craftresultx = craftx + 5
|
local craftresultx = craftx + 5
|
||||||
|
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
local formspec = "image["..craftx..","..crafty..";"..(ui.imgscale*6)..","..(ui.imgscale*3)..";ui_crafting_form.png]"
|
local formspec = {
|
||||||
formspec = formspec..perplayer_formspec.standard_inv_bg
|
string.format("image[%f,%f;%f,%f;ui_crafting_form.png]", craftx, crafty, ui.imgscale*6, ui.imgscale*3),
|
||||||
formspec = formspec.."label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]"
|
perplayer_formspec.standard_inv_bg,
|
||||||
formspec = formspec.."listcolors[#00000000;#00000000]"
|
"label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]",
|
||||||
formspec = formspec.."list[current_player;craftpreview;"..(craftresultx+0.15)..","..(crafty+0.15)..";1,1;]"
|
"listcolors[#00000000;#00000000]",
|
||||||
formspec = formspec.."list[current_player;craft;"..(craftx+0.15)..","..(crafty+0.15)..";3,3;]"
|
"list[current_player;craftpreview;"..(craftresultx+0.15)..","..(crafty+0.15)..";1,1;]",
|
||||||
|
"list[current_player;craft;"..(craftx+0.15)..","..(crafty+0.15)..";3,3;]",
|
||||||
|
"listring[current_name;craft]",
|
||||||
|
"listring[current_player;main]"
|
||||||
|
}
|
||||||
|
local n=#formspec+1
|
||||||
|
|
||||||
if ui.trash_enabled or ui.is_creative(player_name) or minetest.get_player_privs(player_name).give then
|
if ui.trash_enabled or ui.is_creative(player_name) or minetest.get_player_privs(player_name).give then
|
||||||
formspec = formspec.."label["..(craftx+6.45)..","..(crafty + 2.4)..";" .. F(S("Trash:")) .. "]"
|
formspec[n] = string.format("label[%f,%f;%s]", craftx + 6.45, crafty + 2.4, F(S("Trash:")))
|
||||||
formspec = formspec.."image["..(craftx+6.25)..","..(crafty + 2.5)..";"..ui.imgscale..","..ui.imgscale..";ui_trash_slot.png]"
|
formspec[n+1] = string.format("image[%f,%f;%f,%f;ui_trash_slot.png]",
|
||||||
formspec = formspec.."list[detached:trash;main;"..(craftx+6.4)..","..(crafty + 2.65)..";1,1;]"
|
craftx+6.25, crafty + 2.5, ui.imgscale, ui.imgscale)
|
||||||
|
formspec[n+2] = string.format("list[detached:trash;main;%f,%f;1,1;]", craftx + 6.4, crafty + 2.65)
|
||||||
|
n=n+3
|
||||||
end
|
end
|
||||||
formspec = formspec.."listring[current_name;craft]"
|
|
||||||
formspec = formspec.."listring[current_player;main]"
|
|
||||||
if ui.is_creative(player_name) then
|
if ui.is_creative(player_name) then
|
||||||
formspec = formspec.."label["..(craftx-2.3)..","..(crafty + 2.4)..";" .. F(S("Refill:")) .. "]"
|
formspec[n+1] = string.format("label[%f,%f;%s]", craftx - 2.3, crafty + 2.4,F(S("Refill:")))
|
||||||
formspec = formspec.."list[detached:"..F(player_name).."refill;main;"..(craftx-2.35)..","..(crafty + 2.65)..";1,1;]"
|
formspec[n+2] = string.format("list[detached:%s;refill;main;%f,%f;1,1;]",
|
||||||
|
F(player_name), craftx - 2.35, crafty + 2.65)
|
||||||
end
|
end
|
||||||
return {formspec=formspec}
|
return {formspec=table.concat(formspec)}
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -273,16 +281,19 @@ ui.register_page("craftguide", {
|
|||||||
|
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
local player_privs = minetest.get_player_privs(player_name)
|
local player_privs = minetest.get_player_privs(player_name)
|
||||||
local fs = {
|
local formspec = {
|
||||||
perplayer_formspec.standard_inv_bg,
|
perplayer_formspec.standard_inv_bg,
|
||||||
"label["..formheaderx..","..formheadery..";" .. F(S("Crafting Guide")) .. "]",
|
"label["..formheaderx..","..formheadery..";" .. F(S("Crafting Guide")) .. "]",
|
||||||
"listcolors[#00000000;#00000000]"
|
"listcolors[#00000000;#00000000]"
|
||||||
}
|
}
|
||||||
|
|
||||||
local item_name = ui.current_item[player_name]
|
local item_name = ui.current_item[player_name]
|
||||||
if not item_name then
|
if not item_name then
|
||||||
return { formspec = table.concat(fs) }
|
return { formspec = table.concat(formspec) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local n = 4
|
||||||
|
|
||||||
local item_name_shown
|
local item_name_shown
|
||||||
if minetest.registered_items[item_name]
|
if minetest.registered_items[item_name]
|
||||||
and minetest.registered_items[item_name].description then
|
and minetest.registered_items[item_name].description then
|
||||||
@ -304,9 +315,10 @@ ui.register_page("craftguide", {
|
|||||||
end
|
end
|
||||||
local has_give = player_privs.give or ui.is_creative(player_name)
|
local has_give = player_privs.give or ui.is_creative(player_name)
|
||||||
|
|
||||||
fs[#fs + 1] = "image["..craftarrowx..","..crafty..";1.25,1.25;ui_crafting_arrow.png]"
|
formspec[n] = "image["..craftarrowx..","..crafty..";1.25,1.25;ui_crafting_arrow.png]"
|
||||||
fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]",
|
formspec[n+1] = string.format("textarea[%f,%f;10,1;;%s: %s;]",
|
||||||
craftx-2.3, perplayer_formspec.resultstr_y, F(role_text[dir]), item_name_shown)
|
craftx-2.3, perplayer_formspec.resultstr_y, F(role_text[dir]), item_name_shown)
|
||||||
|
n = n + 2
|
||||||
|
|
||||||
local giveme_form = table.concat({
|
local giveme_form = table.concat({
|
||||||
"label[".. (give_x+0.1)..",".. (crafty + 2.7) .. ";" .. F(S("Give me:")) .. "]",
|
"label[".. (give_x+0.1)..",".. (crafty + 2.7) .. ";" .. F(S("Give me:")) .. "]",
|
||||||
@ -317,31 +329,33 @@ ui.register_page("craftguide", {
|
|||||||
|
|
||||||
if not craft then
|
if not craft then
|
||||||
-- No craft recipes available for this item.
|
-- No craft recipes available for this item.
|
||||||
fs[#fs + 1] = "label["..(craftx+2.5)..","..(crafty+1.5)..";"
|
formspec[n] = string.format("label[%f,%f;%s]", craftx+2.5, crafty+1.5, F(no_recipe_text[dir]))
|
||||||
.. F(no_recipe_text[dir]) .. "]"
|
|
||||||
local no_pos = dir == "recipe" and (craftx+2.5) or craftresultx
|
local no_pos = dir == "recipe" and (craftx+2.5) or craftresultx
|
||||||
local item_pos = dir == "recipe" and craftresultx or (craftx+2.5)
|
local item_pos = dir == "recipe" and craftresultx or (craftx+2.5)
|
||||||
fs[#fs + 1] = "image["..no_pos..","..crafty..";1.2,1.2;ui_no.png]"
|
formspec[n+1] = "image["..no_pos..","..crafty..";1.2,1.2;ui_no.png]"
|
||||||
fs[#fs + 1] = stack_image_button(item_pos, crafty, 1.2, 1.2,
|
formspec[n+2] = stack_image_button(item_pos, crafty, 1.2, 1.2,
|
||||||
"item_button_" .. other_dir[dir] .. "_", ItemStack(item_name))
|
"item_button_" .. other_dir[dir] .. "_", ItemStack(item_name))
|
||||||
if has_give then
|
if has_give then
|
||||||
fs[#fs + 1] = giveme_form
|
formspec[n+3] = giveme_form
|
||||||
end
|
end
|
||||||
return { formspec = table.concat(fs) }
|
return { formspec = table.concat(formspec) }
|
||||||
else
|
else
|
||||||
fs[#fs + 1] = stack_image_button(craftresultx, crafty, 1.2, 1.2,
|
formspec[n] = stack_image_button(craftresultx, crafty, 1.2, 1.2,
|
||||||
"item_button_" .. rdir .. "_", ItemStack(craft.output))
|
"item_button_" .. rdir .. "_", ItemStack(craft.output))
|
||||||
fs[#fs + 1] = stack_image_button(craftx-2.3, crafty, 1.2, 1.2,
|
formspec[n+1] = stack_image_button(craftx-2.3, crafty, 1.2, 1.2,
|
||||||
"item_button_usage_", ItemStack(item_name))
|
"item_button_usage_", ItemStack(item_name))
|
||||||
|
n = n + 2
|
||||||
end
|
end
|
||||||
|
|
||||||
local craft_type = ui.registered_craft_types[craft.type] or
|
local craft_type = ui.registered_craft_types[craft.type] or
|
||||||
ui.craft_type_defaults(craft.type, {})
|
ui.craft_type_defaults(craft.type, {})
|
||||||
if craft_type.icon then
|
if craft_type.icon then
|
||||||
fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]",
|
formspec[n] = string.format("image[%f,%f;%f,%f;%s]",
|
||||||
craftarrowx+0.1, crafty + 0.95, 1, 1, craft_type.icon)
|
craftarrowx+0.1, crafty + 0.95, 1, 1, craft_type.icon)
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
fs[#fs + 1] = "label["..(craftarrowx+0.15)..","..(crafty+0.2)..";" .. F(craft_type.description).."]"
|
formspec[n] = string.format("label[%f,%f;%s]", craftarrowx+0.15, crafty+0.2, F(craft_type.description))
|
||||||
|
n = n + 1
|
||||||
|
|
||||||
local display_size = craft_type.dynamic_display_size
|
local display_size = craft_type.dynamic_display_size
|
||||||
and craft_type.dynamic_display_size(craft)
|
and craft_type.dynamic_display_size(craft)
|
||||||
@ -384,42 +398,50 @@ ui.register_page("craftguide", {
|
|||||||
local xof = ((fx-1) * of + of) * bspc
|
local xof = ((fx-1) * of + of) * bspc
|
||||||
local yof = ((y-1) * of + 1) * bspc
|
local yof = ((y-1) * of + 1) * bspc
|
||||||
if item then
|
if item then
|
||||||
fs[#fs + 1] = stack_image_button(
|
formspec[n] = stack_image_button(
|
||||||
xoffset - xof, crafty - 1.25 + yof, bsize, bsize,
|
xoffset - xof, crafty - 1.25 + yof, bsize, bsize,
|
||||||
"item_button_recipe_",
|
"item_button_recipe_",
|
||||||
ItemStack(item))
|
ItemStack(item))
|
||||||
else
|
else
|
||||||
-- Fake buttons just to make grid
|
-- Fake buttons just to make grid
|
||||||
fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]",
|
formspec[n] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]",
|
||||||
xoffset - xof, crafty - 1.25 + yof, bsize, bsize)
|
xoffset - xof, crafty - 1.25 + yof, bsize, bsize)
|
||||||
end
|
end
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- Error
|
-- Error
|
||||||
fs[#fs + 1] = string.format("label[2,%f;%s]",
|
formspec[n] = string.format("label[2,%f;%s]",
|
||||||
crafty, F(S("This recipe is too@nlarge to be displayed.")))
|
crafty, F(S("This recipe is too@nlarge to be displayed.")))
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if craft_type.uses_crafting_grid and display_size.width <= 3 then
|
if craft_type.uses_crafting_grid and display_size.width <= 3 then
|
||||||
fs[#fs + 1] = "label["..(give_x+0.1)..",".. (crafty + 1.7) .. ";" .. F(S("To craft grid:")) .. "]"
|
formspec[n] = "label["..(give_x+0.1)..",".. (crafty + 1.7) .. ";" .. F(S("To craft grid:")) .. "]"
|
||||||
.. "button[".. (give_x)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_1;1]"
|
formspec[n+1] = "button[".. (give_x)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_1;1]"
|
||||||
.. "button[".. (give_x+0.8)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_10;10]"
|
formspec[n+2] = "button[".. (give_x+0.8)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_10;10]"
|
||||||
.. "button[".. (give_x+1.6)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_max;" .. F(S("All")) .. "]"
|
formspec[n+3] = "button[".. (give_x+1.6)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_max;" .. F(S("All")) .. "]"
|
||||||
|
n = n + 4
|
||||||
end
|
end
|
||||||
|
|
||||||
if has_give then
|
if has_give then
|
||||||
fs[#fs + 1] = giveme_form
|
formspec[n] = giveme_form
|
||||||
|
n = n + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if alternates and alternates > 1 then
|
if alternates and alternates > 1 then
|
||||||
fs[#fs + 1] = "label["..(craftx+4).."," .. (crafty + 2.3) .. ";"
|
formspec[n] = string.format("label[%f,%f;%s]",
|
||||||
.. F(S(recipe_text[dir], alternate, alternates)) .. "]"
|
craftx+4, crafty + 2.3, F(S(recipe_text[dir], alternate, alternates)))
|
||||||
.. "image_button["..(craftarrowx+0.2).."," .. (crafty + 2.6) .. ";1.1,1.1;ui_left_icon.png;alternate_prev;]"
|
formspec[n+1] = string.format("image_button[%f,%f;1.1,1.1;ui_left_icon.png;alternate_prev;]",
|
||||||
.. "image_button["..(craftarrowx+1.35).."," .. (crafty + 2.6) .. ";1.1,1.1;ui_right_icon.png;alternate;]"
|
craftarrowx+0.2, crafty + 2.6)
|
||||||
.. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]"
|
formspec[n+2] = string.format("image_button[%f,%f;1.1,1.1;ui_right_icon.png;alternate;]",
|
||||||
.. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]"
|
craftarrowx+1.35, crafty + 2.6)
|
||||||
|
formspec[n+3] = "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]"
|
||||||
|
formspec[n+4] = "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]"
|
||||||
end
|
end
|
||||||
return { formspec = table.concat(fs) }
|
|
||||||
|
return { formspec = table.concat(formspec) }
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -29,21 +29,24 @@ ui.register_page("waypoints", {
|
|||||||
if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end
|
if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end
|
||||||
|
|
||||||
local waypoints = datastorage.get(player_name, "waypoints")
|
local waypoints = datastorage.get(player_name, "waypoints")
|
||||||
local formspec = ui.style_full.standard_inv_bg..
|
local formspec = { ui.style_full.standard_inv_bg,
|
||||||
"label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Waypoints")) .. "]"..
|
string.format("label[%f,%f;%s]",
|
||||||
|
ui.style_full.form_header_x, ui.style_full.form_header_y,
|
||||||
|
F(S("Waypoints"))),
|
||||||
"image["..wp_info_x..","..wp_info_y..";1,1;ui_waypoints_icon.png]"
|
"image["..wp_info_x..","..wp_info_y..";1,1;ui_waypoints_icon.png]"
|
||||||
|
}
|
||||||
|
local n=4
|
||||||
|
|
||||||
-- Tabs buttons:
|
-- Tabs buttons:
|
||||||
for i = 1, 5 do
|
for i = 1, 5 do
|
||||||
formspec = formspec ..
|
local sw="select_waypoint"..i
|
||||||
"image_button["..ui.style_full.main_button_x..","..
|
formspec[n] = string.format("image_button[%f,%f;%f,%f;%sui_%i_icon.png;%s;]",
|
||||||
(wp_bottom_row - (5-i) * ui.style_full.btn_spc)..";"..
|
ui.style_full.main_button_x, wp_bottom_row - (5-i) * ui.style_full.btn_spc,
|
||||||
ui.style_full.btn_size..","..ui.style_full.btn_size..";" ..
|
ui.style_full.btn_size, ui.style_full.btn_size,
|
||||||
(i == waypoints.selected and "ui_blue_icon_background.png^" or "") ..
|
(i == waypoints.selected) and "ui_blue_icon_background.png^" or "",
|
||||||
"ui_" .. i .. "_icon.png;" ..
|
i, sw)
|
||||||
"select_waypoint" .. i .. ";]" ..
|
formspec[n+1] = "tooltip["..sw..";"..S("Select Waypoint #@1", i).."]"
|
||||||
"tooltip[select_waypoint" .. i .. ";"
|
n = n + 2
|
||||||
.. S("Select Waypoint #@1", i).."]"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local i = waypoints.selected or 1
|
local i = waypoints.selected or 1
|
||||||
@ -63,44 +66,44 @@ ui.register_page("waypoints", {
|
|||||||
|
|
||||||
local x = 4
|
local x = 4
|
||||||
for _, b in pairs(btnlist) do
|
for _, b in pairs(btnlist) do
|
||||||
formspec = formspec ..
|
formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s%i;]",
|
||||||
"image_button["..(wp_buttons_rj - ui.style_full.btn_spc * x)..","..
|
wp_buttons_rj - ui.style_full.btn_spc * x, wp_bottom_row,
|
||||||
wp_bottom_row..";"..
|
ui.style_full.btn_size, ui.style_full.btn_size,
|
||||||
ui.style_full.btn_size..","..ui.style_full.btn_size..";"..
|
b[1], b[2], i)
|
||||||
b[1]..";"..
|
formspec[n+1] = "tooltip["..b[2]..i..";"..F(S(b[3], b[4] or "")).."]"
|
||||||
b[2]..i..";]"..
|
|
||||||
"tooltip["..b[2]..i..";"..F(S(b[3], b[4] or "")).."]"
|
|
||||||
x = x - 1
|
x = x - 1
|
||||||
|
n = n + 2
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Waypoint's info:
|
-- Waypoint's info:
|
||||||
formspec = formspec.."label["..wp_info_x..","..(wp_info_y+1.1)..";"
|
formspec[n] = "label["..wp_info_x..","..(wp_info_y+1.1)..";"
|
||||||
if waypoint.active then
|
if waypoint.active then
|
||||||
formspec = formspec ..F(S("Waypoint active")).."]"
|
formspec[n+1] = F(S("Waypoint active")).."]"
|
||||||
else
|
else
|
||||||
formspec = formspec ..F(S("Waypoint inactive")).."]"
|
formspec[n+1] = F(S("Waypoint inactive")).."]"
|
||||||
end
|
end
|
||||||
|
n = n + 2
|
||||||
|
|
||||||
if temp.edit then
|
if temp.edit then
|
||||||
formspec = formspec ..
|
formspec[n] = string.format("field[%f,%f;%f,%f;rename_box%i;;%s]",
|
||||||
"field["..(wp_buttons_rj - wp_edit_w - 0.1)..","..(wp_bottom_row - ui.style_full.btn_spc)..";"..
|
wp_buttons_rj - wp_edit_w - 0.1, wp_bottom_row - ui.style_full.btn_spc,
|
||||||
wp_edit_w..","..ui.style_full.btn_size..";rename_box" .. i .. ";;"..
|
wp_edit_w, ui.style_full.btn_size, i, (waypoint.name or default_name))
|
||||||
(waypoint.name or default_name).."]" ..
|
formspec[n+1] = string.format("image_button[%f,%f;%f,%f;ui_ok_icon.png;confirm_rename%i;]",
|
||||||
"image_button["..wp_buttons_rj..","..(wp_bottom_row - ui.style_full.btn_spc)..";"..
|
wp_buttons_rj, wp_bottom_row - ui.style_full.btn_spc,
|
||||||
ui.style_full.btn_size..","..ui.style_full.btn_size..";"..
|
ui.style_full.btn_size, ui.style_full.btn_size, i)
|
||||||
"ui_ok_icon.png;"..
|
formspec[n+2] = "tooltip[confirm_rename"..i..";"..F(S("Finish editing")).."]"
|
||||||
"confirm_rename"..i.. ";]"..
|
n = n + 3
|
||||||
"tooltip[confirm_rename" .. i .. ";"
|
|
||||||
.. F(S("Finish editing")).."]"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
formspec = formspec .. "label["..wp_info_x..","..(wp_info_y+1.6)..";"..F(S("World position"))..": " ..
|
formspec[n] = string.format("label[%f,%f;%s: %s]",
|
||||||
minetest.pos_to_string(waypoint.world_pos or vector.new()) .. "]" ..
|
wp_info_x, wp_info_y+1.6, F(S("World position")),
|
||||||
"label["..wp_info_x..","..(wp_info_y+2.10)..";"..F(S("Name"))..": ".. (waypoint.name or default_name) .. "]" ..
|
minetest.pos_to_string(waypoint.world_pos or vector.new()))
|
||||||
"label["..wp_info_x..","..(wp_info_y+2.60)..";"..F(S("HUD text color"))..": " ..
|
formspec[n+1] = string.format("label[%f,%f;%s: %s]",
|
||||||
hud_colors[waypoint.color or 1][3] .. "]"
|
wp_info_x, wp_info_y+2.10, F(S("Name")), (waypoint.name or default_name))
|
||||||
|
formspec[n+2] = string.format("label[%f,%f;%s: %s]",
|
||||||
|
wp_info_x, wp_info_y+2.60, F(S("HUD text color")), hud_colors[waypoint.color or 1][3])
|
||||||
|
|
||||||
return {formspec=formspec}
|
return {formspec=table.concat(formspec)}
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user