settings library
The settings a player opens over a game: the panel, the overlay it sits in, and the sections it is made of.
- SettingsOverlay: the gear and the panel it opens, over the game.
- SettingsPanel: the panel alone, for a game that places it itself.
- SettingsSection and the standard ones — VolumesSection, ControlsSection, AccessibilitySection, ColorsSection, ConsentsSection, MouseSection, GamepadSection — with WidgetSection for a game's own rows.
- ActionBindingsSection: the rebinding list, which takes a key or a pad button, with what it asks for (RebindRequest, TuningChange).
- PrivacySection, askWhichRun and syncBeforeBegin: what a game asks before anything of the player's leaves the device.
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 — aGameCloudwith no server has nosync. Nothing is sent unless the player turned cloud saves on — seeSaveSync.