Пример #1
0
        private void RemoveComponentImmediate(GameComponent component)
        {
            if (!Components.ContainsKey(component.GlobalID))
            {
                return;
            }

            Components.Remove(component.GlobalID);
            if (component is IUpdateableComponent)
            {
                var type = component.GetType();
                if (UpdateableComponents.ContainsKey(type))
                {
                    UpdateableComponents[type].Remove(component as IUpdateableComponent);
                }
            }
            if (component is IRenderableComponent)
            {
                RenderableComponents.Remove(component as IRenderableComponent);
            }

            foreach (var child in component.GetAllChildrenRecursive())
            {
                RemoveComponentImmediate(child);
            }
        }
Пример #2
0
        private void RemoveComponentImmediate(GameComponent component)
        {
            if (!Components.ContainsKey(component.GlobalID))
            {
                return;
            }

            Components.Remove(component.GlobalID);

            List <GameComponent> children = component.GetAllChildrenRecursive();

            foreach (GameComponent child in children)
            {
                Components.Remove(child.GlobalID);
            }
        }