@Override protected void initialize() { LinkCreateListener listener = new LinkCreateListener(this); world.getComponentManager().getTypeFactory().register(listener); }
@Override protected void initialize() { LinkCreateListener listener = new LinkCreateListener(this); world.getComponentManager().getTypeFactory().register(listener); }
public <T extends Component> M<T> getFor(Class<T> type) { ComponentTypeFactory tf = world.getComponentManager().getTypeFactory(); return getCreateMapper(tf.getTypeFor(type)); }
public <T extends Component> M<T> getFor(Class<T> type) { ComponentTypeFactory tf = world.getComponentManager().getTypeFactory(); return getCreateMapper(tf.getTypeFor(type)); }
/** * <p>Injects and associates the listener with a specific field for a given * component type.</p> * * <p>Each <code>ComponentType::Field</code> pair can only have one {@link LinkListener}</p> * * @param component component type associated with listener * @param field target field for listener * @param listener link listener */ public void register(Class<? extends Component> component, String field, LinkListener listener) { world.inject(listener); try { Field f = (field != null) ? ClassReflection.getDeclaredField(component, field) : null; ComponentType ct = world.getComponentManager().getTypeFactory().getTypeFor(component); for (LinkSite site : linkSites) { if (ct.equals(site.type) && (f == null || site.field.equals(f))) { site.listener = listener; if (!decoratedLinkSites.contains(site)) decoratedLinkSites.add(site); if (fireEventsOnRegistration) site.inserted(site.subscription.getEntities()); } } } catch (ReflectionException e) { throw new RuntimeException(e); } }
/** * <p>Injects and associates the listener with a specific field for a given * component type.</p> * * <p>Each <code>ComponentType::Field</code> pair can only have one {@link LinkListener}</p> * * @param component component type associated with listener * @param field target field for listener * @param listener link listener */ public void register(Class<? extends Component> component, String field, LinkListener listener) { world.inject(listener); try { Field f = (field != null) ? ClassReflection.getDeclaredField(component, field) : null; ComponentType ct = world.getComponentManager().getTypeFactory().getTypeFor(component); for (LinkSite site : linkSites) { if (ct.equals(site.type) && (f == null || site.field.equals(f))) { site.listener = listener; if (!decoratedLinkSites.contains(site)) decoratedLinkSites.add(site); if (fireEventsOnRegistration) site.inserted(site.subscription.getEntities()); } } } catch (ReflectionException e) { throw new RuntimeException(e); } }
int allocateIdentity(BitVector componentBits, ComponentManager cm) { Bag<ComponentMapper> mappers = new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality()); ComponentTypeFactory tf = cm.getTypeFactory(); for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) { mappers.add(cm.getMapper(tf.getTypeFor(i).getType())); } compositionMappers.add(mappers); compositionBits.add(new BitVector(componentBits)); return compositionBits.size() - 1; } }
int allocateIdentity(BitVector componentBits, ComponentManager cm) { Bag<ComponentMapper> mappers = new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality()); ComponentTypeFactory tf = cm.getTypeFactory(); for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) { mappers.add(cm.getMapper(tf.getTypeFor(i).getType())); } compositionMappers.add(mappers); compositionBits.add(new BitVector(componentBits)); return compositionBits.size() - 1; } }
int allocateIdentity(BitVector componentBits, ComponentManager cm) { Bag<ComponentMapper> mappers = new Bag<ComponentMapper>(ComponentMapper.class, componentBits.cardinality()); ComponentTypeFactory tf = cm.getTypeFactory(); for (int i = componentBits.nextSetBit(0); i >= 0; i = componentBits.nextSetBit(i + 1)) { mappers.add(cm.getMapper(tf.getTypeFor(i).getType())); } compositionMappers.add(mappers); compositionBits.add(new BitVector(componentBits)); return compositionBits.size() - 1; } }