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:
27
bags.lua
27
bags.lua
@@ -8,14 +8,14 @@ License: GPLv3
|
||||
local S = minetest.get_translator("unified_inventory")
|
||||
local F = minetest.formspec_escape
|
||||
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", {
|
||||
get_formspec = function(player)
|
||||
local player_name = player:get_player_name()
|
||||
return { formspec = table.concat({
|
||||
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")) .. "]",
|
||||
"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)) .. "]",
|
||||
@@ -49,30 +49,34 @@ for bag_i = 1, 4 do
|
||||
get_formspec = function(player)
|
||||
local stack = get_player_bag_stack(player, bag_i)
|
||||
local image = stack:get_definition().inventory_image
|
||||
local fs = {
|
||||
local formspec = {
|
||||
ui.style_full.standard_inv_bg,
|
||||
"image[9.2,0.4;1,1;" .. image .. "]",
|
||||
"label[0.3,0.65;" .. F(S("Bag @1", bag_i)) .. "]",
|
||||
"listcolors[#00000000;#00000000]",
|
||||
"listring[current_player;main]",
|
||||
}
|
||||
local n = 6
|
||||
|
||||
local slots = stack:get_definition().groups.bagslots
|
||||
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
|
||||
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
|
||||
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
|
||||
fs[#fs + 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+1] = "list[current_player;bag" .. bag_i .. "contents;0.45,1.65;8,3;]"
|
||||
formspec[n+2] = "listring[current_name;bag" .. bag_i .. "contents]"
|
||||
n = n + 3
|
||||
|
||||
local player_name = player:get_player_name() -- For if statement.
|
||||
if ui.trash_enabled
|
||||
or ui.is_creative(player_name)
|
||||
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;]"
|
||||
n = n + 1
|
||||
end
|
||||
local inv = player:get_inventory()
|
||||
for i = 1, 4 do
|
||||
@@ -89,11 +93,12 @@ for bag_i = 1, 4 do
|
||||
end
|
||||
local img = def.inventory_image
|
||||
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)
|
||||
n = n + 1
|
||||
end
|
||||
end
|
||||
return { formspec = table.concat(fs) }
|
||||
return { formspec = table.concat(formspec) }
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
87
internal.lua
87
internal.lua
@@ -68,7 +68,9 @@ function ui.get_formspec(player, page)
|
||||
|
||||
if ui.is_creative(player_name)
|
||||
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
|
||||
end
|
||||
|
||||
@@ -100,21 +102,20 @@ function ui.get_formspec(player, page)
|
||||
|
||||
if def.type == "image" then
|
||||
if (def.condition == nil or def.condition(player) == true) then
|
||||
formspec[n] = "image_button["
|
||||
formspec[n+1] = ( 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..";"
|
||||
formspec[n+3] = F(def.image)..";"
|
||||
formspec[n+4] = F(def.name)..";]"
|
||||
formspec[n+5] = "tooltip["..F(def.name)
|
||||
formspec[n+6] = ";"..(def.tooltip or "").."]"
|
||||
n = n+7
|
||||
formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]",
|
||||
ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4,
|
||||
ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
|
||||
ui_peruser.btn_size,ui_peruser.btn_size,
|
||||
F(def.image),
|
||||
F(def.name))
|
||||
formspec[n+1] = "tooltip["..F(def.name)..";"..(def.tooltip or "").."]"
|
||||
n = n+2
|
||||
else
|
||||
formspec[n] = "image["
|
||||
formspec[n+1] = ( 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..";"
|
||||
formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]"
|
||||
n = n+4
|
||||
|
||||
formspec[n] = string.format("image[%f,%f;%f,%f;%s^[colorize:#808080:alpha]",
|
||||
ui_peruser.main_button_x + ui_peruser.btn_spc * (i - 1) - button_col * ui_peruser.btn_spc * 4,
|
||||
ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
|
||||
ui_peruser.btn_size,ui_peruser.btn_size,def.image)
|
||||
n = n+1
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -133,23 +134,21 @@ function ui.get_formspec(player, page)
|
||||
-- Search box
|
||||
formspec[n] = "field_close_on_enter[searchbox;false]"
|
||||
|
||||
formspec[n+1] = "field["..ui_peruser.page_buttons_x..","..
|
||||
ui_peruser.page_buttons_y..";"..
|
||||
(ui_peruser.searchwidth - 0.1)..","..
|
||||
ui_peruser.btn_size..";searchbox;;"..
|
||||
F(ui.current_searchbox[player_name]) .. "]"
|
||||
formspec[n+2] = "image_button["..(ui_peruser.page_buttons_x + ui_peruser.searchwidth)..","..
|
||||
ui_peruser.page_buttons_y..";"..
|
||||
ui_peruser.btn_size..","..ui_peruser.btn_size..
|
||||
";ui_search_icon.png;searchbutton;]"..
|
||||
"tooltip[searchbutton;" ..F(S("Search")) .. "]"
|
||||
formspec[n+3] = "image_button["..(ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc)..","..
|
||||
ui_peruser.page_buttons_y..";"..
|
||||
ui_peruser.btn_size..","..ui_peruser.btn_size..
|
||||
";ui_reset_icon.png;searchresetbutton;]"..
|
||||
"tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]"
|
||||
formspec[n+1] = string.format("field[%f,%f;%f,%f;searchbox;;%s]",
|
||||
ui_peruser.page_buttons_x, ui_peruser.page_buttons_y,
|
||||
ui_peruser.searchwidth - 0.1, ui_peruser.btn_size,
|
||||
F(ui.current_searchbox[player_name]))
|
||||
formspec[n+2] = string.format("image_button[%f,%f;%f,%f;ui_search_icon.png;searchbutton;]",
|
||||
ui_peruser.page_buttons_x + ui_peruser.searchwidth, ui_peruser.page_buttons_y,
|
||||
ui_peruser.btn_size,ui_peruser.btn_size)
|
||||
formspec[n+3] = "tooltip[searchbutton;" ..F(S("Search")) .. "]"
|
||||
formspec[n+4] = string.format("image_button[%f,%f;%f,%f;ui_reset_icon.png;searchresetbutton;]",
|
||||
ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc,
|
||||
ui_peruser.page_buttons_y,
|
||||
ui_peruser.btn_size, ui_peruser.btn_size)
|
||||
formspec[n+5] = "tooltip[searchresetbutton;"..F(S("Reset search and display everything")).."]"
|
||||
|
||||
n = n + 4
|
||||
n = n + 6
|
||||
|
||||
-- Controls to flip items pages
|
||||
|
||||
@@ -169,15 +168,14 @@ function ui.get_formspec(player, page)
|
||||
|
||||
local bn = 0
|
||||
for _, b in pairs(btnlist) do
|
||||
formspec[n] = "image_button["..
|
||||
(ui_peruser.page_buttons_x + ui_peruser.btn_spc*bn)..","..
|
||||
(ui_peruser.page_buttons_y + ui_peruser.btn_spc)..";"..
|
||||
ui_peruser.btn_size..","..
|
||||
ui_peruser.btn_size..";"..
|
||||
b[1]..";"..b[2]..";]"..
|
||||
"tooltip["..b[2]..";"..F(S(b[3])).."]"
|
||||
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_y + ui_peruser.btn_spc,
|
||||
ui_peruser.btn_size, ui_peruser.btn_size,
|
||||
b[1],b[2])
|
||||
formspec[n+1] = "tooltip["..b[2]..";"..F(S(b[3])).."]"
|
||||
bn = bn + 1
|
||||
n = n + 1
|
||||
n = n + 2
|
||||
end
|
||||
|
||||
local no_matches = S("No matching items")
|
||||
@@ -230,14 +228,17 @@ function ui.get_formspec(player, page)
|
||||
end
|
||||
end
|
||||
end
|
||||
formspec[n] = "label["..ui_peruser.page_x..","..ui_peruser.form_header_y..";"..F(S("Page")) .. ": "
|
||||
.. S("@1 of @2",page2,pagemax).."]"
|
||||
formspec[n] = string.format("label[%f,%f;%s: %s]",
|
||||
ui_peruser.page_x, ui_peruser.form_header_y,
|
||||
F(S("Page")), S("@1 of @2",page2,pagemax))
|
||||
end
|
||||
n= n+1
|
||||
|
||||
if ui.activefilter[player_name] ~= "" then
|
||||
formspec[n] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y - 0.65)..";" .. F(S("Filter")) .. ":]"
|
||||
formspec[n+1] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y - 0.25)..";"..F(ui.activefilter[player_name]).."]"
|
||||
formspec[n] = string.format("label[%f,%f;%s:]",
|
||||
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
|
||||
return table.concat(formspec, "")
|
||||
end
|
||||
|
108
register.lua
108
register.lua
@@ -173,24 +173,32 @@ ui.register_page("craft", {
|
||||
local craftresultx = craftx + 5
|
||||
|
||||
local player_name = player:get_player_name()
|
||||
local formspec = "image["..craftx..","..crafty..";"..(ui.imgscale*6)..","..(ui.imgscale*3)..";ui_crafting_form.png]"
|
||||
formspec = formspec..perplayer_formspec.standard_inv_bg
|
||||
formspec = formspec.."label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]"
|
||||
formspec = formspec.."listcolors[#00000000;#00000000]"
|
||||
formspec = formspec.."list[current_player;craftpreview;"..(craftresultx+0.15)..","..(crafty+0.15)..";1,1;]"
|
||||
formspec = formspec.."list[current_player;craft;"..(craftx+0.15)..","..(crafty+0.15)..";3,3;]"
|
||||
local formspec = {
|
||||
string.format("image[%f,%f;%f,%f;ui_crafting_form.png]", craftx, crafty, ui.imgscale*6, ui.imgscale*3),
|
||||
perplayer_formspec.standard_inv_bg,
|
||||
"label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]",
|
||||
"listcolors[#00000000;#00000000]",
|
||||
"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
|
||||
formspec = formspec.."label["..(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 = formspec.."list[detached:trash;main;"..(craftx+6.4)..","..(crafty + 2.65)..";1,1;]"
|
||||
formspec[n] = string.format("label[%f,%f;%s]", craftx + 6.45, crafty + 2.4, F(S("Trash:")))
|
||||
formspec[n+1] = string.format("image[%f,%f;%f,%f;ui_trash_slot.png]",
|
||||
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
|
||||
formspec = formspec.."listring[current_name;craft]"
|
||||
formspec = formspec.."listring[current_player;main]"
|
||||
|
||||
if ui.is_creative(player_name) then
|
||||
formspec = formspec.."label["..(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+1] = string.format("label[%f,%f;%s]", craftx - 2.3, crafty + 2.4,F(S("Refill:")))
|
||||
formspec[n+2] = string.format("list[detached:%s;refill;main;%f,%f;1,1;]",
|
||||
F(player_name), craftx - 2.35, crafty + 2.65)
|
||||
end
|
||||
return {formspec=formspec}
|
||||
return {formspec=table.concat(formspec)}
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -273,16 +281,19 @@ ui.register_page("craftguide", {
|
||||
|
||||
local player_name = player:get_player_name()
|
||||
local player_privs = minetest.get_player_privs(player_name)
|
||||
local fs = {
|
||||
local formspec = {
|
||||
perplayer_formspec.standard_inv_bg,
|
||||
"label["..formheaderx..","..formheadery..";" .. F(S("Crafting Guide")) .. "]",
|
||||
"listcolors[#00000000;#00000000]"
|
||||
}
|
||||
|
||||
local item_name = ui.current_item[player_name]
|
||||
if not item_name then
|
||||
return { formspec = table.concat(fs) }
|
||||
return { formspec = table.concat(formspec) }
|
||||
end
|
||||
|
||||
local n = 4
|
||||
|
||||
local item_name_shown
|
||||
if minetest.registered_items[item_name]
|
||||
and minetest.registered_items[item_name].description then
|
||||
@@ -304,9 +315,10 @@ ui.register_page("craftguide", {
|
||||
end
|
||||
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]"
|
||||
fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]",
|
||||
formspec[n] = "image["..craftarrowx..","..crafty..";1.25,1.25;ui_crafting_arrow.png]"
|
||||
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)
|
||||
n = n + 2
|
||||
|
||||
local giveme_form = table.concat({
|
||||
"label[".. (give_x+0.1)..",".. (crafty + 2.7) .. ";" .. F(S("Give me:")) .. "]",
|
||||
@@ -317,31 +329,33 @@ ui.register_page("craftguide", {
|
||||
|
||||
if not craft then
|
||||
-- No craft recipes available for this item.
|
||||
fs[#fs + 1] = "label["..(craftx+2.5)..","..(crafty+1.5)..";"
|
||||
.. F(no_recipe_text[dir]) .. "]"
|
||||
formspec[n] = string.format("label[%f,%f;%s]", craftx+2.5, crafty+1.5, F(no_recipe_text[dir]))
|
||||
local no_pos = dir == "recipe" and (craftx+2.5) or craftresultx
|
||||
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]"
|
||||
fs[#fs + 1] = stack_image_button(item_pos, crafty, 1.2, 1.2,
|
||||
formspec[n+1] = "image["..no_pos..","..crafty..";1.2,1.2;ui_no.png]"
|
||||
formspec[n+2] = stack_image_button(item_pos, crafty, 1.2, 1.2,
|
||||
"item_button_" .. other_dir[dir] .. "_", ItemStack(item_name))
|
||||
if has_give then
|
||||
fs[#fs + 1] = giveme_form
|
||||
formspec[n+3] = giveme_form
|
||||
end
|
||||
return { formspec = table.concat(fs) }
|
||||
return { formspec = table.concat(formspec) }
|
||||
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))
|
||||
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))
|
||||
n = n + 2
|
||||
end
|
||||
|
||||
local craft_type = ui.registered_craft_types[craft.type] or
|
||||
ui.craft_type_defaults(craft.type, {})
|
||||
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)
|
||||
n = n + 1
|
||||
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
|
||||
and craft_type.dynamic_display_size(craft)
|
||||
@@ -384,42 +398,50 @@ ui.register_page("craftguide", {
|
||||
local xof = ((fx-1) * of + of) * bspc
|
||||
local yof = ((y-1) * of + 1) * bspc
|
||||
if item then
|
||||
fs[#fs + 1] = stack_image_button(
|
||||
formspec[n] = stack_image_button(
|
||||
xoffset - xof, crafty - 1.25 + yof, bsize, bsize,
|
||||
"item_button_recipe_",
|
||||
ItemStack(item))
|
||||
else
|
||||
-- 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)
|
||||
end
|
||||
n = n + 1
|
||||
end
|
||||
end
|
||||
else
|
||||
-- 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.")))
|
||||
n = n + 1
|
||||
end
|
||||
|
||||
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:")) .. "]"
|
||||
.. "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]"
|
||||
.. "button[".. (give_x+1.6)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_max;" .. F(S("All")) .. "]"
|
||||
formspec[n] = "label["..(give_x+0.1)..",".. (crafty + 1.7) .. ";" .. F(S("To craft grid:")) .. "]"
|
||||
formspec[n+1] = "button[".. (give_x)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_1;1]"
|
||||
formspec[n+2] = "button[".. (give_x+0.8)..",".. (crafty + 1.9) .. ";0.75,0.5;craftguide_craft_10;10]"
|
||||
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
|
||||
|
||||
if has_give then
|
||||
fs[#fs + 1] = giveme_form
|
||||
formspec[n] = giveme_form
|
||||
n = n + 1
|
||||
end
|
||||
|
||||
if alternates and alternates > 1 then
|
||||
fs[#fs + 1] = "label["..(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;]"
|
||||
.. "image_button["..(craftarrowx+1.35).."," .. (crafty + 2.6) .. ";1.1,1.1;ui_right_icon.png;alternate;]"
|
||||
.. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]"
|
||||
.. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]"
|
||||
formspec[n] = string.format("label[%f,%f;%s]",
|
||||
craftx+4, crafty + 2.3, F(S(recipe_text[dir], alternate, alternates)))
|
||||
formspec[n+1] = string.format("image_button[%f,%f;1.1,1.1;ui_left_icon.png;alternate_prev;]",
|
||||
craftarrowx+0.2, crafty + 2.6)
|
||||
formspec[n+2] = string.format("image_button[%f,%f;1.1,1.1;ui_right_icon.png;alternate;]",
|
||||
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
|
||||
return { formspec = table.concat(fs) }
|
||||
|
||||
return { formspec = table.concat(formspec) }
|
||||
end,
|
||||
})
|
||||
|
||||
|
@@ -29,21 +29,24 @@ ui.register_page("waypoints", {
|
||||
if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end
|
||||
|
||||
local waypoints = datastorage.get(player_name, "waypoints")
|
||||
local formspec = ui.style_full.standard_inv_bg..
|
||||
"label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Waypoints")) .. "]"..
|
||||
local formspec = { ui.style_full.standard_inv_bg,
|
||||
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]"
|
||||
}
|
||||
local n=4
|
||||
|
||||
-- Tabs buttons:
|
||||
for i = 1, 5 do
|
||||
formspec = formspec ..
|
||||
"image_button["..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..";" ..
|
||||
(i == waypoints.selected and "ui_blue_icon_background.png^" or "") ..
|
||||
"ui_" .. i .. "_icon.png;" ..
|
||||
"select_waypoint" .. i .. ";]" ..
|
||||
"tooltip[select_waypoint" .. i .. ";"
|
||||
.. S("Select Waypoint #@1", i).."]"
|
||||
local sw="select_waypoint"..i
|
||||
formspec[n] = string.format("image_button[%f,%f;%f,%f;%sui_%i_icon.png;%s;]",
|
||||
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,
|
||||
(i == waypoints.selected) and "ui_blue_icon_background.png^" or "",
|
||||
i, sw)
|
||||
formspec[n+1] = "tooltip["..sw..";"..S("Select Waypoint #@1", i).."]"
|
||||
n = n + 2
|
||||
end
|
||||
|
||||
local i = waypoints.selected or 1
|
||||
@@ -63,44 +66,44 @@ ui.register_page("waypoints", {
|
||||
|
||||
local x = 4
|
||||
for _, b in pairs(btnlist) do
|
||||
formspec = formspec ..
|
||||
"image_button["..(wp_buttons_rj - ui.style_full.btn_spc * x)..","..
|
||||
wp_bottom_row..";"..
|
||||
ui.style_full.btn_size..","..ui.style_full.btn_size..";"..
|
||||
b[1]..";"..
|
||||
b[2]..i..";]"..
|
||||
"tooltip["..b[2]..i..";"..F(S(b[3], b[4] or "")).."]"
|
||||
formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s%i;]",
|
||||
wp_buttons_rj - ui.style_full.btn_spc * x, wp_bottom_row,
|
||||
ui.style_full.btn_size, ui.style_full.btn_size,
|
||||
b[1], b[2], i)
|
||||
formspec[n+1] = "tooltip["..b[2]..i..";"..F(S(b[3], b[4] or "")).."]"
|
||||
x = x - 1
|
||||
n = n + 2
|
||||
end
|
||||
|
||||
-- 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
|
||||
formspec = formspec ..F(S("Waypoint active")).."]"
|
||||
formspec[n+1] = F(S("Waypoint active")).."]"
|
||||
else
|
||||
formspec = formspec ..F(S("Waypoint inactive")).."]"
|
||||
formspec[n+1] = F(S("Waypoint inactive")).."]"
|
||||
end
|
||||
n = n + 2
|
||||
|
||||
if temp.edit then
|
||||
formspec = formspec ..
|
||||
"field["..(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 .. ";;"..
|
||||
(waypoint.name or default_name).."]" ..
|
||||
"image_button["..wp_buttons_rj..","..(wp_bottom_row - ui.style_full.btn_spc)..";"..
|
||||
ui.style_full.btn_size..","..ui.style_full.btn_size..";"..
|
||||
"ui_ok_icon.png;"..
|
||||
"confirm_rename"..i.. ";]"..
|
||||
"tooltip[confirm_rename" .. i .. ";"
|
||||
.. F(S("Finish editing")).."]"
|
||||
formspec[n] = string.format("field[%f,%f;%f,%f;rename_box%i;;%s]",
|
||||
wp_buttons_rj - wp_edit_w - 0.1, wp_bottom_row - ui.style_full.btn_spc,
|
||||
wp_edit_w, ui.style_full.btn_size, i, (waypoint.name or default_name))
|
||||
formspec[n+1] = string.format("image_button[%f,%f;%f,%f;ui_ok_icon.png;confirm_rename%i;]",
|
||||
wp_buttons_rj, wp_bottom_row - ui.style_full.btn_spc,
|
||||
ui.style_full.btn_size, ui.style_full.btn_size, i)
|
||||
formspec[n+2] = "tooltip[confirm_rename"..i..";"..F(S("Finish editing")).."]"
|
||||
n = n + 3
|
||||
end
|
||||
|
||||
formspec = formspec .. "label["..wp_info_x..","..(wp_info_y+1.6)..";"..F(S("World position"))..": " ..
|
||||
minetest.pos_to_string(waypoint.world_pos or vector.new()) .. "]" ..
|
||||
"label["..wp_info_x..","..(wp_info_y+2.10)..";"..F(S("Name"))..": ".. (waypoint.name or default_name) .. "]" ..
|
||||
"label["..wp_info_x..","..(wp_info_y+2.60)..";"..F(S("HUD text color"))..": " ..
|
||||
hud_colors[waypoint.color or 1][3] .. "]"
|
||||
formspec[n] = string.format("label[%f,%f;%s: %s]",
|
||||
wp_info_x, wp_info_y+1.6, F(S("World position")),
|
||||
minetest.pos_to_string(waypoint.world_pos or vector.new()))
|
||||
formspec[n+1] = string.format("label[%f,%f;%s: %s]",
|
||||
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,
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user