Ejemplo n.º 1
0
        // Poistee efektin kaikista listoista ja
        // päivittää ContainsOverridingEffects propertyn valueta.
        private void RemoveFromLists(Effect effect)
        {
            allEffects.Remove(effect);

            if (effect is DrawableEffect)
            {
                DrawableEffect drawable = (DrawableEffect)effect;

                drawableEffects.Remove(drawable);

                foreach (DrawableEffect drawableEffect in drawableEffects)
                {
                    if (drawableEffect.IsOverridingDraw)
                    {
                        ContainsOverridingEffects = true;
                        break;
                    }

                    ContainsOverridingEffects = false;
                }
            }
            else
            {
                notDrawableEffects.Remove(effect);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Remove metodi jolla poistetaan drawable efektejä.
        /// </summary>
        public void RemoveEffect(Predicate <DrawableEffect> predicate)
        {
            DrawableEffect effect = drawableEffects.Find(e => predicate(e));

            if (effect == null)
            {
                throw new NullReferenceException("Drawable effect with given predicate was not found.");
            }
            else
            {
                RemoveFromLists(effect);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Lisää uuden efektin cointaineriin.
        /// </summary>
        public void AddEffects(Effect effect)
        {
            // Kästätään suoraan drawableksi, palauttaa nullin jos tyyppi ei ole oikea.
            DrawableEffect drawableEffect = effect as DrawableEffect;

            allEffects.Add(effect);

            // Lisätään efekti oikeaan listaan.
            if (drawableEffect != null)
            {
                drawableEffects.Add(drawableEffect);
            }
            else
            {
                notDrawableEffects.Add(effect);
            }

            if (drawableEffect != null && drawableEffect.IsOverridingDraw)
            {
                ContainsOverridingEffects = true;
            }
        }