build: add a format target and one shared editor config
The Lua modules were split between tabs and spaces because nothing pinned a style; .editorconfig is what lua-language-server reads on save, so the editor and the tree now agree. clang-format already had a config and left native/ unchanged. Embedded modules regenerate from the reformatted ui.lua.
This commit is contained in:
+30
-24
@@ -7,39 +7,45 @@ local hints = {}
|
||||
local ORDER = { "back", "left", "up", "down", "right", "confirm" }
|
||||
|
||||
local function available()
|
||||
local roles = {}
|
||||
if input and input.getButtons then
|
||||
for _, role in ipairs(input.getButtons()) do roles[role] = true end
|
||||
end
|
||||
return roles
|
||||
local roles = {}
|
||||
if input and input.getButtons then
|
||||
for _, role in ipairs(input.getButtons()) do
|
||||
roles[role] = true
|
||||
end
|
||||
end
|
||||
return roles
|
||||
end
|
||||
|
||||
---Paints the labels this device can actually act on, and returns the height it used.
|
||||
---@param actions table<string, string> Label per Button role; roles the device lacks are skipped.
|
||||
---@param options table|nil `y`, `font`, `color`, and `background` overrides.
|
||||
function hints.draw(actions, options)
|
||||
options = options or {}
|
||||
local font = options.font or gui.FONT_SMALL
|
||||
local color = options.color or gui.color(0, 0, 0)
|
||||
local background = options.background or gui.color(255, 255, 255)
|
||||
local height = gui.getFontHeight(font) + 6
|
||||
local y = options.y or (gui.getHeight() - height)
|
||||
options = options or {}
|
||||
local font = options.font or gui.FONT_SMALL
|
||||
local color = options.color or gui.color(0, 0, 0)
|
||||
local background = options.background or gui.color(255, 255, 255)
|
||||
local height = gui.getFontHeight(font) + 6
|
||||
local y = options.y or (gui.getHeight() - height)
|
||||
|
||||
local roles = available()
|
||||
local labels = {}
|
||||
for _, role in ipairs(ORDER) do
|
||||
if roles[role] and actions[role] then labels[#labels + 1] = actions[role] end
|
||||
end
|
||||
local roles = available()
|
||||
local labels = {}
|
||||
for _, role in ipairs(ORDER) do
|
||||
if roles[role] and actions[role] then
|
||||
labels[#labels + 1] = actions[role]
|
||||
end
|
||||
end
|
||||
|
||||
gui.fillRect(0, y, gui.getWidth(), height, background)
|
||||
if #labels == 0 then return height end
|
||||
gui.fillRect(0, y, gui.getWidth(), height, background)
|
||||
if #labels == 0 then
|
||||
return height
|
||||
end
|
||||
|
||||
local slot = gui.getWidth() // #labels
|
||||
for index, label in ipairs(labels) do
|
||||
local left = slot * (index - 1) + (slot - gui.getTextWidth(font, label)) // 2
|
||||
gui.drawText(font, left, y + 3, label, color, gui.STYLE_NORMAL, background)
|
||||
end
|
||||
return height
|
||||
local slot = gui.getWidth() // #labels
|
||||
for index, label in ipairs(labels) do
|
||||
local left = slot * (index - 1) + (slot - gui.getTextWidth(font, label)) // 2
|
||||
gui.drawText(font, left, y + 3, label, color, gui.STYLE_NORMAL, background)
|
||||
end
|
||||
return height
|
||||
end
|
||||
|
||||
return hints
|
||||
|
||||
Reference in New Issue
Block a user