refreshDefinitions method

void refreshDefinitions()

Puts every component definition in place again as the code now makes it: the engine's own, then each installed RefreshableExtension's, in install order. A project's deliberate replacement of a definition stays (see ComponentDefinitionRegistry.refresh).

For an editor, after a hot reload: definitions are built once at boot, so without this a field added to a component would not be seen until a restart. An extension that is not refreshable is left as installed. A game never calls this.

Implementation

void refreshDefinitions() {
  if (_withBuiltIns) refreshCoreCodecs(definitions);
  for (final extension in _installed.values) {
    if (extension is RefreshableExtension) extension.refresh(this);
  }
}