/// <inheritdoc />
        public void RemoveComponent(RemoveComponentPipelineOp removeComponentOp)
        {
            if (!IsEntityTracked(removeComponentOp.EntityId))
            {
                Debug.LogErrorFormat("Entity not found: OnComponentAdded({0}, {1})", removeComponentOp.EntityId,
                                     removeComponentOp.ComponentMetaClass);
                return;
            }

            if (universe.ContainsEntity(removeComponentOp.EntityId))
            {
                NextEntityBlock.RemoveComponent(removeComponentOp);
                return;
            }

            if (entitiesToSpawn.ContainsKey(removeComponentOp.EntityId))
            {
                var data = entitiesToSpawn[removeComponentOp.EntityId];
                data.StalledOps.Enqueue(removeComponentOp);

                if (removeComponentOp.ComponentMetaClass.ComponentId == Position.ComponentId)
                {
                    entitiesToSpawn[removeComponentOp.EntityId].Position = null;
                }
            }
        }
        /// <inheritdoc />
        public void RemoveComponent(RemoveComponentPipelineOp removeComponentOp)
        {
            var entityId = removeComponentOp.EntityId;

            if (IsEntityQueued(entityId))
            {
                entityActions[entityId].Enqueue(removeComponentOp);
            }
            else
            {
                NextEntityBlock.RemoveComponent(removeComponentOp);
            }
        }
        /// <inheritdoc />
        public override void RemoveComponent(RemoveComponentPipelineOp removeComponentOp)
        {
            var entityId = removeComponentOp.EntityId;

            if (!universe.ContainsEntity(entityId))
            {
                Debug.LogError("EntityComponentUpdater::RemoveComponent: Entity not present: " + entityId);
                return;
            }

            var entity = universe.Get(entityId);

            entity.OnRemoveComponentPipelineOp(removeComponentOp);
            NextEntityBlock.RemoveComponent(removeComponentOp);
        }
Ejemplo n.º 4
0
        /// <inheritdoc />
        public override void RemoveComponent(RemoveComponentPipelineOp removeComponentOp)
        {
            NextEntityBlock.RemoveComponent(removeComponentOp);
            var entity = universe.Get(removeComponentOp.EntityId);

            if (entity != null)
            {
                if (entity.Visualizers is EntityVisualizers)
                {
                    ((EntityVisualizers)entity.Visualizers).OnComponentRemoved(removeComponentOp.ComponentMetaClass, removeComponentOp.ComponentObject);
                }
            }
            else
            {
                Debug.LogErrorFormat("Entity not found: OnComponentRemoved({0}, {1})", removeComponentOp.EntityId, removeComponentOp.ComponentMetaClass);
            }
        }
Ejemplo n.º 5
0
 /// <inheritdoc />
 public void RemoveComponent(RemoveComponentPipelineOp removeComponentOp)
 {
     StallForCriticalSection(removeComponentOp);
 }