public void P_RenderSubscribe(PrototypeComponents.IP_RenderComponent sender, RenderLayerEnum renderlayerenum)
        {
            switch (renderlayerenum)
            {
            case RenderLayerEnum.Background:
                SubscribeToList(sender, BackgroundLayer, _BackgroundDFlag);
                break;

            case RenderLayerEnum.Map:
                SubscribeToList(sender, MapLayer, _MapDFlag);
                break;

            case RenderLayerEnum.Sprite:
                SubscribeToList(sender, SpriteLayer, _SpriteDFlag);
                break;

            case RenderLayerEnum.Effects:
                SubscribeToList(sender, EffectLayer, _EffectDFlag);
                break;

            case RenderLayerEnum.Menu:
                SubscribeToList(sender, MenuLayer, _MenuDFlag);
                break;

            case RenderLayerEnum.Top:
                SubscribeToList(sender, TopLayer, _TopDFlag);
                break;

            default:
                break;
            }
        }
Beispiel #2
0
        public void AddSpriteToLayer(RenderLayerEnum layer, IRenderNode node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            if (string.IsNullOrEmpty(node.Name))
            {
                throw new InvalidOperationException("Render node can not have an empty name.");
            }

            if (node.IsAssetOfType(typeof(Sprite)) || node.IsAssetOfType(typeof(AnimatedSprite)))
            {
                CollisionManager.AddSpriteToCollisionManager(node.GetSprite(), node.Name);
            }

            switch (layer)
            {
            case RenderLayerEnum.LAYER1:
                Layer1.Add(node);
                break;

            case RenderLayerEnum.LAYER2:
                Layer2.Add(node);
                break;

            case RenderLayerEnum.LAYER3:
                Layer3.Add(node);
                break;

            case RenderLayerEnum.LAYER4:
                Layer4.Add(node);
                break;

            case RenderLayerEnum.LAYER5:
                Layer5.Add(node);
                break;

            default:
                break;
            }
        }
Beispiel #3
0
        public bool RemoveSpriteFromLayer(RenderLayerEnum layer, IRenderNode node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            switch (layer)
            {
            case RenderLayerEnum.LAYER1:
                foreach (IRenderNode n in Layer1.ToArray())
                {
                    if (n == node)
                    {
                        _ = Layer1.Remove(node);
                        return(true);
                    }
                }
                break;

            case RenderLayerEnum.LAYER2:
                foreach (IRenderNode n in Layer2.ToArray())
                {
                    if (n == node)
                    {
                        _ = Layer2.Remove(node);
                        return(true);
                    }
                }
                break;

            case RenderLayerEnum.LAYER3:
                foreach (IRenderNode n in Layer3.ToArray())
                {
                    if (n == node)
                    {
                        _ = Layer3.Remove(node);
                        return(true);
                    }
                }
                break;

            case RenderLayerEnum.LAYER4:
                foreach (IRenderNode n in Layer4.ToArray())
                {
                    if (n == node)
                    {
                        _ = Layer4.Remove(node);
                        return(true);
                    }
                }
                break;

            case RenderLayerEnum.LAYER5:
                foreach (IRenderNode n in Layer5.ToArray())
                {
                    if (n == node)
                    {
                        _ = Layer5.Remove(node);
                        return(true);
                    }
                }
                break;

            default:
                break;
            }

            return(false);
        }
        public void P_RenderUnsubscribe(PrototypeComponents.IP_RenderComponent sender, RenderLayerEnum renderlayerenum)
        {
            switch (renderlayerenum)
            {
            case RenderLayerEnum.Background:
                UnsubscribeToList(sender, BackgroundLayer);
                break;

            case RenderLayerEnum.Map:
                UnsubscribeToList(sender, MapLayer);
                break;

            case RenderLayerEnum.Sprite:
                UnsubscribeToList(sender, SpriteLayer);
                break;

            case RenderLayerEnum.Effects:
                UnsubscribeToList(sender, EffectLayer);
                break;

            case RenderLayerEnum.Menu:
                UnsubscribeToList(sender, MenuLayer);
                break;

            case RenderLayerEnum.Top:
                UnsubscribeToList(sender, TopLayer);
                break;

            default:
                break;
            }
        }