예제 #1
0
 protected override bool UpdateChildrenLife()
 {
     if (base.UpdateChildrenLife())
     {
         AliveTouchNotes = AliveObjects.OfType <DrawableTouch>().ToList().AsSlimReadOnly();
         return(true);
     }
     return(false);
 }
예제 #2
0
        /// <summary>
        /// Triggers events on drawables in <paramref name="drawables"/> until it is handled.
        /// </summary>
        /// <param name="drawables">The drawables in the queue.</param>
        /// <param name="e">The event.</param>
        /// <returns>Whether the event was handled.</returns>
        protected virtual bool PropagateBlockableEvent(SlimReadOnlyListWrapper <Drawable> drawables, UIEvent e)
        {
            foreach (var d in drawables)
            {
                if (!d.TriggerEvent(e))
                {
                    continue;
                }

                if (shouldLog(e))
                {
                    string detail = d is ISuppressKeyEventLogging?e.GetType().ReadableName() : e.ToString();

                    Logger.Log($"{detail} handled by {d}.", LoggingTarget.Runtime, LogLevel.Debug);
                }

                return(true);
            }

            return(false);
        }