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) { }
public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly) { _type = jobComponentSystem.GetArchetypeChunkBufferType <T>(isReadOnly); }
public override void SendCommands(ComponentGroup commandGroup, ComponentSystemBase system, global::Improbable.Worker.CInterop.Connection connection) { }
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; } } } } }
public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly) { _type = jobComponentSystem.GetArchetypeChunkEntityType(); }
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(); }
public void BeginSerialize(ComponentSystemBase system) { componentTypeGameInfoComponent = ComponentType.ReadWrite <GameInfoComponent>(); ghostGameInfoComponentType = system.GetArchetypeChunkComponentType <GameInfoComponent>(true); }
public abstract void AcknowledgeAuthorityLoss(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system, ComponentUpdateSystem updateSystem);
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; }
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); } } } }
public EntitySpawner(ComponentSystemBase system) { Assert.IsFalse(system is null); spawnerQuery = new EntitySpawnerQuery(system); }
public void SendCommands(NativeArray <ArchetypeChunk> chunkArray, ComponentSystemBase system, CommandSystem commandSystem) { }
/// <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); }
public void ScheduleTimeInitialize(ComponentSystemBase jobComponentSystem, bool isReadOnly) { }
public void OnSetup(ComponentSystemBase system) { DisabledFromEntity = system.GetComponentDataFromEntity <Disabled>(true); PopupFromEntity = system.GetComponentDataFromEntity <Relative <PopupDescription> >(true); }
public StructuralChangeRuntime PrepareToExecuteWithStructuralChanges(ComponentSystemBase componentSystem, EntityQuery query) { return(new StructuralChangeRuntime()); }
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); }
public void BeginSerialize(ComponentSystemBase system) { #region __GHOST_BEGIN_SERIALIZE__ m___GHOST_SERIALIZER_TYPE__.BeginSerialize(system); #endregion }
public void BeginSerialize(ComponentSystemBase system) { m_RepBarrelGhostSerializer.BeginSerialize(system); m_RepGrenadeGhostSerializer.BeginSerialize(system); m_RepPlayerGhostSerializer.BeginSerialize(system); }
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(); }
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(); }
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(); }