public void SkipComponentDataUpdate(uint componentType, Coherence.Replication.Protocol.Definition.IInBitStream inProtocolStream)
        {
            switch (componentType)
            {
            case TypeIds.InternalWorldPosition:
                DeserializeWorldPosition(inProtocolStream);
                break;

            case TypeIds.InternalWorldOrientation:
                DeserializeWorldOrientation(inProtocolStream);
                break;

            case TypeIds.InternalLocalUser:
                DeserializeLocalUser(inProtocolStream);
                break;

            case TypeIds.InternalWorldPositionQuery:
                DeserializeWorldPositionQuery(inProtocolStream);
                break;

            case TypeIds.InternalArchetypeComponent:
                DeserializeArchetypeComponent(inProtocolStream);
                break;

            case TypeIds.InternalPersistence:
                DeserializePersistence(inProtocolStream);
                break;

            case TypeIds.InternalPlayer:
                DeserializePlayer(inProtocolStream);
                break;
            }
        }
Esempio n. 2
0
        public void PerformEvent(EntityManager mgr, Entity entity, uint eventTypeID,
                                 Coherence.Replication.Protocol.Definition.IInBitStream bitStream)
        {
            switch (eventTypeID)
            {
            case TypeIds.InternalTransferAction:
            {
                // Field 'TransferAction'
                var eventData = new TransferAction();
                messageDeserializers.TransferAction(bitStream, ref eventData);

                if (!mgr.HasComponent <Simulated>(entity))
                {
                    // Only add events on Entities we don't own
                    // UnityEngine.Debug.Log($"Adding an event on {entity}: {eventData}");
                    mgr.AddComponentData(entity, eventData);
                }
                break;
            }
            }
        }
Esempio n. 3
0
        public void PerformEvent(EntityManager mgr, Entity entity, uint eventTypeID,
                                 Coherence.Replication.Protocol.Definition.IInBitStream bitStream)
        {
            switch (eventTypeID)
            {
            case TypeIds.InternalTransferAction:
            {
                var eventData = new TransferAction();
                messageDeserializers.TransferAction(bitStream, ref eventData);

                // Only add events on Entities we don't own
                if (!mgr.HasComponent <Simulated>(entity))
                {
                    if (!mgr.HasComponent <TransferAction>(entity))
                    {
                        mgr.AddBuffer <TransferAction>(entity);
                    }
                    var buffer = mgr.GetBuffer <TransferAction>(entity);
                    buffer.Add(eventData);
                }
                break;
            }
            }
        }
        private void DeserializeLocalUser(EntityManager entityManager, Entity entity, bool componentOwnership, AbsoluteSimulationFrame simulationFrame, Coherence.Replication.Protocol.Definition.IInBitStream protocolStream, bool justCreated, IInBitStream bitStream)
        {
            // If we own the entity, don't overwrite with downstream data from server
            // TODO: Server should never send downstream to the simulating client
            if (componentOwnership)
            {
                // Read and discard data (the stream must always be read)
                var temp = new LocalUser();
                unityReaders.Read(ref temp, protocolStream);
                return;
            }


            // Overwrite components that don't use interpolation
            var componentData = entityManager.GetComponentData <LocalUser>(entity);

            unityReaders.Read(ref componentData, protocolStream);
            entityManager.SetComponentData(entity, componentData);
        }
        private void DeserializeWorldOrientation(EntityManager entityManager, Entity entity, bool componentOwnership, AbsoluteSimulationFrame simulationFrame, Coherence.Replication.Protocol.Definition.IInBitStream protocolStream, bool justCreated, IInBitStream bitStream)
        {
            // If we own the entity, don't overwrite with downstream data from server
            // TODO: Server should never send downstream to the simulating client
            if (componentOwnership)
            {
                // Read and discard data (the stream must always be read)
                var temp = new Rotation();
                unityReaders.Read(ref temp, protocolStream);
                return;
            }


            // Ensure entities with interpolation also have Interpolation components and Sample components
            if (!entityManager.HasComponent <InterpolationComponent_Rotation>(entity))
            {
                entityManager.AddComponent <InterpolationComponent_Rotation>(entity);
                entityManager.AddComponent <Sample_Rotation>(entity);
            }

            // Append buffer for components that use interpolation
            var tempComponentData = new Rotation();

            unityReaders.Read(ref tempComponentData, protocolStream);
            if (justCreated)             // Hack
            {
                entityManager.SetComponentData(entity, tempComponentData);
            }
            InterpolationSystem_Rotation.AppendBuffer(entity, tempComponentData, entityManager.World, (ulong)simulationFrame.Frame);
        }
 private void DeserializePlayer(EntityManager entityManager, Entity entity, bool componentOwnership, AbsoluteSimulationFrame simulationFrame, Coherence.Replication.Protocol.Definition.IInBitStream protocolStream, bool justCreated, IInBitStream bitStream)
 {
     // No need to read empty components, just ensure that it's there
     if (!entityManager.HasComponent <Player>(entity))
     {
         entityManager.AddComponent <Player>(entity);
     }
 }
 public void PerformInput(EntityManager mgr, Entity entity, uint inputTypeID, Coherence.Replication.Protocol.Definition.IInBitStream bitStream)
 {
 }
Esempio n. 8
0
        private void DeserializeGenericFieldInt2(Coherence.Replication.Protocol.Definition.IInBitStream protocolStream)
        {
            var ignored = new GenericFieldInt2();

            unityReaders.Read(ref ignored, protocolStream);
        }
Esempio n. 9
0
 public void DeserializeAndSkipComponent(uint componentTypeId, Coherence.Replication.Protocol.Definition.IInBitStream protocolOutStream)
 {
     deserializeComponentUpdateSkipGenerated.SkipComponentDataUpdate(componentTypeId, protocolOutStream);
 }
Esempio n. 10
0
        private void DeserializeConnectedEntity(Coherence.Replication.Protocol.Definition.IInBitStream protocolStream)
        {
            var ignored = new ConnectedEntity();

            unityReaders.Read(ref ignored, protocolStream);
        }
Esempio n. 11
0
        private void DeserializePersistence(Coherence.Replication.Protocol.Definition.IInBitStream protocolStream)
        {
            var ignored = new Persistence();

            unityReaders.Read(ref ignored, protocolStream);
        }
Esempio n. 12
0
        private void DeserializeArchetypeComponent(Coherence.Replication.Protocol.Definition.IInBitStream protocolStream)
        {
            var ignored = new ArchetypeComponent();

            unityReaders.Read(ref ignored, protocolStream);
        }
Esempio n. 13
0
        public void SkipComponentDataUpdate(uint componentType, Coherence.Replication.Protocol.Definition.IInBitStream inProtocolStream)
        {
            switch (componentType)
            {
            case TypeIds.InternalWorldPosition:
                DeserializeWorldPosition(inProtocolStream);
                break;

            case TypeIds.InternalWorldOrientation:
                DeserializeWorldOrientation(inProtocolStream);
                break;

            case TypeIds.InternalLocalUser:
                DeserializeLocalUser(inProtocolStream);
                break;

            case TypeIds.InternalWorldPositionQuery:
                DeserializeWorldPositionQuery(inProtocolStream);
                break;

            case TypeIds.InternalArchetypeComponent:
                DeserializeArchetypeComponent(inProtocolStream);
                break;

            case TypeIds.InternalPersistence:
                DeserializePersistence(inProtocolStream);
                break;

            case TypeIds.InternalConnectedEntity:
                DeserializeConnectedEntity(inProtocolStream);
                break;

            case TypeIds.InternalGenericPrefabReference:
                DeserializeGenericPrefabReference(inProtocolStream);
                break;

            case TypeIds.InternalGenericScale:
                DeserializeGenericScale(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt0:
                DeserializeGenericFieldInt0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt1:
                DeserializeGenericFieldInt1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt2:
                DeserializeGenericFieldInt2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt3:
                DeserializeGenericFieldInt3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt4:
                DeserializeGenericFieldInt4(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt5:
                DeserializeGenericFieldInt5(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt6:
                DeserializeGenericFieldInt6(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt7:
                DeserializeGenericFieldInt7(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt8:
                DeserializeGenericFieldInt8(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldInt9:
                DeserializeGenericFieldInt9(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool0:
                DeserializeGenericFieldBool0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool1:
                DeserializeGenericFieldBool1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool2:
                DeserializeGenericFieldBool2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool3:
                DeserializeGenericFieldBool3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool4:
                DeserializeGenericFieldBool4(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool5:
                DeserializeGenericFieldBool5(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool6:
                DeserializeGenericFieldBool6(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool7:
                DeserializeGenericFieldBool7(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool8:
                DeserializeGenericFieldBool8(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldBool9:
                DeserializeGenericFieldBool9(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat0:
                DeserializeGenericFieldFloat0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat1:
                DeserializeGenericFieldFloat1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat2:
                DeserializeGenericFieldFloat2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat3:
                DeserializeGenericFieldFloat3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat4:
                DeserializeGenericFieldFloat4(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat5:
                DeserializeGenericFieldFloat5(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat6:
                DeserializeGenericFieldFloat6(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat7:
                DeserializeGenericFieldFloat7(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat8:
                DeserializeGenericFieldFloat8(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldFloat9:
                DeserializeGenericFieldFloat9(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldVector0:
                DeserializeGenericFieldVector0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldVector1:
                DeserializeGenericFieldVector1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldVector2:
                DeserializeGenericFieldVector2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldVector3:
                DeserializeGenericFieldVector3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldString0:
                DeserializeGenericFieldString0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldString1:
                DeserializeGenericFieldString1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldString2:
                DeserializeGenericFieldString2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldString3:
                DeserializeGenericFieldString3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldString4:
                DeserializeGenericFieldString4(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldQuaternion0:
                DeserializeGenericFieldQuaternion0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity0:
                DeserializeGenericFieldEntity0(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity1:
                DeserializeGenericFieldEntity1(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity2:
                DeserializeGenericFieldEntity2(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity3:
                DeserializeGenericFieldEntity3(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity4:
                DeserializeGenericFieldEntity4(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity5:
                DeserializeGenericFieldEntity5(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity6:
                DeserializeGenericFieldEntity6(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity7:
                DeserializeGenericFieldEntity7(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity8:
                DeserializeGenericFieldEntity8(inProtocolStream);
                break;

            case TypeIds.InternalGenericFieldEntity9:
                DeserializeGenericFieldEntity9(inProtocolStream);
                break;
            }
        }
Esempio n. 14
0
        private void DeserializeWorldPositionQuery(Coherence.Replication.Protocol.Definition.IInBitStream protocolStream)
        {
            var ignored = new WorldPositionQuery();

            unityReaders.Read(ref ignored, protocolStream);
        }
 public void PerformCommand(EntityManager mgr, Entity entity, uint commandTypeID, Coherence.Replication.Protocol.Definition.IInBitStream bitStream)
 {
     switch (commandTypeID)
     {
     case TypeIds.InternalAuthorityTransfer:
     {
         var hasRequestBuffer = mgr.HasComponent <AuthorityTransfer>(entity);
         if (!hasRequestBuffer)
         {
             mgr.AddBuffer <AuthorityTransfer>(entity);
         }
         var buffer = mgr.GetBuffer <AuthorityTransfer>(entity);
         var data   = new AuthorityTransfer();
         messageDeserializers.AuthorityTransfer(bitStream, ref data);
         buffer.Add(data);
         break;
     }
     }
 }