private EntityDelta getOrCreateEntityDeltaFor(EntityRef entity) { long id = entity.getId(); EntityDelta entityDelta = entityDeltas.get(id); if (entityDelta == null) { entityDelta = new EntityDelta(); entityDeltas.put(id, entityDelta); } return entityDelta; }
public void onEntityComponentRemoved(EntityRef entity, Class<? extends Component> component) { if (entity.isPersistent()) { EntityDelta entityDelta = getOrCreateEntityDeltaFor(entity); entityDelta.removeComponent(component); } }
public void onReactivation(EntityRef entity, Collection<Component> components) { if (entity.isPersistent()) { EntityDelta entityDelta = getOrCreateEntityDeltaFor(entity); for (Component component : components) { Component componentSnapshot = componentLibrary.copy(component); entityDelta.setChangedComponent(componentSnapshot); } } }
if (privateEntityManager.isActiveEntity(entityId)) { EntityRef entity = privateEntityManager.getEntity(entityId); for (Component changedComponent : delta.getChangedComponents().values()) { entity.removeComponent(changedComponent.getClass()); entity.addComponent(changedComponent); delta.getRemovedComponents().forEach(entity::removeComponent); } else { privateEntityManager.createEntityWithId(entityId, delta.getChangedComponents().values());
public void onEntityComponentChange(EntityRef entity, Class<? extends Component> componentClass) { if (entity.isPersistent()) { EntityDelta entityDelta = getOrCreateEntityDeltaFor(entity); Component component = entity.getComponent(componentClass); Component componentSnapshot = componentLibrary.copy(component); entityDelta.setChangedComponent(componentSnapshot); } }