private void AddComponent(AddComponentOp <T> add) { _components[add.EntityId] = add.Data; _hasUpdated = true; }
static void OnComponentAdded(AddComponentOp <PositionData> op) { components[op.EntityId.Id] = op.Data; }
static void ProccessGenerateResourceOps() { while (generateResourceRequestOps.TryDequeue(out var op)) { var asteroidEntityId = op.EntityId.Id; var response = new ResourceGenerationReponse(); if (ResourcesInventorySystem.TryGetResourceInfo(asteroidEntityId, 0, out var resourceInfo)) { response.databaseId = resourceInfo.databaseId; response.type = resourceInfo.type; response.quantity = resourceInfo.quantity; } else { var position = PositionsSystem.GetComponent(asteroidEntityId).coords; var time = (long)(DateTime.Now.ToUniversalTime() - centuryBegin).TotalSeconds; var lowSample = ProbabilityMap.EvaluateLowSample(position.x, position.y, position.z, time); var medSample = ProbabilityMap.EvaluateMedSample(position.x, position.y, position.z, time); var highSample = ProbabilityMap.EvaluateHighSample(position.x, position.y, position.z, time); var sample = ProbabilityMap.LayeringSample(lowSample, medSample, highSample); var seed = asteroidEntityId ^ BitConverter.ToInt64(Encoding.UTF8.GetBytes(op.Request.userDatabaseId), 0); IRandomU prng = new XoShiRo128starstar(seed); var scanner = op.Request.scanner; var quantity = QuantityGenerator.Sample(sample, prng, scanner); if (quantity > 0) { response.quantity = quantity; var scannerResource = scanner.speciality; if (scannerResource == ResourceType.Random) { scannerResource = (ResourceType)prng.Next(1, (int)ResourceType.Count); } response.type = scannerResource; var resourceDBId = Helpers.GenerateCloudFireStoreRandomDocumentId(prng); var asteroidDBId = Helpers.GenerateCloudFireStoreRandomDocumentId(prng); response.databaseId = resourceDBId; SpatialOSConnectionSystem.addPersistenceOps.Enqueue( new AddComponentOp <PersistenceData> { EntityId = op.EntityId, Data = new PersistenceData() }); var addComponentOp = new AddComponentOp <IdentificationData> { EntityId = op.EntityId, Data = new IdentificationData { entityDatabaseId = asteroidDBId, } }; IdentificationsSystem.OnComponentAdded(addComponentOp); SpatialOSConnectionSystem.addIdentificationOps.Enqueue(addComponentOp); ResourcesInventorySystem.QueueAddResourceOp(asteroidEntityId, resourceInfo.databaseId, new Resource(resourceInfo.type, resourceInfo.quantity)); var asteroidRef = CloudFirestoreInfo.Database.Collection(CloudFirestoreInfo.AsteroidsCollection).Document(asteroidDBId); asteroidRef.CreateAsync(new Dictionary <string, object> { { CloudFirestoreInfo.CoordinatesField, new double[3] { position.x, position.y, position.z } } }); } } SpatialOSConnectionSystem.responseGenerateResourceOps.Enqueue( new CommandResponseOp <Harvestable.Commands.GenerateResource, ResourceGenerationReponse>//just using CommandResponseOp as container for request raw id and response { EntityId = new EntityId(), RequestId = new RequestId <OutgoingCommandRequest <Harvestable.Commands.GenerateResource> >(op.RequestId.Id), Response = response, }); } }
public override void OnAddComponent(AddComponentOp op) { HasAddComponentReceived = true; }
public void AddComponentToDiff(AddComponentOp op, ViewDiff diff) { var data = Serialization.DeserializeUpdate(op.Data.SchemaData.Value); diff.AddComponent(data, op.EntityId, op.Data.ComponentId); }
private void OnSessionComponentAdded(AddComponentOp <Improbable.Session.Session> componentAddOp) { Improbable.Session.Session.Data data = (Improbable.Session.Session.Data)componentAddOp.Data; UpdateDeploymentStatus(data.Value.status); }
static void OnComponentAdded(AddComponentOp <MapItemsData> op) { addComponentOps.Enqueue(op); }
public override void OnAddComponent(AddComponentOp op) { if (!IsValidEntityId(op.EntityId, "AddComponentOp", out var entity)) { return; } var data = Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Serialization.Deserialize(op.Data.SchemaData.Value.GetFields(), World); data.DirtyBit = false; entityManager.AddComponentData(entity, data); entityManager.AddComponentData(entity, new NotAuthoritative <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Component>()); var update = new Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Update { Field1 = data.Field1, Field2 = data.Field2, Field3 = data.Field3, Field4 = data.Field4, Field5 = data.Field5, Field6 = data.Field6, Field7 = data.Field7, Field8 = data.Field8, Field9 = data.Field9, Field10 = data.Field10, Field11 = data.Field11, Field12 = data.Field12, Field13 = data.Field13, Field14 = data.Field14, Field15 = data.Field15, Field16 = data.Field16, Field17 = data.Field17, }; var updates = new List <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Update> { update }; var updatesComponent = new Generated.Improbable.Gdk.Tests.ExhaustiveSingular.ReceivedUpdates { handle = ReferenceTypeProviders.UpdatesProvider.Allocate(World) }; ReferenceTypeProviders.UpdatesProvider.Set(updatesComponent.handle, updates); entityManager.AddComponentData(entity, updatesComponent); if (entityManager.HasComponent <ComponentRemoved <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity)) { entityManager.RemoveComponent <ComponentRemoved <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity); } else if (!entityManager.HasComponent <ComponentAdded <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity)) { entityManager.AddComponentData(entity, new ComponentAdded <Generated.Improbable.Gdk.Tests.ExhaustiveSingular.Component>()); } else { LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentAdded) .WithField(LoggingUtils.LoggerName, LoggerName) .WithField(LoggingUtils.EntityId, op.EntityId.Id) .WithField("Component", "Generated.Improbable.Gdk.Tests.ExhaustiveSingular") ); } }
static void OnComponentAdded(AddComponentOp <SensorData> op) { components[op.EntityId.Id] = op.Data; }
public void OnTurretInfoComponentAdded(AddComponentOp <Improbable.Demo.TurretInfo> op) { checkOutTurretRotations[op.EntityId] = op.Data.Get().Value.rotation; }
static void OnComponentAdded(AddComponentOp <ClientConnectionData> op) { addComponentOps.Enqueue(op); }
internal static void OnComponentAdded(AddComponentOp <IdentificationData> op) { components[op.EntityId.Id] = op.Data; }
static void OnComponentAdded(AddComponentOp <PositionData> op) { addComponentOps.Enqueue(op); }
static void OnComponentAdded(AddComponentOp <DamageableData> op) { components.Add(op.EntityId.Id); }
static void OnComponentAdded(AddComponentOp <ModuleInventoryData> op) { addComponentOps.Enqueue(op); }
static void OnComponentAdded(AddComponentOp <ExplorationPhysicsData> op) { components[op.EntityId.Id] = op.Data; }
public abstract void OnAddComponent(AddComponentOp op);
public override void OnAddComponent(AddComponentOp op) { var entity = TryGetEntityFromEntityId(op.EntityId); Profiler.BeginSample("ExhaustiveRepeated"); var data = Improbable.Gdk.Tests.ExhaustiveRepeated.Serialization.Deserialize(op.Data.SchemaData.Value.GetFields(), World); data.DirtyBit = false; entityManager.AddComponentData(entity, data); entityManager.AddComponent(entity, ComponentType.Create <NotAuthoritative <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >()); var update = new Improbable.Gdk.Tests.ExhaustiveRepeated.Update { Field1 = data.Field1, Field2 = data.Field2, Field3 = data.Field3, Field4 = data.Field4, Field5 = data.Field5, Field6 = data.Field6, Field7 = data.Field7, Field8 = data.Field8, Field9 = data.Field9, Field10 = data.Field10, Field11 = data.Field11, Field12 = data.Field12, Field13 = data.Field13, Field14 = data.Field14, Field15 = data.Field15, Field16 = data.Field16, Field17 = data.Field17, }; var updates = new List <Improbable.Gdk.Tests.ExhaustiveRepeated.Update> { update }; var updatesComponent = new Improbable.Gdk.Tests.ExhaustiveRepeated.ReceivedUpdates { handle = ReferenceTypeProviders.UpdatesProvider.Allocate(World) }; ReferenceTypeProviders.UpdatesProvider.Set(updatesComponent.handle, updates); entityManager.AddComponentData(entity, updatesComponent); if (entityManager.HasComponent <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entity)) { entityManager.RemoveComponent <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entity); } else if (!entityManager.HasComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >(entity)) { entityManager.AddComponent(entity, ComponentType.Create <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveRepeated.Component> >()); } else { LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentAdded) .WithField(LoggingUtils.LoggerName, LoggerName) .WithField(LoggingUtils.EntityId, op.EntityId.Id) .WithField("Component", "Improbable.Gdk.Tests.ExhaustiveRepeated") ); } Profiler.EndSample(); }
static void OnComponentAdded(AddComponentOp <RechargeableData> op) { addComponentOps.Enqueue(op); }
private void HandleAddComponent(AddComponentOp op) { addComponentCallbacks.InvokeAll(op); }
static void OnComponentAdded(AddComponentOp <CraftingData> op) => components[op.EntityId.Id] = op.Data;