--- @section Util
--- Safely wraps an index for an array.
--- @within Util
--- @param array table The array to index.
--- @param index number The desired index (can be out of bounds).
--- @return number index The wrapped index within the array's bounds.
function Util.safeindex(array, index)
return ((index - 1 + #array) % #array) + 1
end
--- Navigates to a screen by its ID.
--- @within Util
--- @param screen_id string The ID of the screen to go to.
function Util.go_to_screen_by_id(screen_id)
local screen = Screen.get_by_id(screen_id)
if screen then
Context.game.current_screen = screen_id
screen.init()
else
PopupWindow.show({"Error: Screen '" .. screen_id .. "' not found!"})
end
end
--- Checks if a table contains a specific value.
--- @within Util
--- @param t table The table to check.
--- @param value any The value to look for.
--- @return boolean true if the value is found, false otherwise.
function Util.contains(t, value)
for i = 1, #t do
if t[i] == value then
return true
end
end
return false
end