private void RegisterUnitToOrdob_Aux(Unit u)
        {
            var tve = AddTreeViewElement(u);

            var binder = new MultiEventObserver();

            BindSelectionEvent(binder,
                               (sender, args) => {
                //Debug.Log("Triggered by direct selection status change.");
                if (sender is Unit)
                {
                    tve.ActualOnPointerDown(null);
                }
            }, u);

            tve.BindPressEvent(binder,
                               (sender, args) => {
                //Debug.Log("Triggered by direct button status change (click)");
                if (args is SimpleEventArgs)
                {
                    if ((bool)(args as SimpleEventArgs).args[0])
                    {
                        SelectionHandler.GetUsedSelector().SelectEntity(u);
                    }
                    else
                    {
                        SelectionHandler.GetUsedSelector().DeselectEntity(u);
                    }
                }
            });

            trackedUnitsTVEs.Add(tve);
        }
Exemple #2
0
        public void BindPressEvent(MultiEventObserver binder, Action <object, EventArgs> action)
        {
            var id = binder.AddNewEventAndSubscribeMethodToIt(action);

            onPressedInBind.SubscribeEventHandlerMethod("bindpress",
                                                        _ => binder.InvokeEvent(id, this, new SimpleEventArgs(_)));
            onUnbind += () => UnbindPressEvent(binder, id);
        }
 private void UnbindSelectionEvent(MultiEventObserver binder, Unit u)
 {
     if (trackedUnitsBinders.ContainsKey(u))
     {
         u.GetOnSelectionStateChangeObserver().UnsubscribeEventHandlerMethod("doactiontreeview");
         trackedUnitsBinders.Remove(u);
     }
 }
Exemple #4
0
        private void BindTaskSelectionEvent(MultiEventObserver binder, Action <object, EventArgs> action)
        {
            var id = binder.AddNewEventAndSubscribeMethodToIt(action);

            GetOnSelectionStateChangeObserver().SubscribeEventHandlerMethod("whateverkey",
                                                                            _ => { if (_.Item3 == 0)
                                                                                   {
                                                                                       binder.InvokeEvent(id, this, new SimpleEventArgs(_.Item2));
                                                                                   }
                                                                            }, true);
        }
Exemple #5
0
        public void InitBinderForTask(GameObject associatedTaskEditMenu)
        {
            var binder = new MultiEventObserver();

            BindTaskSelectionEvent(binder,
                                   (sender, args) => {
                //Debug.Log("Triggered by direct selection status change.");
                if (args is SimpleEventArgs)
                {
                    associatedTaskEditMenu.SetActiveRecursivelyExt(((bool)(args as SimpleEventArgs).args[0]));
                }
            });
        }
 private void BindSelectionEvent(MultiEventObserver binder, Action <object, EventArgs> action, Unit u)
 {
     if (!trackedUnitsBinders.ContainsKey(u))
     {
         var id = binder.AddNewEventAndSubscribeMethodToIt(action);
         u.GetOnSelectionStateChangeObserver().SubscribeEventHandlerMethod("doactiontreeview",
                                                                           _ => { if (_.Item3 == 0)
                                                                                  {
                                                                                      binder.InvokeEvent(id, u, null);
                                                                                  }
                                                                           });
         trackedUnitsBinders.Add(u, binder);
     }
 }
Exemple #7
0
 private void UnbindPressEvent(MultiEventObserver binder, int sourceId)
 {
     onPressedInBind.UnsubscribeEventHandlerMethod("bindpress");
 }