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;
            }
        }
 private void UnsubscribeToList(PrototypeComponents.IP_RenderComponent sender, List <PrototypeComponents.IP_RenderComponent> bucket)
 {
     if (bucket.Contains(sender))
     {
         bucket.Remove(sender);
     }
 }
        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;
            }
        }
 private void SubscribeToList(PrototypeComponents.IP_RenderComponent sender, List <PrototypeComponents.IP_RenderComponent> bucket, bool dflag)
 {
     if (!bucket.Contains(sender))
     {
         bucket.Add(sender);
         dflag = true;
     }
 }