Ejemplo n.º 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);
                UpdateableComponents.Remove(component as IUpdateableComponent);
            }

            if (component is IRenderableComponent)
            {
                Renderables.Remove(component as IRenderableComponent);
            }

            if (component is MinimapIcon)
            {
                MinimapIcons.Remove(component as MinimapIcon);
            }

            foreach (var child in new List <GameComponent>(component.EnumerateChildren()))
            {
                RemoveComponentImmediate(child);
            }
        }
Ejemplo n.º 2
0
        private void RemoveComponentImmediate(GameComponent component)
        {
            if (!Components.ContainsKey(component.GlobalID))
            {
                return;
            }

            if (_componentList == null)
            {
                _componentList = Components.Values.ToList();
            }

            _componentList.Remove(component);
            Components.Remove(component.GlobalID);

            if (component is Body)
            {
                World.OctTree.Remove((component as Body), (component as Body).GetBoundingBox());
            }

            if (component is MinimapIcon)
            {
                MinimapIcons.Remove(component as MinimapIcon);
            }

            foreach (var child in new List <GameComponent>(component.EnumerateChildren()))
            {
                RemoveComponentImmediate(child);
            }
        }
Ejemplo n.º 3
0
        private void RemoveComponentImmediate(GameComponent component)
        {
            if (!Components.ContainsKey(component.GlobalID))
            {
                return;
            }

            Components.Remove(component.GlobalID);

            if (component is MinimapIcon)
            {
                MinimapIcons.Remove(component as MinimapIcon);
            }

            foreach (var child in new List <GameComponent>(component.EnumerateChildren()))
            {
                RemoveComponentImmediate(child);
            }
        }