protected override void NotifyBack(IColorable from, BroadcastSignal signal) { bool contains; lock (BroadcastSignals) { contains = BroadcastSignals.Contains(signal); if (!contains) BroadcastSignals.Add(signal); } if (contains) System.Diagnostics.Debug.WriteLine(String.Format("\tBroadcast repeated {0} ({1}, color={2})", signal, ToString(), CurrentColor == null ? "null" : CurrentColor.ToStringDemuxed())); else System.Diagnostics.Debug.WriteLine(String.Format("\tBroadcast {0} ({1}, color={2})", signal, ToString(), CurrentColor == null ? "null" : CurrentColor.ToStringDemuxed())); signal.Process(this, contains); InvokeOnNotifyBack(); if (!contains) { SplitNotify(GetPrevPaths(), signal); } }