settings library

The settings a player opens over a game: the panel, the overlay it sits in, and the sections it is made of.

The widgets, not the settings. What a player chose (GameSettings), the controller that writes it (GameSettingsController), the file it is kept in (SettingsFile) and the rebinding in progress (Rebinding) are flutter3d_game's, which a game without a screen — a test, a replaying server — reads the same way.

Classes

AccessibilitySection
What a player cannot play without: the camera's motion, a correction for their colour vision, the high-contrast look, and sprinting that latches.
ActionBindingsSection
The controls part of a settings screen, over an ActionMap: every rebindable action the game declares, of every kind, with what it is bound to, a way to move it, and the shaping of its analogue sources.
ColorsSection
The colours the game gives meanings to, each a row the player can change.
ConsentsSection
The questions about the player's data: cloud saves, and sending runs.
ControlsSection
The controls: an ActionBindingsSection over the map the game's devices read, with defaults for the day a player wants the shipped ones back.
GamepadSection
The gamepad's dead zone and look speed, saying when no pad is connected.
MouseSection
The mouse's look speed and its vertical invert.
PrivacySection
The two questions about the player's data, in the settings panel: may the run be kept in the cloud, and may the runs they play be sent to see where levels are hard. Both off until the player turns one on — see Consents.
RebindRequest
What ActionBindingsSection.onRebind is asked: start listening for action's new control (or for part of it, on a composite), or stop.
SettingsOverlay
The gear, and the panel it opens. The mouse twin of settingsKeys.
SettingsPanel
The settings, over the top of the paused game: a heading, sections one under another, a line when the last save was refused, and the way back.
SettingsSection
One part of a settings screen: a heading and the rows under it, over a GameSettingsController.
SettingsSectionContext
What SettingsSection.build is handed.
TuningChange
What ActionBindingsSection.onTuning is asked: shape action's analogue bindings on device with settings.
VolumesSection
A volume slider per bus.
WidgetSection
A widget of the game's own as a section: what it owes the people whose work it ships (a CreditsSection, since what a credit is differs per game), or a row nothing here offers.

Functions

askWhichRun(BuildContext context, SyncReport asked) → Future<bool?>
Asks which of two runs to keep when this device and the cloud each have one, equally far along — SyncOutcome.ask — and answers whether to keep this device's, or null when the player put the question off.
syncBeforeBegin(BuildContext context, SaveSync? sync) → Future<String?>
Brings sync's two copies of the run together before it begins, and asks the player which to keep when the two are different runs equally far along. Answers what happened, in a sentence, or null when there is no cloud to sync with — a GameCloud with no server has no sync. Nothing is sent unless the player turned cloud saves on — see SaveSync.