ready method
Ensure that all pending tree operations finish.
This is mainly intended for testing purposes: awaiting on this future ensures that the game is fully loaded, and that all pending operations of adding the components into the tree are fully materialized.
Warning: awaiting on a game that was not fully connected will result in an
infinite loop. For example, this could occur if you run x.add(y)
but
then forget to mount x
into the game.
Implementation
Future<void> ready() async {
var repeat = true;
while (repeat) {
// Give chance to other futures to execute first
await Future<void>.delayed(Duration.zero);
repeat = false;
processLifecycleEvents();
repeat |= hasLifecycleEvents;
}
}