use of org.terasology.entitySystem.entity.EntityRef in project Terasology by MovingBlocks.
the class BaseInteractionScreen method getInteractionTarget.
protected EntityRef getInteractionTarget() {
EntityRef characterEntity = localPlayer.getCharacterEntity();
CharacterComponent characterComponent = characterEntity.getComponent(CharacterComponent.class);
return characterComponent.predictedInteractionTarget;
}
use of org.terasology.entitySystem.entity.EntityRef in project Terasology by MovingBlocks.
the class PlayerStoreBuilder method build.
public EntityData.PlayerStore build(EngineEntityManager entityManager) {
EntityData.PlayerStore.Builder playerEntityStore = EntityData.PlayerStore.newBuilder();
playerEntityStore.setCharacterPosX(relevanceLocation.x);
playerEntityStore.setCharacterPosY(relevanceLocation.y);
playerEntityStore.setCharacterPosZ(relevanceLocation.z);
playerEntityStore.setHasCharacter(characterEntityId != null);
if (characterEntityId != null) {
EntityRef character = entityManager.getEntity(characterEntityId);
EntityStorer storer = new EntityStorer(entityManager);
storer.store(character, PlayerStoreInternal.CHARACTER);
storedEntities = storer.getStoredEntities();
playerEntityStore.setStore(storer.finaliseStore());
} else {
storedEntities = Sets.newHashSet();
}
return playerEntityStore.build();
}
use of org.terasology.entitySystem.entity.EntityRef in project Terasology by MovingBlocks.
the class PlayerStoreInternal method restoreEntities.
@Override
public void restoreEntities() {
if (entityStore != null) {
EntityRestorer restorer = new EntityRestorer(entityManager);
Map<String, EntityRef> refMap = restorer.restore(entityStore);
EntityRef loadedCharacter = refMap.get(CHARACTER);
if (loadedCharacter != null) {
setCharacter(loadedCharacter);
}
entityStore = null;
}
}
use of org.terasology.entitySystem.entity.EntityRef in project Terasology by MovingBlocks.
the class SaveTransaction method preparePlayerStores.
/**
* @param unsavedEntities currently loaded persistent entities without owner that have not been saved yet.
* This method removes entities it saves.
*/
private void preparePlayerStores(Set<EntityRef> unsavedEntities) {
allPlayers = Maps.newHashMap();
allPlayers.putAll(unloadedPlayers);
for (Map.Entry<String, PlayerStoreBuilder> playerEntry : loadedPlayers.entrySet()) {
PlayerStoreBuilder playerStoreBuilder = playerEntry.getValue();
EntityData.PlayerStore playerStore = playerStoreBuilder.build(privateEntityManager);
unsavedEntities.removeAll(playerStoreBuilder.getStoredEntities());
Long characterEntityId = playerStoreBuilder.getCharacterEntityId();
if (characterEntityId != null) {
EntityRef character = privateEntityManager.getEntity(characterEntityId);
unsavedEntities.remove(character);
}
allPlayers.put(playerEntry.getKey(), playerStore);
}
}
use of org.terasology.entitySystem.entity.EntityRef in project Terasology by MovingBlocks.
the class SaveTransaction method prepareChunksPlayersAndGlobalStore.
private void prepareChunksPlayersAndGlobalStore() {
/**
* Currently loaded persistent entities without owner that have not been saved yet.
*/
Set<EntityRef> unsavedEntities = new HashSet<>();
for (EntityRef entity : privateEntityManager.getAllEntities()) {
if (entity.isPersistent()) {
unsavedEntities.add(entity);
}
}
preparePlayerStores(unsavedEntities);
prepareCompressedChunkBuilders(unsavedEntities);
this.globalStore = globalStoreBuilder.build(privateEntityManager, unsavedEntities);
}
Aggregations