ComponentMapper<A extends Component> class
High performance component retrieval from entities. Use this wherever you need to retrieve components from entities often and fast.
class ComponentMapper<A extends Component> { ComponentType _type; Bag<Component> _components; ComponentMapper(Type componentType, World world) { this._type = ComponentTypeManager.getTypeFor(componentType); _components = world.componentManager.getComponentsByType(this._type); } /** * Fast but unsafe retrieval of a component for this entity. * No bounding checks, so this could throw an ArrayIndexOutOfBoundsExeption, * however in most scenarios you already know the entity possesses this component. */ A get(Entity e) => _components[e.id] as A; /** * Fast and safe retrieval of a component for this entity. * If the entity does not have this component then null is returned. */ A getSafe(Entity e) { if(_components.isIndexWithinBounds(e.id)) { return _components[e.id] as A; } return null; } /** * Checks if the entity has this type of component. */ bool has(Entity e) => getSafe(e) != null; }
Constructors
Methods
A get(Entity e) #
Fast but unsafe retrieval of a component for this entity. No bounding checks, so this could throw an ArrayIndexOutOfBoundsExeption, however in most scenarios you already know the entity possesses this component.
A get(Entity e) => _components[e.id] as A;