@Override public int read(Component c, Field f) { Entity e = ((UniEntityLink) c).field; return (e != null) ? e.getId() : -1; }
private boolean updateReferenced(Entity e, BitVector referencedIds) { return (e != null) ? updateReferenced(e.getId(), referencedIds) : false; }
/** * Create or remove a component from an entity. * * Does nothing if already removed or created respectively. * * @param entity Entity to change. * @param value {@code true} to create component (if missing), {@code false} to remove (if exists). * @return the instance of the component, or {@code null} if removed. */ public A set(Entity entity, boolean value) { return set(entity.getId(), value); }
/** * Fast and safe retrieval of a component for this entity. * If the entity does not have this component then fallback is returned. * * @param entity Entity that should possess the component * @param fallback fallback component to return, or {@code null} to return null. * @return the instance of the component */ public A getSafe(Entity entity, A fallback) { return getSafe(entity.getId(), fallback); }
@Override public int read(Component c, Field f) { try { Entity e = (Entity) f.get(c); return (e != null) ? e.getId() : -1; } catch (ReflectionException exc) { throw new RuntimeException(exc); } }
/** * Create component for this entity. * Will avoid creation if component preexists. * * @param entity the entity that should possess the component * @return the instance of the component. */ public A create(Entity entity) { return create(entity.getId()); }
/** * Remove component from entity. * Does nothing if already removed. * * @param entity entity to remove. */ public void remove(Entity entity) { remove(entity.getId()); }
/** * Fast and safe retrieval of a component for this entity. * If the entity does not have this component then fallback is returned. * * @param entity Entity that should possess the component * @param fallback fallback component to return, or {@code null} to return null. * @return the instance of the component */ public A getSafe(Entity entity, A fallback) { return getSafe(entity.getId(), fallback); }
/** * Create or remove a component from an entity. * * Does nothing if already removed or created respectively. * * @param entity Entity to change. * @param value {@code true} to create component (if missing), {@code false} to remove (if exists). * @return the instance of the component, or {@code null} if removed. */ public A set(Entity entity, boolean value) { return mapper.set(entity.getId(), value); }
public UUID getUuid(Entity e) { UUID uuid = entityToUuid.safeGet(e.getId()); if (uuid == null) { uuid = UUID.randomUUID(); setUuid(e, uuid); } return uuid; }
/** * Create and return a new or reused entity instance. Entity is * automatically added to the world. * * @return entity * @see #create() recommended alternative. */ public Entity createEntity() { Entity e = em.createEntityInstance(); batchProcessor.changed.unsafeSet(e.getId()); return e; }
void translate(Component c, Field field, Bag<Entity> translatedIds) { try { int oldId = ((Integer)field.get(c)).intValue(); if (oldId != -1) field.set(c, translatedIds.get(oldId).getId()); } catch (ReflectionException e) { throw new RuntimeException(e); } } },
/** * Create and return a new or reused entity instance. Entity is * automatically added to the world. * * @return entity * @see #create() recommended alternative. */ public Entity createEntity() { Entity e = em.createEntityInstance(); batchProcessor.changed.unsafeSet(e.getId()); return e; }
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); } } },
@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()); } } }
@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()); } } }
void translate(Component c, Field field, Bag<Entity> translatedIds) { try { IntBag bag = (IntBag) field.get(c); for (int i = 0, s = bag.size(); s > i; i++) { int oldId = bag.get(i); bag.set(i, translatedIds.get(oldId).getId()); } } catch (ReflectionException e) { throw new RuntimeException(e); } } },