App class final
Runs a World through named schedules.
- Implemented types
- Available extensions
Constructors
- App({AccessConflictPolicy accessConflictPolicy = AccessConflictPolicy.warn, void onDiagnostic(String message)?, AppDiagnostics diagnostics = const AppDiagnostics()})
- Creates an app with the built-in schedules registered.
Properties
- accessConflictPolicy → AccessConflictPolicy
-
How the app reacts to access conflicts between unordered systems.
final
-
accessConflicts
→ List<
AccessConflict> -
Access conflicts detected across all schedules during start.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- onDiagnostic → void Function(String message)?
-
Optional sink for diagnostics (e.g. access-conflict warnings). When the
policy is AccessConflictPolicy.warn, each conflict is passed here.
final
- profiler → SystemProfiler?
-
The system profiler, or null when profiling is disabled. When enabled it is
also inserted as a
@Resource()so overlays/systems can read it.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- world → World
-
The ECS world this app operates on.
final
Methods
-
addCleanup(
FutureOr< void> cleanup()) → AppBuilder -
Registers cleanup to run once when the app shuts down.
override
-
addEvent<
T> ({int? retainedUpdates = 8}) → AppBuilder -
Registers an event channel for
T.override -
addPlugin(
Plugin plugin) → AppBuilder -
Builds
plugininto this app if it has not already been added.override -
addSchedule(
ScheduleLabel label) → void - Registers an additional, custom schedule. Must be called before start.
-
addState<
S extends Object> (S initial) → AppBuilder -
Registers state
Swithinitial.override -
addSystem(
SystemDescriptor descriptor, {required ScheduleLabel schedule, List< SystemDescriptor> after = const <SystemDescriptor>[], List<SystemDescriptor> before = const <SystemDescriptor>[], RunCondition? runIf, SystemSet? inSet}) → AppBuilder -
Registers
descriptorinschedule.override -
addSystemAdapter(
SystemAdapter adapter, {required ScheduleLabel schedule, required SystemLabel label, List< SystemLabel> after = const <SystemLabel>[], List<SystemLabel> before = const <SystemLabel>[], List<SystemLabel> independentOf = const <SystemLabel>[], RunCondition? runIf, SystemSet? inSet}) → AppBuilder -
Registers
adapterinschedule.override -
addSystems(
ScheduleLabel schedule, List< SystemDescriptor> descriptors, {RunCondition? runIf, SystemSet? inSet, bool chained = false}) → AppBuilder -
Available on AppBuilder, provided by the AppBuilderSystems extension
Registersdescriptorsinschedule. -
applyStateTransitions(
) → void - Applies pending state transitions for every registered state machine.
-
configureSets(
ScheduleLabel schedule, List< SystemSet> sets) → AppBuilder -
Orders
setswithinschedule.override -
insertResource<
T extends Object> (T resource) → AppBuilder -
Inserts
resource.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
replaceResource<
T extends Object> (T resource) → AppBuilder -
Replaces or inserts
resource.override -
runSchedule(
ScheduleLabel label) → void - Runs the named schedule, then flushes deferred commands.
-
shutdown(
) → Future< void> - Runs shutdown and disposes resources.
-
start(
{void onStartupFlushed()?}) → void -
Compiles and freezes all schedules, initializes every system adapter,
runs the Schedules.startup schedule once, then runs each state
machine's
OnEnter(initial). -
toString(
) → String -
A string representation of this object.
inherited
-
updateEvents(
) → void - Advances all event channels, reclaiming consumed events. Call once per frame at a safe boundary (typically frame start).
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- maxStateTransitionPasses → const int
- Chained-transition cap for one applyStateTransitions call.