App<T extends App<T>> class

Inheritance
Mixed-in types

Constructors

App(UnhingedBackend backend, {bool populateDefaults = true})

Properties

app → T
no setteroverride
backend UnhingedBackend
Shorthand for App.backend.
final
currentScene Scene<T>
no setterinherited
defaultFont FontD
getter/setter pair
draw Drawers<T>
Shorthand for App.draw.
getter/setter pairoverride-getter
eventHistory List<Event<T>>
no setterinherited
eventHistoryRetention double?
How long (in sim-scaled seconds) to retain events before pruning. Null = keep forever.
no setterinherited
exitApp bool
getter/setter pair
factories ECSFactoryRegistry<T>
latefinal
hashCode int
The hash code for this object.
no setterinherited
id int
Per-type unique identifier, auto-assigned in the constructor.
no setterinherited
input InputSystem<T>
Shorthand for App.input.
getter/setter pairoverride-getter
isClonable bool
Check this before calling clone: if (obj.isClonable) obj.clone();
no setterinherited
isClone bool
Whether this object is a clone of another.
getter/setter pairinherited
isCloned bool
Whether this object has been cloned at least once.
getter/setter pairinherited
isCloning bool
Whether this object is currently mid-clone.
getter/setter pairinherited
isOriginal bool
Whether this object is an original (not a clone).
no setterinherited
name String
Human-readable name, defaults to <runtimeType>_<id>.
getter/setter pairinherited
namedId String
Per-type unique String identifier, auto-assigned in the constructor. Defaults to <runtimeType>_<id>.
no setterinherited
parent ECSBase<T>?
The parent object in the ECS tree, if any.
getter/setter pairinherited
persistentId String
getter/setter pairinherited
persistentTypeId String
no setteroverride
populateDefaults bool
getter/setter pairinherited
renderer Renderer<T>
Shorthand for App.renderer.
getter/setter pairoverride-getter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scene Scene<T>
Shorthand for App.currentScene.
no setterinherited
sceneBounds Bounds
no setterinherited
sceneHeight double
no setterinherited
sceneSize Vector2D
no setterinherited
sceneWidth double
no setterinherited
screenHeight double
Shorthand for App's height.
no setterinherited
screenSize Vector2D
Shorthand for App.screenSize.
no setteroverride
screenWidth double
Shorthand for App's width.
no setterinherited
self → T
This object cast to T.
no setterinherited
shouldAppExit bool
no setter
time AppTime<T>
Shorthand for App.time.
getter/setter pairoverride-getter

Methods

addScene(Scene<T> scene) → T
inherited
addSystem<S extends AppSystem<T>>(S system) → void
inherited
bookmarkState(String name) AppSnapshot<T>
inherited
callback(void callback()) → void
inherited
captureSnapshot() AppSnapshot<T>
override
captureSnapshotAs<X extends S>() → X
inherited
clearEventHistory() → void
Clears history of recorded events.
inherited
clearEventQueue() → void
Clears event queue.
inherited
clone<X extends E>([AppCloner<T>? cloner]) → X
Produces a clone of this object.
inherited
cloneInto<X extends E>(X target, [AppCloner<T>? cloner]) → X
inherited
createClone(T newInstance, [AppCloner<T>? cloner]) → T
Override to customize how state is copied into newInstance.
inherited
createInstance() → T
Override to provide a fresh uninitialized instance of this type.
override
createSnapshot() AppSnapshot<T>
override
decVar<V extends num>(VarKey<V> key, [V? amount]) → V
inherited
dispatch(Event<T> event, {EventScope scope = .local}) → void
Dispatches an event immediately and synchronously, bypassing the central event queue.
inherited
emit(Event<T> event, {EventScope scope = .local}) → void
Queues an event into the central application event queue for asynchronous processing.
inherited
exchangeSystems<A extends SceneSystem<T>, B extends SceneSystem<T>>() → void
Exchanges the positions of the first found system of type A with the first found system of type B. No-op if either type is not found.
inherited
exit() → void
frame() → void
getAncestors() Iterable<ECSBase<T>>
Returns every ancestor of this component, from immediate parent up to the root.
inherited
getClones() Iterable<T>
Returns all clones produced from this object.
inherited
getDepth() int
Returns the depth/level in the hierarchy.
inherited
getOrSetVar<V>(VarKey<V> key, V fallback) → V
inherited
getParentAs<P extends ECSBase<T>>() → P?
Returns parent cast to P, or null if the cast would fail.
inherited
getPath() List<ECSBase<T>>
Returns the path from the root down to this one, inclusive.
inherited
getPersistableData({bool force = false}) MapData
override
getRecordedEvents({double? duration, ECSBase<T>? origin, bool filter(Event<T> event)?}) List<Event<T>>
Events dispatched within the last duration sim-scaled seconds, optionally filtered to a specific origin.
inherited
getScene<S extends Scene<T>>() → S?
inherited
getSceneByKey<S extends Scene<T>>(String key) → S?
inherited
getScenes() Iterable<Scene<T>>
inherited
getSystem<S extends AppSystem<T>>() → S?
inherited
getSystems() Iterable<AppSystem<T>>
inherited
getVar<V>(VarKey<V> key) → V?
inherited
getVarSafe<V>(VarKey<V> key, V fallback) → V
inherited
hasParentOf<P extends ECSBase<T>>() bool
Whether parent is of type P.
inherited
hasSystem<S extends AppSystem<T>>() bool
inherited
hasSystemByType(Type type) bool
inherited
hasVar(VarKey key) bool
inherited
incVar<V extends num>(VarKey<V> key, [V? amount]) → V
inherited
init() → void
listenHandleInput(void fn(T self)) → T
Registers fn to be called during the input handling phase.
inherited
listenOnAfterAppSystemAdd(void fn(T self, AppSystem<T> system)) → T
Registers fn as an after-add listener.
inherited
listenOnAfterAppSystemRemove(void fn(T self, AppSystem<T> system)) → T
Registers fn as an after-remove listener.
inherited
listenOnAfterClone(void fn(T copy, [AppCloner<T>? cloner])) → T
Registers fn as an after-clone listener.
inherited
listenOnAfterSceneAdd(void fn(T self, Scene<T> scene)) → T
Registers fn as an after-add listener.
inherited
listenOnAfterSceneEnter(void fn(T self, Scene<T> scene)) → T
Registers fn as an after-enter listener.
inherited
listenOnAfterSceneLeave(void fn(T self, Scene<T> scene)) → T
Registers fn as an after-leave listener.
inherited
listenOnAfterSceneRemove(void fn(T self, Scene<T> scene)) → T
Registers fn as an after-remove listener.
inherited
listenOnAfterSceneTransition(void fn(T self, Scene<T> from, Scene<T> to)) → T
Registers fn as an after-transition listener.
inherited
listenOnAppSystemAdd(void fn(T self, AppSystem<T> system)) → T
Registers fn as an add listener.
inherited
listenOnAppSystemRemove(void fn(T self, AppSystem<T> system)) → T
Registers fn as a remove listener.
inherited
listenOnBeforeAppSystemAdd(bool fn(T self, AppSystem<T> system)) → T
Registers fn as a before-add listener.
inherited
listenOnBeforeAppSystemRemove(bool fn(T self, AppSystem<T> system)) → T
Registers fn as a before-remove listener.
inherited
listenOnBeforeClone(bool fn(T copy, [AppCloner<T>? cloner])) → T
Registers fn as a before-clone listener.
inherited
listenOnBeforeEvent(bool fn(T self, Event<T> event)) → T
Registers fn as a before-event listener.
inherited
listenOnBeforeEventRecorded(bool fn(T self, Event<T> event)) → T
Registers fn as a before-event-record listener.
inherited
listenOnBeforeSceneAdd(bool fn(T self, Scene<T> scene)) → T
Registers fn as a before-add listener.
inherited
listenOnBeforeSceneEnter(bool fn(T self, Scene<T> scene)) → T
Registers fn as a before-enter listener.
inherited
listenOnBeforeSceneLeave(bool fn(T self, Scene<T> scene)) → T
Registers fn as a before-leave listener.
inherited
listenOnBeforeSceneRemove(bool fn(T self, Scene<T> scene)) → T
Registers fn as a before-remove listener.
inherited
listenOnBeforeSceneTransition(bool fn(T self, Scene<T> from, Scene<T> to)) → T
Registers fn as a before-transition listener.
inherited
listenOnBeforeStorePersistable(bool fn(T self)) → T
Registers fn as a before-persistence listener.
inherited
listenOnBeginFrame(void fn(T self, double dt)) → T
Registers fn to be called at the start of each frame.
inherited
listenOnClone(void fn(T copy, [AppCloner<T>? cloner])) → T
Registers fn as a clone listener.
inherited
listenOnDispose(void fn(T self)) → T
Registers fn to be called at the disposal of the owned ECS object.
inherited
listenOnEndFrame(void fn(T self, double dt)) → T
Registers fn to be called at the end of each frame.
inherited
listenOnEvent(void fn(T self, Event<T> event)) → T
Registers fn to be called for every incoming event.
inherited
listenOnEventRecorded(void fn(T self, Event<T> event)) → T
Registers fn to be called for every event recorded.
inherited
listenOnExit(void fn(T self)) → T
inherited
listenOnFPSChange(void fn(T self, int oldFps, int newFps)) → T
listenOnFrame(void fn(T self, double dt, int frame)) → T
listenOnInit(void fn(T self)) → T
listenOnSceneAdd(void fn(T self, Scene<T> scene)) → T
Registers fn as an add listener.
inherited
listenOnSceneEnter(void fn(T self, Scene<T> scene)) → T
Registers fn as an enter listener.
inherited
listenOnSceneLeave(void fn(T self, Scene<T> scene)) → T
Registers fn as a leave listener.
inherited
listenOnSceneRemove(void fn(T self, Scene<T> scene)) → T
Registers fn as a remove listener.
inherited
listenOnSceneTransition(void fn(T self, Scene<T> from, Scene<T> to)) → T
Registers fn as a transition listener.
inherited
listenOnStorePersistable(MapData fn(T self, MapData data)) → T
Registers fn as an store persistable listener.
inherited
listenShouldExit(bool fn(T self)) → T
inherited
nextScene() → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onAfterAppSystemAdd(AppSystem<T> system) → void
Override to react after a system add has completed.
inherited
onAfterAppSystemRemove(AppSystem<T> system) → void
Override to react after a system remove has completed.
inherited
onAfterClone(T copy, [AppCloner<T>? cloner]) → void
Override to react after cloning has completed.
inherited
onAfterSceneAdd(Scene<T> scene) → void
Override to react after a scene add has completed.
inherited
onAfterSceneEnter(Scene<T> scene) → void
Override to react after a scene enter has completed.
inherited
onAfterSceneLeave(Scene<T> scene) → void
Override to react after a scene leave has completed.
inherited
onAfterSceneRemove(Scene<T> scene) → void
Override to react after a scene remove has completed.
inherited
onAfterSceneTransition(Scene<T> from, Scene<T> to) → void
Override to react after a scene transition has completed.
inherited
onAppSystemAdd(AppSystem<T> system) → void
Override to react when a system add is about to complete.
inherited
onAppSystemRemove(AppSystem<T> system) → void
Override to react when a system remove is about to complete.
inherited
onBeforeAppSystemAdd(AppSystem<T> system) bool
Override to cancel a system add from within the class.
inherited
onBeforeAppSystemRemove(AppSystem<T> system) bool
Override to cancel a system remove from within the class.
inherited
onBeforeClone(T copy, [AppCloner<T>? cloner]) bool
Override to cancel cloning from within the class.
inherited
onBeforeEvent(Event<T> event) bool
Override to cancel an event handling from within the class.
inherited
onBeforeEventRecorded(Event<T> event) bool
Override to cancel an event handling from within the class.
inherited
onBeforeSceneAdd(Scene<T> scene) bool
Override to cancel a scene add from within the class.
inherited
onBeforeSceneEnter(Scene<T> scene) bool
Override to cancel a scene enter from within the class.
inherited
onBeforeSceneLeave(Scene<T> scene) bool
Override to cancel a scene leave from within the class.
inherited
onBeforeSceneRemove(Scene<T> scene) bool
Override to cancel a scene remove from within the class.
inherited
onBeforeSceneTransition(Scene<T> from, Scene<T> to) bool
Override to cancel a scene transition from within the class.
inherited
onBeforeStorePersistable() bool
Override to cancel the persistence from within the class.
inherited
onBeginFrame(double dt) → void
Override to react at the start of each frame.
inherited
onClone(T copy, [AppCloner<T>? cloner]) → void
Override to react when cloning is about to complete.
inherited
onCloned(T original) → void
Called on the copy after cloning completes, with a reference to original.
inherited
onDispose() → void
Override to react at the disposal.
inherited
onEndFrame(double dt) → void
Override to react at the end of each frame.
inherited
onEvent(Event<T> event) → void
Override to handle incoming events within the class.
inherited
onEventRecorded(Event<T> event) → void
Override to handle incoming events within the class.
inherited
onExit() → void
inherited
onFPSChange(int oldFPS, int newFPS) → void
onFrame(double dt, int frame) → void
onInit() → void
onInput() → void
Override to handle input within the class.
inherited
onRestorePersistableData(MapTraversable data, {String? id}) → void
Override to react during the restoration of persistable data.
inherited
onSceneAdd(Scene<T> scene) → void
Override to react when a scene add is about to complete.
inherited
onSceneEnter(Scene<T> scene) → void
Override to react when a scene enter is about to complete.
inherited
onSceneLeave(Scene<T> scene) → void
Override to react when a scene leave is about to complete.
inherited
onSceneRemove(Scene<T> scene) → void
Override to react when a scene remove is about to complete.
inherited
onSceneTransition(Scene<T> from, Scene<T> to) → void
Override to react when a scene transition is about to complete.
inherited
onSelf(void fn(T self)) → T
Calls fn with self and returns self, for fluent chaining.
inherited
onStorePersistable(MapData data) MapData
Override to react when the persistence is about to complete.
inherited
persistAutoLoad({int? slot}) → void
inherited
persistAutoSave({required double interval, required int slots}) AppSnapshot<T>?
inherited
previousScene() → void
inherited
processQueuedEventsForTest() bool
Synchronously drains the pending event queue.
inherited
relocateSystem<S extends SceneSystem<T>>(int index) → void
Moves the first found system of type S to the specified index. No-op if no system of type S is found. Clamps index to the valid range of the list.
inherited
removeScene(Scene<T> scene) → T
inherited
removeSystem<S extends AppSystem<T>>() → T
inherited
removeSystemByType(Type type) → T
inherited
replaceScene(Scene<T> scene) → T
Replaces the first scene whose runtimeType == scene.runtimeType with scene.
inherited
replaceSystem(AppSystem<T> system) → T
Replaces the first app system whose runtimeType == system.runtimeType with system.
inherited
replayRecordedEvents({double? fromTime, ECSBase<T>? origin, bool filter(Event<T> event)?}) → void
Re-dispatches events from fromTime sim-scaled seconds ago to now.
inherited
restoreBookmarkedState(String name, {SnapshotMissingPolicy onMissing = .skip, SnapshotExtraPolicy onExtra = .keep}) → void
inherited
restorePersistableData(MapTraversable data, {String? id}) → void
override
restoreSnapshot(covariant AppSnapshot<T> snapshot) → void
override
run(Task<T> task) → void
inherited
setScene(Scene<T> scene) → void
inherited
setSceneByIndex(int index) → void
inherited
setSceneByKey(String key) → void
inherited
setVar<V>(VarKey<V> key, V value) → T
inherited
shouldExit() bool
inherited
storePersistable() MapData?
inherited
swapScene(Scene<T> oldScene, Scene<T> newScene) → void
inherited
swapSystem<A extends AppSystem<T>>(AppSystem<T> newS) → void
inherited
swapSystemByType<B extends AppSystem<T>>(Type type, B newS) → void
inherited
task(Task<T> task) → void
inherited
toString() String
A string representation of this object.
inherited
uniqKey(String key) String
Returns a key namespaced to this object's namedId.
inherited
whenClone(T fn(T newInstance, [AppCloner<T>? cloner])) → T
Registers fn as the clone factory, replacing the default clone behavior.
inherited
whenCloned(T fn(T self, T copy)) → T
Registers fn to run after the clone is produced.
inherited
whenCreateInstance(T fn(T self)) → T
Registers fn as the instance factory used during cloning.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

typeId → const String