Search in sources :

Example 16 with EntityRef

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;
}
Also used : CharacterComponent(org.terasology.logic.characters.CharacterComponent) EntityRef(org.terasology.entitySystem.entity.EntityRef)

Example 17 with EntityRef

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();
}
Also used : EntityRef(org.terasology.entitySystem.entity.EntityRef)

Example 18 with EntityRef

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;
    }
}
Also used : EntityRef(org.terasology.entitySystem.entity.EntityRef)

Example 19 with EntityRef

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);
    }
}
Also used : EntityData(org.terasology.protobuf.EntityData) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) EntityRef(org.terasology.entitySystem.entity.EntityRef)

Example 20 with EntityRef

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);
}
Also used : EntityRef(org.terasology.entitySystem.entity.EntityRef) HashSet(java.util.HashSet)

Aggregations

EntityRef (org.terasology.entitySystem.entity.EntityRef)337 Test (org.junit.Test)106 ClientComponent (org.terasology.network.ClientComponent)49 LocationComponent (org.terasology.logic.location.LocationComponent)45 Vector3f (org.terasology.math.geom.Vector3f)44 ReceiveEvent (org.terasology.entitySystem.event.ReceiveEvent)36 Vector3i (org.terasology.math.geom.Vector3i)34 Command (org.terasology.logic.console.commandSystem.annotations.Command)28 StringComponent (org.terasology.entitySystem.stubs.StringComponent)26 NetworkComponent (org.terasology.network.NetworkComponent)21 EntityData (org.terasology.protobuf.EntityData)21 DisplayNameComponent (org.terasology.logic.common.DisplayNameComponent)17 Block (org.terasology.world.block.Block)16 Component (org.terasology.entitySystem.Component)15 EntityBuilder (org.terasology.entitySystem.entity.EntityBuilder)15 CharacterComponent (org.terasology.logic.characters.CharacterComponent)14 Quat4f (org.terasology.math.geom.Quat4f)14 BlockComponent (org.terasology.world.block.BlockComponent)13 Map (java.util.Map)11 LocalPlayer (org.terasology.logic.players.LocalPlayer)11