Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
        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()
         );
     }
 }
Esempio n. 8
0
        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();
            }
            );
        }
Esempio n. 9
0
        protected void ToggleStart()
        {
            UndoUtility.RecordEditedObject("Toggle State Start");

            state.isStart = !state.isStart;
        }