ComponentProvider class
class ComponentProvider { static int _cnt = -1000000; static alwaysNewId() => _cnt++; static nullId() => null; /// Type of the provided Component final ComponentType type; final CreateComponent createComponent; final ComponentProviderId id; /** * Creates a new [ComponentProvider]. * * The [createComponent] alsways has to create a [Component] that is returned * using the factory constructor of that [Component]. Do not return the same * instance for multiple calls, because it will be added to [FreeComponents] * when it gets removed from the entity on a state change. */ ComponentProvider(Type ctype, this.createComponent, [this.id = nullId]) : type = ComponentTypeManager.getTypeFor(ctype); }
Static Methods
dynamic alwaysNewId() #
static alwaysNewId() => _cnt++;
dynamic nullId() #
static nullId() => null;
Constructors
new ComponentProvider(Type ctype, CreateComponent createComponent, [ComponentProviderId id = nullId]) #
Creates a new ComponentProvider.
The
createComponent alsways has to create a Component
that is returned
using the factory constructor of that Component
. Do not return the same
instance for multiple calls, because it will be added to FreeComponents
when it gets removed from the entity on a state change.
ComponentProvider(Type ctype, this.createComponent, [this.id = nullId]) : type = ComponentTypeManager.getTypeFor(ctype);
Properties
final CreateComponent createComponent #
final CreateComponent createComponent
final ComponentProviderId id #
final ComponentProviderId id
final ComponentType type #
Type of the provided Component
final ComponentType type