コード例 #1
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                if (!IsValidEntityId(op.EntityId, "RemoveComponentOp", out var entity))
                {
                    return;
                }

                var data = entityManager.GetComponentData <SpatialOSExhaustiveSingular>(entity);

                ExhaustiveSingular.ReferenceTypeProviders.Field3Provider.Free(data.field3Handle);
                ExhaustiveSingular.ReferenceTypeProviders.Field7Provider.Free(data.field7Handle);

                entityManager.RemoveComponent <SpatialOSExhaustiveSingular>(entity);

                if (entityManager.HasComponent <ComponentAdded <SpatialOSExhaustiveSingular> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <SpatialOSExhaustiveSingular> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <SpatialOSExhaustiveSingular> >(entity))
                {
                    entityManager.AddComponentData(entity, new ComponentRemoved <SpatialOSExhaustiveSingular>());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "SpatialOSExhaustiveSingular")
                                            );
                }
            }
コード例 #2
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                var entity = TryGetEntityFromEntityId(new EntityId(op.EntityId));

                Profiler.BeginSample("ExhaustiveSingular");

                var data = entityManager.GetComponentData <Improbable.Gdk.Tests.ExhaustiveSingular.Component>(entity);

                ExhaustiveSingular.ReferenceTypeProviders.Field3Provider.Free(data.field3Handle);
                ExhaustiveSingular.ReferenceTypeProviders.Field7Provider.Free(data.field7Handle);

                entityManager.RemoveComponent <Improbable.Gdk.Tests.ExhaustiveSingular.Component>(entity);

                if (entityManager.HasComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveSingular.Component> >(entity))
                {
                    entityManager.AddComponent(entity, ComponentType.Create <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveSingular.Component> >());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId)
                                            .WithField("Component", "Improbable.Gdk.Tests.ExhaustiveSingular")
                                            );
                }

                Profiler.EndSample();
            }
コード例 #3
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                if (!IsValidEntityId(op.EntityId, "RemoveComponentOp", out var entity))
                {
                    return;
                }

                entityManager.RemoveComponent <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component>(entity);

                if (entityManager.HasComponent <ComponentAdded <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity))
                {
                    entityManager.AddComponentData(entity, new ComponentRemoved <Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component>());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands")
                                            );
                }
            }
コード例 #4
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                var entity = TryGetEntityFromEntityId(op.EntityId);

                Profiler.BeginSample("NestedComponent");

                entityManager.RemoveComponent <Improbable.Gdk.Tests.NestedComponent.Component>(entity);

                if (entityManager.HasComponent <ComponentAdded <Improbable.Gdk.Tests.NestedComponent.Component> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.NestedComponent.Component> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <Improbable.Gdk.Tests.NestedComponent.Component> >(entity))
                {
                    entityManager.AddComponent(entity, ComponentType.Create <ComponentRemoved <Improbable.Gdk.Tests.NestedComponent.Component> >());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "Improbable.Gdk.Tests.NestedComponent")
                                            );
                }

                Profiler.EndSample();
            }
コード例 #5
0
            public void OnRemoveComponent(RemoveComponentOp op)
            {
                Unity.Entities.Entity entity;
                if (!view.TryGetEntity(op.EntityId.Id, out entity))
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent("Entity not found during OnRemoveComponent.")
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField(MutableView.Component, "SpatialOSExhaustiveOptional"));
                    return;
                }

                view.RemoveComponent <SpatialOSExhaustiveOptional>(entity);

                if (view.HasComponent <ComponentAdded <SpatialOSExhaustiveOptional> >(entity))
                {
                    view.RemoveComponent <ComponentAdded <SpatialOSExhaustiveOptional> >(entity);
                }
                else if (!view.HasComponent <ComponentRemoved <SpatialOSExhaustiveOptional> >(entity))
                {
                    view.AddComponent(entity, new ComponentRemoved <SpatialOSExhaustiveOptional>());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(
                                                "Received ComponentRemoved but have already received one for this entity.")
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField(MutableView.Component, "SpatialOSExhaustiveOptional"));
                }
            }
コード例 #6
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                if (!IsValidEntityId(op.EntityId, "RemoveComponentOp", out var entity))
                {
                    return;
                }

                entityManager.RemoveComponent <SpatialOSConnection>(entity);

                if (entityManager.HasComponent <ComponentAdded <SpatialOSConnection> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <SpatialOSConnection> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <SpatialOSConnection> >(entity))
                {
                    entityManager.AddComponentData(entity, new ComponentRemoved <SpatialOSConnection>());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "SpatialOSConnection")
                                            );
                }
            }
コード例 #7
0
        public void OnTurretInfoComponentRemoved(RemoveComponentOp op)
        {
            if (checkOutTurretRotations.ContainsKey(op.EntityId))
            {
                checkOutTurretRotations.Remove(op.EntityId);
            }

            authoritativeTurretRotations.Remove(op.EntityId);
        }
コード例 #8
0
        public static WrappedOp <RemoveComponentOp> CreateRemoveComponentOp(long entityId, uint componentId)
        {
            var op = new RemoveComponentOp
            {
                EntityId    = new EntityId(entityId),
                ComponentId = componentId
            };

            return(new WrappedOp <RemoveComponentOp>(op));
        }
コード例 #9
0
        protected void OnRemoveComponentDispatcherCallback(RemoveComponentOp op)
        {
            if (op.EntityId != entityId)
            {
                return;
            }

            isComponentReady = false;
            Dispose();
        }
コード例 #10
0
        internal void OnRemoveComponent(RemoveComponentOp op)
        {
            if (!componentSpecificDispatchers.TryGetValue(op.ComponentId, out var specificDispatcher))
            {
                throw new UnknownComponentIdException(
                          string.Format(Errors.UnknownComponentIdError, op.GetType(), op.ComponentId));
            }

            specificDispatcher.OnRemoveComponent(op);
        }
コード例 #11
0
        private void OnRemoveComponent(RemoveComponentOp op)
        {
            if (!componentSpecificDispatchers.TryGetValue(op.ComponentId, out var specificDispatcher))
            {
                worker.LogDispatcher.HandleLog(LogType.Error,
                                               new LogEvent(UnknownComponentIdError).WithField("Op Type", op.GetType())
                                               .WithField("ComponentId", op.ComponentId));
                return;
            }

            specificDispatcher.OnRemoveComponent(op);
        }
コード例 #12
0
        private void Removed(RemoveComponentOp op)
        {
            if (!components.Contains(op.ComponentId) || !counts.ContainsKey(op.EntityId))
            {
                return;
            }

            var newValue = counts[op.EntityId] = counts[op.EntityId] - 1;

            if (newValue == components.Count - 1)
            {
                Deactivated = Deactivated.Add(op.EntityId);
            }
        }
コード例 #13
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                if (!IsValidEntityId(op.EntityId, "RemoveComponentOp", out var entity))
                {
                    return;
                }

                var data = entityManager.GetComponentData <SpatialOSExhaustiveMapKey>(entity);

                ExhaustiveMapKey.ReferenceTypeProviders.Field1Provider.Free(data.field1Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field2Provider.Free(data.field2Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field3Provider.Free(data.field3Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field4Provider.Free(data.field4Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field5Provider.Free(data.field5Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field6Provider.Free(data.field6Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field7Provider.Free(data.field7Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field8Provider.Free(data.field8Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field9Provider.Free(data.field9Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field10Provider.Free(data.field10Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field11Provider.Free(data.field11Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field12Provider.Free(data.field12Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field13Provider.Free(data.field13Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field14Provider.Free(data.field14Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field15Provider.Free(data.field15Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field16Provider.Free(data.field16Handle);
                ExhaustiveMapKey.ReferenceTypeProviders.Field17Provider.Free(data.field17Handle);

                entityManager.RemoveComponent <SpatialOSExhaustiveMapKey>(entity);

                if (entityManager.HasComponent <ComponentAdded <SpatialOSExhaustiveMapKey> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <SpatialOSExhaustiveMapKey> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <SpatialOSExhaustiveMapKey> >(entity))
                {
                    entityManager.AddComponentData(entity, new ComponentRemoved <SpatialOSExhaustiveMapKey>());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "SpatialOSExhaustiveMapKey")
                                            );
                }
            }
コード例 #14
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                var entity = TryGetEntityFromEntityId(op.EntityId);

                var data = entityManager.GetComponentData <Improbable.Gdk.Tests.ExhaustiveOptional.Component>(entity);

                ExhaustiveOptional.ReferenceTypeProviders.Field1Provider.Free(data.field1Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field2Provider.Free(data.field2Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field3Provider.Free(data.field3Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field4Provider.Free(data.field4Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field5Provider.Free(data.field5Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field6Provider.Free(data.field6Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field7Provider.Free(data.field7Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field8Provider.Free(data.field8Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field9Provider.Free(data.field9Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field10Provider.Free(data.field10Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field11Provider.Free(data.field11Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field12Provider.Free(data.field12Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field13Provider.Free(data.field13Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field14Provider.Free(data.field14Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field15Provider.Free(data.field15Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field16Provider.Free(data.field16Handle);
                ExhaustiveOptional.ReferenceTypeProviders.Field17Provider.Free(data.field17Handle);

                entityManager.RemoveComponent <Improbable.Gdk.Tests.ExhaustiveOptional.Component>(entity);

                if (entityManager.HasComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveOptional.Component> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.ExhaustiveOptional.Component> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveOptional.Component> >(entity))
                {
                    entityManager.AddComponent(entity, ComponentType.Create <ComponentRemoved <Improbable.Gdk.Tests.ExhaustiveOptional.Component> >());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "Improbable.Gdk.Tests.ExhaustiveOptional")
                                            );
                }
            }
コード例 #15
0
            public override void OnRemoveComponent(RemoveComponentOp op)
            {
                var entity = TryGetEntityFromEntityId(op.EntityId);

                entityManager.RemoveComponent <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component>(entity);

                if (entityManager.HasComponent <ComponentAdded <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity))
                {
                    entityManager.RemoveComponent <ComponentAdded <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity);
                }
                else if (!entityManager.HasComponent <ComponentRemoved <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity))
                {
                    entityManager.AddComponent(entity, ComponentType.Create <ComponentRemoved <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >());
                }
                else
                {
                    LogDispatcher.HandleLog(LogType.Error, new LogEvent(ReceivedDuplicateComponentRemoved)
                                            .WithField(LoggingUtils.LoggerName, LoggerName)
                                            .WithField(LoggingUtils.EntityId, op.EntityId.Id)
                                            .WithField("Component", "Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection")
                                            );
                }
            }
コード例 #16
0
ファイル: Dispatcher.cs プロジェクト: KertisJones/Chess.io
 private void HandleRemoveComponent(RemoveComponentOp op)
 {
     removeComponentCallbacks.InvokeAllReverse(op);
 }
コード例 #17
0
 static void OnComponentRemoved(RemoveComponentOp op)
 {
     removeComponentOps.Enqueue(op);
 }
コード例 #18
0
 static void OnComponentRemoved(RemoveComponentOp op)
 {
     removeComponentOps.Add(op.EntityId.Id);
 }
コード例 #19
0
 static void OnComponentRemoved(RemoveComponentOp op)
 {
     components.Remove(op.EntityId.Id);
 }
コード例 #20
0
 public override void OnRemoveComponent(RemoveComponentOp op)
 {
     HasRemoveComponentReceived = true;
 }
コード例 #21
0
 static void OnRemoveComponent(RemoveComponentOp op) => removeComponentOps.Enqueue(op);
コード例 #22
0
 static void OnComponentRemoved(RemoveComponentOp op)
 {
     components.TryRemove(op.EntityId.Id, out var _);
 }
コード例 #23
0
 public abstract void OnRemoveComponent(RemoveComponentOp op);