public void BeginSerialize(ComponentSystemBase system)
 {
     m_SphereGhostSerializer.BeginSerialize(system);
     m_PelotaGhostSerializer.BeginSerialize(system);
 }
            public override void CleanComponents(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                                                 EntityCommandBuffer buffer)
            {
                var entityType           = system.GetArchetypeChunkEntityType();
                var componentAddedType   = system.GetArchetypeChunkComponentType <ComponentAdded <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >();
                var componentRemovedType = system.GetArchetypeChunkComponentType <ComponentRemoved <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >();
                var receivedUpdateType   = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.ReceivedUpdates>();
                var authorityChangeType  = system.GetArchetypeChunkComponentType <AuthorityChanges <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >();

                var cmdRequestType  = system.GetArchetypeChunkComponentType <CommandRequests.Cmd>();
                var cmdResponseType = system.GetArchetypeChunkComponentType <CommandResponses.Cmd>();

                foreach (var chunk in chunkArray)
                {
                    var entities = chunk.GetNativeArray(entityType);

                    // Updates
                    if (chunk.Has(receivedUpdateType))
                    {
                        var updateArray = chunk.GetNativeArray(receivedUpdateType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.ReceivedUpdates>(entities[i]);
                            var updateList = updateArray[i].Updates;

                            // Pool update lists to avoid excessive allocation
                            updateList.Clear();
                            Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Update.Pool.Push(updateList);

                            ReferenceTypeProviders.UpdatesProvider.Free(updateArray[i].handle);
                        }
                    }

                    // Component Added
                    if (chunk.Has(componentAddedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entities[i]);
                        }
                    }

                    // Component Removed
                    if (chunk.Has(componentRemovedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentRemoved <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entities[i]);
                        }
                    }

                    // Authority
                    if (chunk.Has(authorityChangeType))
                    {
                        var authorityChangeArray = chunk.GetNativeArray(authorityChangeType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <AuthorityChanges <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entities[i]);
                            AuthorityChangesProvider.Free(authorityChangeArray[i].Handle);
                        }
                    }

                    // Cmd Command
                    if (chunk.Has(cmdRequestType))
                    {
                        var cmdRequestArray = chunk.GetNativeArray(cmdRequestType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <CommandRequests.Cmd>(entities[i]);
                            ReferenceTypeProviders.CmdRequestsProvider.Free(cmdRequestArray[i].CommandListHandle);
                        }
                    }

                    if (chunk.Has(cmdResponseType))
                    {
                        var cmdResponseArray = chunk.GetNativeArray(cmdResponseType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <CommandResponses.Cmd>(entities[i]);
                            ReferenceTypeProviders.CmdResponsesProvider.Free(cmdResponseArray[i].CommandListHandle);
                        }
                    }
                }
            }
 public void SendEvents(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system, ComponentUpdateSystem componentUpdateSystem)
 {
 }
Ejemplo n.º 4
0
 public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly)
 {
     _type = jobComponentSystem.GetArchetypeChunkBufferType <T>(isReadOnly);
 }
Ejemplo n.º 5
0
 public override void SendCommands(ComponentGroup commandGroup, ComponentSystemBase system, global::Improbable.Worker.CInterop.Connection connection)
 {
 }
Ejemplo n.º 6
0
            public void SendUpdates(
                NativeArray <ArchetypeChunk> chunkArray,
                ComponentSystemBase system,
                EntityManager entityManager,
                ComponentUpdateSystem componentUpdateSystem)
            {
                using (componentMarker.Auto())
                {
                    var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true);
                    var componentType       = system.GetArchetypeChunkComponentType <global::Improbable.DependentSchema.DependentDataComponent.Component>();

                    foreach (var chunk in chunkArray)
                    {
                        var entityIdArray  = chunk.GetNativeArray(spatialOSEntityType);
                        var componentArray = chunk.GetNativeArray(componentType);

                        for (var i = 0; i < componentArray.Length; i++)
                        {
                            var data = componentArray[i];

                            if (data.IsDataDirty())
                            {
                                var update = new Update();

                                if (data.IsDataDirty(0))
                                {
                                    update.Field1 = data.Field1;
                                }

                                if (data.IsDataDirty(1))
                                {
                                    update.Field2 = data.Field2;
                                }

                                if (data.IsDataDirty(2))
                                {
                                    update.Field3 = data.Field3;
                                }

                                if (data.IsDataDirty(3))
                                {
                                    update.Field4 = data.Field4;
                                }

                                if (data.IsDataDirty(4))
                                {
                                    update.Field5 = data.Field5;
                                }

                                if (data.IsDataDirty(5))
                                {
                                    update.Field6 = data.Field6;
                                }

                                if (data.IsDataDirty(6))
                                {
                                    update.Field7 = data.Field7;
                                }

                                if (data.IsDataDirty(7))
                                {
                                    update.Field8 = data.Field8;
                                }

                                if (data.IsDataDirty(8))
                                {
                                    update.Field9 = data.Field9;
                                }

                                if (data.IsDataDirty(9))
                                {
                                    update.Field10 = data.Field10;
                                }

                                if (data.IsDataDirty(10))
                                {
                                    update.Field11 = data.Field11;
                                }

                                if (data.IsDataDirty(11))
                                {
                                    update.Field12 = data.Field12;
                                }

                                if (data.IsDataDirty(12))
                                {
                                    update.Field13 = data.Field13;
                                }

                                if (data.IsDataDirty(13))
                                {
                                    update.Field14 = data.Field14;
                                }

                                if (data.IsDataDirty(14))
                                {
                                    update.Field15 = data.Field15;
                                }

                                if (data.IsDataDirty(15))
                                {
                                    update.Field16 = data.Field16;
                                }

                                if (data.IsDataDirty(16))
                                {
                                    update.Field17 = data.Field17;
                                }

                                if (data.IsDataDirty(17))
                                {
                                    update.Field18 = data.Field18;
                                }

                                componentUpdateSystem.SendUpdate(in update, entityIdArray[i].EntityId);
                                data.MarkDataClean();
                                componentArray[i] = data;
                            }
                        }
                    }
                }
            }
Ejemplo n.º 7
0
 public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly)
 {
     _type = jobComponentSystem.GetArchetypeChunkEntityType();
 }
Ejemplo n.º 8
0
            public override void CleanComponents(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                                                 EntityCommandBuffer buffer)
            {
                var entityType           = system.GetArchetypeChunkEntityType();
                var componentAddedType   = system.GetArchetypeChunkComponentType <ComponentAdded <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >();
                var componentRemovedType = system.GetArchetypeChunkComponentType <ComponentRemoved <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >();
                var receivedUpdateType   = system.GetArchetypeChunkComponentType <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.ReceivedUpdates>();
                var authorityChangeType  = system.GetArchetypeChunkComponentType <AuthorityChanges <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >();
                var myEventEventType     = system.GetArchetypeChunkComponentType <ReceivedEvents.MyEvent>();

                foreach (var chunk in chunkArray)
                {
                    var entities = chunk.GetNativeArray(entityType);

                    // Updates
                    if (chunk.Has(receivedUpdateType))
                    {
                        var updateArray = chunk.GetNativeArray(receivedUpdateType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.ReceivedUpdates>(entities[i]);
                            var updateList = updateArray[i].Updates;

                            // Pool update lists to avoid excessive allocation
                            updateList.Clear();
                            global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Update.Pool.Push(updateList);

                            ReferenceTypeProviders.UpdatesProvider.Free(updateArray[i].handle);
                        }
                    }

                    // Component Added
                    if (chunk.Has(componentAddedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentAdded <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entities[i]);
                        }
                    }

                    // Component Removed
                    if (chunk.Has(componentRemovedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentRemoved <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entities[i]);
                        }
                    }

                    // Authority
                    if (chunk.Has(authorityChangeType))
                    {
                        var authorityChangeArray = chunk.GetNativeArray(authorityChangeType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <AuthorityChanges <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entities[i]);
                            AuthorityChangesProvider.Free(authorityChangeArray[i].Handle);
                        }
                    }

                    // MyEvent Event
                    if (chunk.Has(myEventEventType))
                    {
                        var myEventEventArray = chunk.GetNativeArray(myEventEventType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ReceivedEvents.MyEvent>(entities[i]);
                            ReferenceTypeProviders.MyEventProvider.Free(myEventEventArray[i].handle);
                        }
                    }
                }
            }
            public void SendUpdates(
                NativeArray <ArchetypeChunk> chunkArray,
                ComponentSystemBase system,
                EntityManager entityManager,
                ComponentUpdateSystem componentUpdateSystem)
            {
                Profiler.BeginSample("ExhaustiveMapValue");

                var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true);
                var componentType       = system.GetArchetypeChunkComponentType <global::Improbable.Gdk.Tests.ExhaustiveMapValue.Component>();

                var authorityType = system.GetArchetypeChunkSharedComponentType <ComponentAuthority>();

                foreach (var chunk in chunkArray)
                {
                    var entityIdArray  = chunk.GetNativeArray(spatialOSEntityType);
                    var componentArray = chunk.GetNativeArray(componentType);

                    var authorityIndex = chunk.GetSharedComponentIndex(authorityType);

                    if (!entityManager.GetSharedComponentData <ComponentAuthority>(authorityIndex).HasAuthority)
                    {
                        continue;
                    }

                    for (var i = 0; i < componentArray.Length; i++)
                    {
                        var data = componentArray[i];
                        if (data.IsDataDirty())
                        {
                            Update update = new Update();

                            if (data.IsDataDirty(0))
                            {
                                update.Field1 = data.Field1;
                            }

                            if (data.IsDataDirty(1))
                            {
                                update.Field2 = data.Field2;
                            }

                            if (data.IsDataDirty(2))
                            {
                                update.Field3 = data.Field3;
                            }

                            if (data.IsDataDirty(3))
                            {
                                update.Field4 = data.Field4;
                            }

                            if (data.IsDataDirty(4))
                            {
                                update.Field5 = data.Field5;
                            }

                            if (data.IsDataDirty(5))
                            {
                                update.Field6 = data.Field6;
                            }

                            if (data.IsDataDirty(6))
                            {
                                update.Field7 = data.Field7;
                            }

                            if (data.IsDataDirty(7))
                            {
                                update.Field8 = data.Field8;
                            }

                            if (data.IsDataDirty(8))
                            {
                                update.Field9 = data.Field9;
                            }

                            if (data.IsDataDirty(9))
                            {
                                update.Field10 = data.Field10;
                            }

                            if (data.IsDataDirty(10))
                            {
                                update.Field11 = data.Field11;
                            }

                            if (data.IsDataDirty(11))
                            {
                                update.Field12 = data.Field12;
                            }

                            if (data.IsDataDirty(12))
                            {
                                update.Field13 = data.Field13;
                            }

                            if (data.IsDataDirty(13))
                            {
                                update.Field14 = data.Field14;
                            }

                            if (data.IsDataDirty(14))
                            {
                                update.Field15 = data.Field15;
                            }

                            if (data.IsDataDirty(15))
                            {
                                update.Field16 = data.Field16;
                            }

                            if (data.IsDataDirty(16))
                            {
                                update.Field17 = data.Field17;
                            }

                            if (data.IsDataDirty(17))
                            {
                                update.Field18 = data.Field18;
                            }

                            componentUpdateSystem.SendUpdate(in update, entityIdArray[i].EntityId);
                            data.MarkDataClean();
                            componentArray[i] = data;
                        }
                    }
                }

                Profiler.EndSample();
            }
Ejemplo n.º 10
0
 public void BeginSerialize(ComponentSystemBase system)
 {
     componentTypeGameInfoComponent = ComponentType.ReadWrite <GameInfoComponent>();
     ghostGameInfoComponentType     = system.GetArchetypeChunkComponentType <GameInfoComponent>(true);
 }
Ejemplo n.º 11
0
 public abstract void AcknowledgeAuthorityLoss(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                                               ComponentUpdateSystem updateSystem);
Ejemplo n.º 12
0
 public void BeginSerialize(ComponentSystemBase system)
 {
     m_CubeGhostSerializer.BeginSerialize(system);
 }
 public void PrepareToExecuteWithStructuralChanges(ComponentSystemBase componentSystem, EntityQuery query)
 {
     _manager = componentSystem.EntityManager;
     _query   = query;
     _query.GatherEntitiesToArray(out _gatherEntitiesResult);
 }
 public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly)
 {
     _type          = jobComponentSystem.GetArchetypeChunkSharedComponentType <T>();
     _entityManager = jobComponentSystem.EntityManager;
 }
Ejemplo n.º 15
0
            public override void AcknowledgeAuthorityLoss(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                                                          ComponentUpdateSystem updateSystem)
            {
                var authorityLossType = system.GetArchetypeChunkComponentType <AuthorityLossImminent <global::Improbable.Position.Component> >();
                var spatialEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>();

                foreach (var chunk in chunkArray)
                {
                    var authorityArray       = chunk.GetNativeArray(authorityLossType);
                    var spatialEntityIdArray = chunk.GetNativeArray(spatialEntityType);

                    for (int i = 0; i < authorityArray.Length; ++i)
                    {
                        if (authorityArray[i].AcknowledgeAuthorityLoss)
                        {
                            updateSystem.AcknowledgeAuthorityLoss(spatialEntityIdArray[i].EntityId,
                                                                  54);
                        }
                    }
                }
            }
Ejemplo n.º 16
0
 public EntitySpawner(ComponentSystemBase system)
 {
     Assert.IsFalse(system is null);
     spawnerQuery = new EntitySpawnerQuery(system);
 }
Ejemplo n.º 17
0
 public void SendCommands(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system, CommandSystem commandSystem)
 {
 }
Ejemplo n.º 18
0
 /// <summary>
 /// checks if game is in zombie game level
 /// </summary>
 /// <param name="system"></param>
 /// <returns></returns>
 public static bool IsLevel(this ComponentSystemBase system)
 {
     return(system.EntityManager.World.GetExistingSystem <GameStateSystem>().isLevel);
 }
Ejemplo n.º 19
0
 public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly)
 {
 }
 public void OnSetup(ComponentSystemBase system)
 {
     DisabledFromEntity = system.GetComponentDataFromEntity <Disabled>(true);
     PopupFromEntity    = system.GetComponentDataFromEntity <Relative <PopupDescription> >(true);
 }
Ejemplo n.º 21
0
 public StructuralChangeRuntime PrepareToExecuteWithStructuralChanges(ComponentSystemBase componentSystem, EntityQuery query)
 {
     return(new StructuralChangeRuntime());
 }
Ejemplo n.º 22
0
        public static BuildCollisionLayerConfig BuildCollisionLayer(EntityQuery query, ComponentSystemBase system)
        {
            var config = new BuildCollisionLayerConfig();

            config.query        = query;
            config.system       = system;
            config.typeGroup    = BuildCollisionLayerInternal.BuildLayerChunkTypeGroup(system);
            config.hasQueryData = true;
            config.settings     = BuildCollisionLayerConfig.defaultSettings;
            config.count        = query.CalculateEntityCount();
            return(config);
        }
Ejemplo n.º 23
0
 public void BeginSerialize(ComponentSystemBase system)
 {
     #region __GHOST_BEGIN_SERIALIZE__
     m___GHOST_SERIALIZER_TYPE__.BeginSerialize(system);
     #endregion
 }
Ejemplo n.º 24
0
 public void BeginSerialize(ComponentSystemBase system)
 {
     m_RepBarrelGhostSerializer.BeginSerialize(system);
     m_RepGrenadeGhostSerializer.BeginSerialize(system);
     m_RepPlayerGhostSerializer.BeginSerialize(system);
 }
Ejemplo n.º 25
0
            public override void CleanComponents(ComponentGroup group, ComponentSystemBase system,
                                                 EntityCommandBuffer buffer)
            {
                var entityType           = system.GetArchetypeChunkEntityType();
                var componentAddedType   = system.GetArchetypeChunkComponentType <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >();
                var componentRemovedType = system.GetArchetypeChunkComponentType <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >();
                var receivedUpdateType   = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.ExhaustiveRepeated.ReceivedUpdates>();
                var authorityChangeType  = system.GetArchetypeChunkComponentType <AuthorityChanges <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >();

                var chunkArray = group.CreateArchetypeChunkArray(Allocator.TempJob);

                foreach (var chunk in chunkArray)
                {
                    var entities = chunk.GetNativeArray(entityType);

                    // Updates
                    if (chunk.Has(receivedUpdateType))
                    {
                        var updateArray = chunk.GetNativeArray(receivedUpdateType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <Improbable.Gdk.Tests.ExhaustiveRepeated.ReceivedUpdates>(entities[i]);
                            var updateList = updateArray[i].Updates;

                            // Pool update lists to avoid excessive allocation
                            updateList.Clear();
                            Improbable.Gdk.Tests.ExhaustiveRepeated.Update.Pool.Push(updateList);

                            ReferenceTypeProviders.UpdatesProvider.Free(updateArray[i].handle);
                        }
                    }

                    // Component Added
                    if (chunk.Has(componentAddedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entities[i]);
                        }
                    }

                    // Component Removed
                    if (chunk.Has(componentRemovedType))
                    {
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entities[i]);
                        }
                    }

                    // Authority
                    if (chunk.Has(authorityChangeType))
                    {
                        var authorityChangeArray = chunk.GetNativeArray(authorityChangeType);
                        for (int i = 0; i < entities.Length; ++i)
                        {
                            buffer.RemoveComponent <AuthorityChanges <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entities[i]);
                            AuthorityChangesProvider.Free(authorityChangeArray[i].Handle);
                        }
                    }
                }

                chunkArray.Dispose();
            }
Ejemplo n.º 26
0
            public void SendUpdates(
                NativeArray <ArchetypeChunk> chunkArray,
                ComponentSystemBase system,
                EntityManager entityManager,
                ComponentUpdateSystem componentUpdateSystem)
            {
                Profiler.BeginSample("BlittableComponent");

                var spatialOSEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>(true);
                var componentType       = system.GetArchetypeChunkComponentType <global::Improbable.Gdk.Tests.BlittableTypes.BlittableComponent.Component>();

                var authorityType = system.GetArchetypeChunkSharedComponentType <ComponentAuthority>();

                foreach (var chunk in chunkArray)
                {
                    var entityIdArray  = chunk.GetNativeArray(spatialOSEntityType);
                    var componentArray = chunk.GetNativeArray(componentType);

                    var authorityIndex = chunk.GetSharedComponentIndex(authorityType);

                    if (!entityManager.GetSharedComponentData <ComponentAuthority>(authorityIndex).HasAuthority)
                    {
                        continue;
                    }

                    for (var i = 0; i < componentArray.Length; i++)
                    {
                        var data = componentArray[i];
                        if (data.IsDataDirty())
                        {
                            Update update = new Update();

                            if (data.IsDataDirty(0))
                            {
                                update.BoolField = data.BoolField;
                            }

                            if (data.IsDataDirty(1))
                            {
                                update.IntField = data.IntField;
                            }

                            if (data.IsDataDirty(2))
                            {
                                update.LongField = data.LongField;
                            }

                            if (data.IsDataDirty(3))
                            {
                                update.FloatField = data.FloatField;
                            }

                            if (data.IsDataDirty(4))
                            {
                                update.DoubleField = data.DoubleField;
                            }

                            componentUpdateSystem.SendUpdate(in update, entityIdArray[i].EntityId);
                            data.MarkDataClean();
                            componentArray[i] = data;
                        }
                    }
                }

                Profiler.EndSample();
            }
            public override void AcknowledgeAuthorityLoss(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                                                          ComponentUpdateSystem updateSystem)
            {
                var authorityLossType = system.GetArchetypeChunkComponentType <AuthorityLossImminent <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >();
                var spatialEntityType = system.GetArchetypeChunkComponentType <SpatialEntityId>();

                foreach (var chunk in chunkArray)
                {
                    var authorityArray       = chunk.GetNativeArray(authorityLossType);
                    var spatialEntityIdArray = chunk.GetNativeArray(spatialEntityType);

                    for (int i = 0; i < authorityArray.Length; ++i)
                    {
                        if (authorityArray[i].AcknowledgeAuthorityLoss)
                        {
                            updateSystem.AcknowledgeAuthorityLoss(spatialEntityIdArray[i].EntityId,
                                                                  1005);
                        }
                    }
                }
            }
            public void SendCommands(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system, CommandSystem commandSystem)
            {
                Profiler.BeginSample("BlittableComponent");
                var entityType                 = system.GetArchetypeChunkEntityType();
                var senderTypeFirstCommand     = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.BlittableTypes.BlittableComponent.CommandSenders.FirstCommand>(true);
                var responderTypeFirstCommand  = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.BlittableTypes.BlittableComponent.CommandResponders.FirstCommand>(true);
                var senderTypeSecondCommand    = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.BlittableTypes.BlittableComponent.CommandSenders.SecondCommand>(true);
                var responderTypeSecondCommand = system.GetArchetypeChunkComponentType <Improbable.Gdk.Tests.BlittableTypes.BlittableComponent.CommandResponders.SecondCommand>(true);

                foreach (var chunk in chunkArray)
                {
                    var entities = chunk.GetNativeArray(entityType);
                    if (chunk.Has(senderTypeFirstCommand))
                    {
                        var senders = chunk.GetNativeArray(senderTypeFirstCommand);
                        for (var i = 0; i < senders.Length; i++)
                        {
                            var requests = senders[i].RequestsToSend;
                            if (requests.Count > 0)
                            {
                                foreach (var request in requests)
                                {
                                    commandSystem.SendCommand(request, entities[i]);
                                }

                                requests.Clear();
                            }
                        }

                        var responders = chunk.GetNativeArray(responderTypeFirstCommand);
                        for (var i = 0; i < responders.Length; i++)
                        {
                            var responses = responders[i].ResponsesToSend;
                            if (responses.Count > 0)
                            {
                                foreach (var response in responses)
                                {
                                    commandSystem.SendResponse(response);
                                }

                                responses.Clear();
                            }
                        }
                    }

                    if (chunk.Has(senderTypeSecondCommand))
                    {
                        var senders = chunk.GetNativeArray(senderTypeSecondCommand);
                        for (var i = 0; i < senders.Length; i++)
                        {
                            var requests = senders[i].RequestsToSend;
                            if (requests.Count > 0)
                            {
                                foreach (var request in requests)
                                {
                                    commandSystem.SendCommand(request, entities[i]);
                                }

                                requests.Clear();
                            }
                        }

                        var responders = chunk.GetNativeArray(responderTypeSecondCommand);
                        for (var i = 0; i < responders.Length; i++)
                        {
                            var responses = responders[i].ResponsesToSend;
                            if (responses.Count > 0)
                            {
                                foreach (var response in responses)
                                {
                                    commandSystem.SendResponse(response);
                                }

                                responses.Clear();
                            }
                        }
                    }
                }

                Profiler.EndSample();
            }
Ejemplo n.º 29
0
 public void BeginSerialize(ComponentSystemBase system)
 {
     m_LagCompensationTestPlayerGhostSerializer.BeginSerialize(system);
     m_LagCompensationTestCubeGhostSerializer.BeginSerialize(system);
 }
 public void SendUpdates(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system,
                         EntityManager entityManager, ComponentUpdateSystem componentUpdateSystem)
 {
     throw new NotImplementedException();
 }