Module action-main
[hook-sys] Adds an action-driven crew position menu.
Required hooks: update
, newPlayerShip
.
This module uses batteries/sort
.
For details of the menu item format, see action.
Target arguments: ship, station
Differences from action docs:
- Menu items support a
stations
list; items will only be displayed on stations contained in the list. Items without a list will show on all stations. - Menu items support an
area
field; items will only be displayed on stations that handle the area (see position for details on areas). Items without this field will show on all stations. - Menu items support a
requiredTaskState
boolean; if set, the item will only display when there is (true
) or is not (false
) a task in progress.
If both stations
and area
are provided, only stations that match both restrictions will be able to see the item.
To add a station button menu item:
mainMenu:add { info = "Info Text", } mainMenu:add { button = "Button Name", action = function(reopen, ship, station) ... end, }
To set the task that a station is working on:
mainMenu:setTask(task, ship, station)
Task structure:
{ -- Exactly one of the following two fields should be set. -- The scenario time that the task will be complete at. completionAt = 42, -- The time that the task takes, in seconds. duration = 42, -- Update the task. This field is optional. -- Ifupdate
returns a non-nil value, it will be treated -- as a failure to complete the task and displayed to the user. update = function(ship, station) ... end, -- Complete the task. This field is optional. -- Ifcomplete
returns a menu list, it will be used for -- the 'task complete' menu. complete = function(ship, station) ... end, }
Functions
mainMenu:setTask(task, ship, station) | Set the current task that the operator at the given console is working on. |
Fields
mainMenu | An instance of action.ActionBase that displays on crew consoles. |
Functions
- mainMenu:setTask(task, ship, station)
-
Set the current task that the operator at the given console is working on.
Parameters:
- task The task to set.
- ship The ship to set the task on.
- station The console to set the task for.
Fields
- mainMenu
- An instance of action.ActionBase that displays on crew consoles.