Search in sources :

Example 1 with NetEntityRefTypeHandler

use of org.terasology.engine.network.serialization.NetEntityRefTypeHandler in project Terasology by MovingBlocks.

the class NetworkSystemImpl method connectToEntitySystem.

@Override
public void connectToEntitySystem(EngineEntityManager newEntityManager, EventLibrary newEventLibrary, BlockEntityRegistry blockEntityRegistry) {
    if (this.entityManager != null) {
        this.entityManager.unsubscribe(this);
    }
    this.entityManager = newEntityManager;
    this.entityManager.subscribeForChanges(this);
    this.blockManager = context.get(BlockManager.class);
    this.ownershipHelper = new OwnershipHelper(newEntityManager.getComponentLibrary());
    this.storageManager = context.get(StorageManager.class);
    this.eventLibrary = newEventLibrary;
    this.componentLibrary = entityManager.getComponentLibrary();
    context.get(ComponentSystemManager.class).register(new NetworkEntitySystem(this), "engine:networkEntitySystem");
    TypeHandlerLibrary typeHandlerLibrary = entityManager.getTypeSerializerLibrary().copy();
    typeHandlerLibrary.addTypeHandler(EntityRef.class, new NetEntityRefTypeHandler(this, blockEntityRegistry));
    // TODO: Add network override types here (that use id lookup tables)
    eventSerializer = new EventSerializer(eventLibrary, typeHandlerLibrary);
    entitySerializer = new NetworkEntitySerializer(newEntityManager, entityManager.getComponentLibrary(), typeHandlerLibrary);
    entitySerializer.setComponentSerializeCheck(new NetComponentSerializeCheck());
    if (mode == NetworkMode.CLIENT) {
        entityManager.setEntityRefStrategy(new NetworkClientRefStrategy(this));
        applySerializationTables();
    }
    if (server != null) {
        server.connectToEntitySystem(newEntityManager, entitySerializer, eventSerializer, blockEntityRegistry);
    }
}
Also used : OwnershipHelper(org.terasology.engine.entitySystem.entity.internal.OwnershipHelper) BlockManager(org.terasology.engine.world.block.BlockManager) TypeHandlerLibrary(org.terasology.persistence.typeHandling.TypeHandlerLibrary) StorageManager(org.terasology.engine.persistence.StorageManager) NetworkEntitySerializer(org.terasology.engine.persistence.serializers.NetworkEntitySerializer) NetComponentSerializeCheck(org.terasology.engine.network.serialization.NetComponentSerializeCheck) NetEntityRefTypeHandler(org.terasology.engine.network.serialization.NetEntityRefTypeHandler) ComponentSystemManager(org.terasology.engine.core.ComponentSystemManager) EventSerializer(org.terasology.engine.persistence.serializers.EventSerializer)

Aggregations

ComponentSystemManager (org.terasology.engine.core.ComponentSystemManager)1 OwnershipHelper (org.terasology.engine.entitySystem.entity.internal.OwnershipHelper)1 NetComponentSerializeCheck (org.terasology.engine.network.serialization.NetComponentSerializeCheck)1 NetEntityRefTypeHandler (org.terasology.engine.network.serialization.NetEntityRefTypeHandler)1 StorageManager (org.terasology.engine.persistence.StorageManager)1 EventSerializer (org.terasology.engine.persistence.serializers.EventSerializer)1 NetworkEntitySerializer (org.terasology.engine.persistence.serializers.NetworkEntitySerializer)1 BlockManager (org.terasology.engine.world.block.BlockManager)1 TypeHandlerLibrary (org.terasology.persistence.typeHandling.TypeHandlerLibrary)1