private void LinkEvents() { bool failed = false; if (!DoesObjectExist(_eventManager)) { _eventManager = FindObjectOfType <EventManager>(); if (!DoesObjectExist(_eventManager)) { Debug.Log("WARNING: Cannot find Event Manager in scene!!!"); failed = true; return; } else { _eventManager = FindObjectOfType <EventManager>(); } } if (!failed) { EventLinker.LinkEvents(this, _eventManager); } }
private EventLinker EnsureEventLinker <T>(string eventName) { var eventLinker = GetEventLinker <T>(eventName); if (eventLinker == null) { eventLinker = new EventLinker(typeof(T)); _events.Add(eventName, eventLinker); } return(eventLinker); }
private static void OnEventsChanged([NotNull] DependencyObject d, DependencyPropertyChangedEventArgs e) { if (DesignerProperties.GetIsInDesignMode(d)) return; bool simpleMode = false; var newValue = e.NewValue as string; if(newValue == null) return; if (newValue.StartsWith("SimpleMode")) { simpleMode = true; newValue = newValue.Remove(0, 10); } var oldValue = e.OldValue as string; if (oldValue != null) { foreach (EventLinker linker in EventLinkerCollection.Where(ele => ele.Commands == oldValue && Equals(ele.Target, d))) { linker.Commands = newValue; linker.SimpleMode = simpleMode; linker.Bind(); return; } } if (newValue == null) return; var temp = new EventLinker(newValue, d, simpleMode); EventLinkerCollection.Add(temp); temp.Bind(); }