45 lines
1.6 KiB
Lua
45 lines
1.6 KiB
Lua
--- @section ControlsWindow
|
|
local _controls = {
|
|
{ action = "Navigate", keyboard = "Arrow keys", gamepad = "D-pad" },
|
|
{ action = "Select / OK", keyboard = "Space", gamepad = "Z button" },
|
|
{ action = "Back", keyboard = "Backspace", gamepad = "B button" },
|
|
{ action = "Click", keyboard = "Mouse", gamepad = "" },
|
|
}
|
|
|
|
--- Draws the controls window.
|
|
--- @within ControlsWindow
|
|
function ControlsWindow.draw()
|
|
UI.draw_top_bar("Controls")
|
|
|
|
local col_action = 4
|
|
local col_keyboard = 80
|
|
local col_gamepad = 170
|
|
local row_h = 10
|
|
local y_header = 18
|
|
local y_start = 30
|
|
|
|
Print.text("Action", col_action, y_header, Config.colors.light_grey)
|
|
Print.text("Keyboard", col_keyboard, y_header, Config.colors.light_grey)
|
|
Print.text("Gamepad", col_gamepad, y_header, Config.colors.light_grey)
|
|
line(col_action, y_header + 8, Config.screen.width - 4, y_header + 8, Config.colors.dark_grey)
|
|
|
|
for i, entry in ipairs(_controls) do
|
|
local y = y_start + (i - 1) * row_h
|
|
Print.text(entry.action, col_action, y, Config.colors.white)
|
|
Print.text(entry.keyboard, col_keyboard, y, Config.colors.light_blue)
|
|
if entry.gamepad ~= "" then
|
|
Print.text(entry.gamepad, col_gamepad, y, Config.colors.light_blue)
|
|
end
|
|
end
|
|
|
|
Print.text("Space / Z button or click to go back", col_action, Config.screen.height - 10, Config.colors.light_grey)
|
|
end
|
|
|
|
--- Updates the controls window logic.
|
|
--- @within ControlsWindow
|
|
function ControlsWindow.update()
|
|
if Input.back() or Input.select() then
|
|
Window.set_current("menu")
|
|
end
|
|
end
|