/** Get component composition of entity. */ private Bag<ComponentMapper> componentMappers(int entityId) { int identityIndex = entityToIdentity.get(entityId); return identityResolver.compositionMappers.get(identityIndex); }
/** Get component composition of entity. */ private Bag<ComponentMapper> componentMappers(int entityId) { int identityIndex = entityToIdentity.get(entityId); return identityResolver.compositionMappers.get(identityIndex); }
/** * Get all components from all entities for a given type. * * @param type * the type of components to get * @return a bag containing all components of the given type */ protected Bag<Component> getComponentsByType(ComponentType type) { return mappers.get(type.getIndex()).components; }
/** * Get all components from all entities for a given type. * * @param type * the type of components to get * @return a bag containing all components of the given type */ protected Bag<Component> getComponentsByType(ComponentType type) { return mappers.get(type.getIndex()).components; }
/** Get component composition of entity. */ BitVector componentBits(int entityId) { int identityIndex = entityToIdentity.get(entityId); return identityResolver.compositionBits.get(identityIndex); }
EntityReference find(Class<?> componentType, String fieldName) { for (int i = 0, s = referenced.size(); s > i; i++) { EntityReference ref = referenced.get(i); if (ref.componentType.equals(componentType) && ref.field.getName().equals(fieldName)) return ref; } throw new RuntimeException( componentType.getSimpleName() + "." + fieldName); }
EntityReference find(Class<?> componentType, String fieldName) { for (int i = 0, s = referenced.size(); s > i; i++) { EntityReference ref = referenced.get(i); if (ref.componentType.equals(componentType) && ref.field.getName().equals(fieldName)) return ref; } throw new RuntimeException( componentType.getSimpleName() + "." + fieldName); }
void processComponentIdentity(int id, BitVector componentBits) { for (int i = 0, s = subscriptions.size(); s > i; i++) { subscriptions.get(i).processComponentIdentity(id, componentBits); } }
void processComponentIdentity(int id, BitVector componentBits) { for (int i = 0, s = subscriptions.size(); s > i; i++) { subscriptions.get(i).processComponentIdentity(id, componentBits); } }
private int getComponentCount(SaveFileFormat.ComponentIdentifiers identifiers) { int count = 0; for (int i = 0, s = components.size(); s > i; i++) { Component c = components.get(i); if (identifiers.isTransient(c.getClass())) continue; if (defaultValues.hasDefaultValues(c)) continue; count++; } return count; }
void translate(Component c, Field field, Bag<Entity> translatedIds) { try { Entity e = (Entity) field.get(c); if (e != null) { int oldId = e.getId(); field.set(c, translatedIds.get(oldId)); } } catch (ReflectionException e) { throw new RuntimeException(e); } } },
private Entity obtain() { if (limbo.isEmpty()) { return createEntity(nextId++); } else { int id = limbo.popFirst(); recycled.unsafeClear(id); return entities.get(id); } }
private void removeComponents(int entityId) { Bag<ComponentMapper> mappers = componentMappers(entityId); for (int i = 0, s = mappers.size(); s > i; i++) { mappers.get(i).internalRemove(entityId); } setIdentity(entityId, 0); }
@Override public void onCreated(ComponentType type) { Bag<LinkSite> links = linkFactory.create(type); if (links.isEmpty()) return; for (int i = 0, s = links.size(); s > i; i++) { elm.linkSites.add(links.get(i)); } } }
private Entity obtain() { if (limbo.isEmpty()) { return createEntity(nextId++); } else { int id = limbo.popFirst(); recycled.unsafeClear(id); return entities.get(id); } }
/** Fetch mapper, or create if missing. */ @SuppressWarnings("unchecked") private <T extends Component> M<T> getCreateMapper(ComponentType type) { final int index = type.getIndex(); mappers.ensureCapacity(index); M m = mappers.get(index); if (m == null) { m = setMapper(index, type.getType()); } return m; }
/** Converts java classes to component types. */ private ComponentType[] resolveTypes(World world) { ComponentTypeFactory tf = world.getComponentManager().typeFactory; ComponentType[] types = new ComponentType[classes.size()]; for (int i = 0, s = classes.size(); s > i; i++) types[i] = tf.getTypeFor(classes.get(i)); return types; } }
private void informListeners() { for (int i = 0, s = listeners.size(); s > i; i++) { SubscriptionListener listener = listeners.get(i); if (removed.size() > 0) listener.removed(removed); if (inserted.size() > 0) listener.inserted(inserted); } } }
@Override public void validate(int sourceId, Bag<Entity> entities, LinkListener listener) { for (int i = 0; entities.size() > i; i++) { Entity e = entities.get(i); if (!all.getActiveEntityIds().unsafeGet(e.getId())) { entities.remove(i--); if (listener != null) listener.onTargetDead(sourceId, e.getId()); } } }