public override void HandleInput() { if (canvas.isCreatingConnection) { if (e.IsMouseDown(MouseButton.Left)) { var source = canvas.connectionSource; var destination = source.CompatiblePort(unit); if (destination != null) { UndoUtility.RecordEditedObject("Connect Units"); source.ValidlyConnectTo(destination); canvas.connectionSource = null; canvas.Widget(source.unit).Reposition(); canvas.Widget(destination.unit).Reposition(); GUI.changed = true; } e.Use(); } else if (e.IsMouseDown(MouseButton.Right)) { canvas.CancelConnection(); e.Use(); } } base.HandleInput(); }
public void PerformDragAndDrop() { UndoUtility.RecordEditedObject("Drag & Drop Macro"); state.nest.source = GraphSource.Macro; state.nest.macro = DragAndDropUtility.Get <FlowMacro>(); state.nest.embed = null; GUI.changed = true; }
public void AddUnit(IUnit unit, Vector2 position) { UndoUtility.RecordEditedObject("Create Unit"); unit.guid = Guid.NewGuid(); unit.position = position.PixelPerfect(); graph.units.Add(unit); selection.Select(unit); GUI.changed = true; }
public void AddState(IState state, Vector2 position) { UndoUtility.RecordEditedObject("Create State"); state.position = position; graph.states.Add(state); state.position -= this.Widget(state).position.size / 2; state.position = state.position.PixelPerfect(); this.Widget(state).Reposition(); selection.Select(state); GUI.changed = true; }
public void EndTransition(IState destination) { UndoUtility.RecordEditedObject("Create State Transition"); var transition = FlowStateTransition.WithDefaultTrigger(transitionSource, destination); graph.transitions.Add(transition); transitionSource = null; this.Widget(transition).BringToFront(); selection.Select(transition); GUI.changed = true; }
private void RemoveConnections() { UndoUtility.RecordEditedObject("Disconnect Port"); foreach (var connectedPort in port.connectedPorts) { canvas.Widget(connectedPort.unit).Reposition(); } unitWidget.Reposition(); port.Disconnect(); e.Use(); GUI.changed = true; }
private void FinishConnection(IUnitPort source, IUnitPort destination) { if (source.CanValidlyConnectTo(destination)) { UndoUtility.RecordEditedObject("Connect Units"); source.ValidlyConnectTo(destination); canvas.connectionSource = null; canvas.Widget(source.unit).Reposition(); canvas.Widget(destination.unit).Reposition(); GUI.changed = true; } else { Debug.LogWarningFormat ( "Cannot connect this {0} to this {1}.\n", source.GetType().HumanName().ToLower(), destination.GetType().HumanName().ToLower() ); } }
private void ReplaceUnit() { var oldUnit = unit; var unitPosition = oldUnit.position; var preservation = UnitPreservation.Preserve(oldUnit); var options = new UnitOptionTree(new GUIContent("Unit")); options.reference = reference; var activatorPosition = new Rect(e.mousePosition, new Vector2(200, 1)); var context = this.context; LudiqGUI.FuzzyDropdown ( activatorPosition, options, null, delegate(object _option) { var option = (IUnitOption)_option; context.BeginEdit(); UndoUtility.RecordEditedObject("Replace Unit"); var graph = oldUnit.graph; oldUnit.graph.units.Remove(oldUnit); var newUnit = option.InstantiateUnit(); newUnit.guid = Guid.NewGuid(); newUnit.position = unitPosition; graph.units.Add(newUnit); preservation.RestoreTo(newUnit); option.PreconfigureUnit(newUnit); selection.Select(newUnit); GUI.changed = true; context.EndEdit(); } ); }
protected void ToggleStart() { UndoUtility.RecordEditedObject("Toggle State Start"); state.isStart = !state.isStart; }