private void DisplayNodeOptionsAtPosition(TransitionConnection transition) { GenericMenu genericMenu = new GenericMenu(); genericMenu.AddItem(new GUIContent("Remove transition"), false, () => _window.RemoveTransition(transition)); genericMenu.ShowAsContext(); }
public void RemoveTransition(TransitionConnection transition) { if (_transitions.Remove(transition)) { if (IsSelected(transition)) { DeselectAll(); } RecordAndRebuild(); } }
public void AddTransitionFrom(TransitionInfo transitionInfo) { var source = StateNodeOf(transitionInfo.StateFrom); var target = StateNodeOf(transitionInfo.StateTo); var newTransition = new TransitionConnection(source, target, _builder.TriggerType, transitionInfo.Trigger, transitionInfo.GuardConditions); newTransition.OnTriggerChanged += (connection, previousTrigger, currentTrigger) => RecordAndRebuild(); newTransition.OnGuardConditionsChanged += (connection, currentGuardConditions) => RecordAndRebuild(); _transitions.Add(newTransition); }
public void SelectTransition(TransitionConnection transition) { DeselectAll(); for (int i = 0; i < _transitions.Count; i++) { var currentTransition = _transitions[i]; if (currentTransition == transition) { GUI.FocusControl(null); _selectedObject = currentTransition; } } Repaint(); }
public void AddTransition(StateNode source, StateNode target) { DoWithUndoAndDirtyFlag(() => { if (ContainsTransitionWithSourceAndTarget(source, target)) { return; } var newTransition = new TransitionConnection(source, target, _builder.TriggerType); newTransition.OnTriggerChanged += (connection, previousTrigger, currentTrigger) => RecordAndRebuild(); newTransition.OnGuardConditionsChanged += (connection, currentGuardConditions) => RecordAndRebuild(); _transitions.Add(newTransition); }); }
public void HandleEventFor(TransitionConnection transition, Event nodeEvent) { switch (nodeEvent.type) { case EventType.MouseDown: if (IsLeftMouseClick(nodeEvent.button)) { if (transition.IsPointOverConnection(nodeEvent.mousePosition)) { _window.SelectTransition(transition); nodeEvent.Use(); } } else if (IsRightMouseClick(nodeEvent.button) && _window.IsSelected(transition)) { DisplayNodeOptionsAtPosition(transition); nodeEvent.Use(); } break; } }
public bool IsSelected(TransitionConnection transition) { return(object.ReferenceEquals(_selectedObject, transition)); }