swarm-0.7.0.0: 2D resource gathering game with programmable robots
LicenseBSD-3-Clause
Safe HaskellNone
LanguageHaskell2010

Swarm.TUI.Model.UI.Gameplay

Description

Sub-records utilized by UI This exists as a separate module to avoid import cycles.

Synopsis

Documentation

data UIGameplay Source #

UI state specific to an actively-playing scenario. Compare to UIState, which contains UI state independent of an active scenario.

For access to the fields, see the lenses below.

data GoalDisplay Source #

Constructors

GoalDisplay 

Fields

data UIDialogs Source #

State that backs various modal dialogs

uiTiming :: Lens' UIGameplay UITiming Source #

Temporal information for gameplay UI

uiInventory :: Lens' UIGameplay UIInventory Source #

Inventory information for gameplay UI

uiFocusRing :: Lens' UIGameplay (FocusRing Name) Source #

The focus ring is the set of UI panels we can cycle among using the Tab key.

uiWorldCursor :: Lens' UIGameplay (Maybe (Cosmic Coords)) Source #

The last clicked position on the world view.

uiWorldEditor :: Lens' UIGameplay (WorldEditor Name) Source #

State of all World Editor widgets

uiREPL :: Lens' UIGameplay REPLState Source #

The state of REPL panel.

uiInventoryList :: Lens' UIInventory (Maybe (Int, List Name InventoryListEntry)) Source #

The hash value of the focused robot entity (so we can tell if its inventory changed) along with a list of the items in the focused robot's inventory.

uiInventorySort :: Lens' UIInventory InventorySortOptions Source #

The order and direction of sorting inventory list.

uiInventorySearch :: Lens' UIInventory (Maybe Text) Source #

The current search string used to narrow the inventory view.

uiScrollToEnd :: Lens' UIGameplay Bool Source #

A flag telling the UI to scroll the info panel to the very end (used when a new log message is appended).

uiModal :: Lens' UIDialogs (Maybe Modal) Source #

When this is Just, it represents a modal to be displayed on top of the UI, e.g. for the Help screen.

uiGoal :: Lens' UIDialogs GoalDisplay Source #

Status of the scenario goal: whether there is one, and whether it has been displayed to the user initially.

uiStructure :: Lens' UIDialogs StructureDisplay Source #

Definition and status of a recognizable structure

uiRobot :: Lens' UIDialogs RobotDisplay Source #

Definition and status of a recognizable structure

uiDialogs :: Lens' UIGameplay UIDialogs Source #

State that backs various modal dialogs

uiIsAutoPlay :: Lens' UIGameplay Bool Source #

When running with --autoplay the progress will not be saved.

uiAutoShowObjectives :: Lens' UIGameplay Bool Source #

Do not open objectives modals on objective completion.

lgTicksPerSecond :: Lens' UITiming Int Source #

The base-2 logarithm of the current game speed in ticks/second. Note that we cap this value to the range of +/- log2 INTMAX.

lastFrameTime :: Lens' UITiming TimeSpec Source #

The time of the last Frame event.

accumulatedTime :: Lens' UITiming TimeSpec Source #

The amount of accumulated real time. Every time we get a Frame event, we accumulate the amount of real time that happened since the last frame, then attempt to take an appropriate number of ticks to "catch up", based on the target tick rate.

See https://gafferongames.com/post/fix_your_timestep/ .

tickCount :: Lens' UITiming Int Source #

A counter used to track how many ticks have happened since the last time we updated the ticks/frame statistics.

frameCount :: Lens' UITiming Int Source #

A counter used to track how many frames have been rendered since the last time we updated the ticks/frame statistics.

frameTickCount :: Lens' UITiming Int Source #

A counter used to track how many ticks have happened in the current frame, so we can stop when we get to the tick cap.

lastInfoTime :: Lens' UITiming TimeSpec Source #

The time of the last info widget update

uiShowFPS :: Lens' UITiming Bool Source #

A toggle to show the FPS by pressing f

uiShowREPL :: Lens' UIGameplay Bool Source #

A toggle to expand or collapse the REPL by pressing Ctrl-k

uiShowZero :: Lens' UIInventory Bool Source #

A toggle to show or hide inventory items with count 0 by pressing 0

uiShowDebug :: Lens' UIGameplay Bool Source #

A toggle to show CESK machine debug view and step through it.

Note that the ability to use it can be enabled by player robot gaining the capability, or being in creative mode or with the debug option DebugCESK.

uiShowRobots :: Getter UIGameplay Bool Source #

Whether to show or hide robots on the world map.

uiHideRobotsUntil :: Lens' UIGameplay TimeSpec Source #

Hide robots on the world map.

uiInventoryShouldUpdate :: Lens' UIInventory Bool Source #

Whether the Inventory ui panel should update

uiTPF :: Lens' UITiming Double Source #

Computed ticks per milliseconds

uiFPS :: Lens' UITiming Double Source #

Computed frames per milliseconds

scenarioRef :: Lens' UIGameplay (Maybe (ScenarioWith ScenarioPath)) Source #

The currently active Scenario description, useful for starting over.