Esempio n. 1
0
    private IEnumerator JumpSequence(MovementSequence _sequence, SequenceNode _node, SequenceCallback _completionCallback)
    {
        float   _jumpSpeed = jumpStartSpeed;
        Vector2 _peak;

        if (zoneNumber == 0)
        {
            _peak = new Vector2(
                (character.transform.position.x + _node.transform.position.x) / 2,
                Mathf.Max(character.transform.position.y, _node.transform.position.y) + 1f
                );
        }
        else if (zoneNumber == 1)
        {
            _peak = new Vector2(
                Mathf.Min(character.transform.position.x, _node.transform.position.x) - 1f,
                (character.transform.position.y + _node.transform.position.y) / 2f
                );
        }
        else if (zoneNumber == 2)
        {
            _peak = new Vector2(
                (character.transform.position.x + _node.transform.position.x) / 2,
                Mathf.Min(character.transform.position.y, _node.transform.position.y) - 1f
                );
        }
        else
        {
            _peak = new Vector2(
                Mathf.Max(character.transform.position.x, _node.transform.position.x) + 1f,
                (character.transform.position.y + _node.transform.position.y) / 2f
                );
        }

        while (Vector2.Distance(character.transform.position, _peak) > 0.1f)
        {
            character.transform.position = Vector2.MoveTowards(character.transform.position, _peak, _jumpSpeed * Time.deltaTime);
            if (_jumpSpeed < jumpMaxSpeed)
            {
                _jumpSpeed += jumpSpeedIncrease * Time.deltaTime;
            }

            yield return(new WaitForEndOfFrame());
        }

        while (Vector2.Distance(character.transform.position, _node.transform.position) > 0.1f)
        {
            character.transform.position = Vector2.MoveTowards(character.transform.position, _node.transform.position, _jumpSpeed * Time.deltaTime);
            if (_jumpSpeed < jumpMaxSpeed)
            {
                _jumpSpeed += jumpSpeedIncrease * Time.deltaTime;
            }

            yield return(new WaitForEndOfFrame());
        }

        moveNextNode(_sequence, _completionCallback);

        yield return(new WaitForEndOfFrame());
    }
 void clear_MouseButtonClick(Widget source, EventArgs e)
 {
     recordingSequence = null;
     play.Enabled      = false;
     save.Enabled      = false;
     clear.Enabled     = false;
 }
 public MovementSequenceEditorView(String name, MovementSequence sequence = null, bool listenForSequenceChanges = false)
     : base(name)
 {
     ElementName = new MDILayoutElementName(GUILocationNames.MDI, DockLocation.Bottom)
     {
         AllowedDockLocations = DockLocation.Top | DockLocation.Bottom | DockLocation.Floating
     };
     Sequence = sequence;
     ListenForSequenceChanges = listenForSequenceChanges;
 }
Esempio n. 4
0
 public void addKeyFramesToSequence(MovementSequence movementSequence, MovementSequenceEditor editor, float markerTime, float totalDuration)
 {
     foreach (MovementSequenceState copiedAction in copiedActions)
     {
         copiedAction.StartTime = copiedAction.StartTime - startTimeZeroOffset + markerTime;
         if (copiedAction.StartTime > totalDuration)
         {
             copiedAction.StartTime = totalDuration;
         }
         movementSequence.addState(copiedAction);
         editor.addStateToTimeline(copiedAction);
     }
 }
Esempio n. 5
0
        void sequenceController_SequenceAdded(MovementSequenceController controller, MovementSequenceGroup group, MovementSequenceInfo sequenceInfo)
        {
            ButtonGridItem item = buttonGrid.addItem(group.Name, sequenceInfo.Name);

            item.UserObject   = sequenceInfo;
            item.ItemClicked += (s, e) =>
            {
                MovementSequence sequence = sequenceController.loadSequence(sequenceInfo);
                sequenceController.stopPlayback();
                sequenceController.CurrentSequence = sequence;
                sequenceController.playCurrentSequence();
                this.hide();
            };
        }
Esempio n. 6
0
    private IEnumerator RunSequence(MovementSequence _sequence, SequenceNode _node, SequenceCallback _completionCallback)
    {
        while (Vector2.Distance(character.transform.position, _node.transform.position) > 0.1f)
        {
            character.transform.position = Vector2.MoveTowards(character.transform.position, _node.transform.position, runSpeed * Time.deltaTime);
            yield return(new WaitForEndOfFrame());
        }

        character.transform.position = _node.transform.position;

        moveNextNode(_sequence, _completionCallback);

        yield return(new WaitForEndOfFrame());
    }
        public override void capture()
        {
            MovementSequence sequence = TimelineController.MovementSequenceController.CurrentSequence;

            if (sequence != null)
            {
                MovementSequence = copySaver.copy <MovementSequence>(sequence);
            }
            else
            {
                MovementSequence          = new MovementSequence();
                MovementSequence.Duration = Duration;
            }
        }
Esempio n. 8
0
 public void processSequence(MovementSequence _sequence, SequenceCallback _completionCallback)
 {
     playingNodeIndex = 0;
     if (_sequence.sequences.Length > 0)
     {
         if (_sequence.sequences[playingNodeIndex].movementType == MovementType.run)
         {
             StartCoroutine(RunSequence(_sequence, _sequence.sequences[playingNodeIndex], _completionCallback));
         }
         else if (_sequence.sequences[playingNodeIndex].movementType == MovementType.jump)
         {
             StartCoroutine(JumpSequence(_sequence, _sequence.sequences[playingNodeIndex], _completionCallback));
         }
     }
 }
Esempio n. 9
0
        public override MovementSequence loadSequence(XmlSaver xmlSaver)
        {
            MovementSequence loadingSequence = null;

            try
            {
                using (XmlTextReader xmlReader = new XmlTextReader(Assembly.GetManifestResourceStream(EmbeddedResourceName)))
                {
                    loadingSequence      = xmlSaver.restoreObject(xmlReader) as MovementSequence;
                    loadingSequence.Name = Name;
                }
            }
            catch (Exception e)
            {
                Log.Error("Could not read muscle sequence {0}.\nReason: {1}.", EmbeddedResourceName, e.Message);
            }
            return(loadingSequence);
        }
Esempio n. 10
0
 private void moveNextNode(MovementSequence _sequence, SequenceCallback _completionCallback)
 {
     playingNodeIndex++;
     if (_sequence.sequences.Length > playingNodeIndex)
     {
         if (_sequence.sequences[playingNodeIndex].movementType == MovementType.run)
         {
             StartCoroutine(RunSequence(_sequence, _sequence.sequences[playingNodeIndex], _completionCallback));
         }
         else if (_sequence.sequences[playingNodeIndex].movementType == MovementType.jump)
         {
             StartCoroutine(JumpSequence(_sequence, _sequence.sequences[playingNodeIndex], _completionCallback));
         }
     }
     else
     {
         endSequence(_completionCallback);
     }
 }
Esempio n. 11
0
        public override MovementSequence loadSequence(XmlSaver xmlSaver)
        {
            MovementSequence loadingSequence = null;

            try
            {
                VirtualFileSystem archive = VirtualFileSystem.Instance;
                using (XmlTextReader xmlReader = new XmlTextReader(archive.openStream(FileName, FileMode.Open, FileAccess.Read)))
                {
                    loadingSequence = xmlSaver.restoreObject(xmlReader) as MovementSequence;
                    VirtualFileInfo fileInfo = archive.getFileInfo(FileName);
                    loadingSequence.Name = fileInfo.Name.Substring(0, fileInfo.Name.Length - 4);
                }
            }
            catch (Exception e)
            {
                Log.Error("Could not read muscle sequence {0}.\nReason: {1}.", FileName, e.Message);
            }
            return(loadingSequence);
        }
        void record_CheckedChanged(Widget source, EventArgs e)
        {
            if (record.Checked)
            {
                medicalController.OnLoopUpdate += MedicalController_OnLoopUpdate;
                recordingSequence   = new MovementSequence();
                lastFrameRecordTime = frequencyMicro;
                totalTimeMicro      = 0;
                frequencyMicro      = Clock.SecondsToMicroseconds(1.0f / captureRate.Value);

                play.Enabled  = false;
                save.Enabled  = false;
                clear.Enabled = false;
            }
            else
            {
                medicalController.OnLoopUpdate -= MedicalController_OnLoopUpdate;
                recordingSequence.sortStates();

                play.Enabled  = true;
                save.Enabled  = true;
                clear.Enabled = true;
            }
        }
 public override void reverseSides()
 {
     MovementSequence.reverseSides();
 }
 public PlaySequenceAction(MovementSequence movementSequence, float startTime, float duration)
 {
     this.MovementSequence = movementSequence;
     this.StartTime        = startTime;
     this.Duration         = duration;
 }
Esempio n. 15
0
 public void processSequence(MovementSequence _sequence)
 {
 }
Esempio n. 16
0
 void movementSequenceController_CurrentSequenceChanged(MovementSequenceController controller)
 {
     CurrentSequence = controller.CurrentSequence;
 }
Esempio n. 17
0
 public MovementKeyframeData(MovementSequenceState keyframe, MovementSequence sequence)
 {
     this.keyframe = keyframe;
     this.sequence = sequence;
 }
        public MovementSequenceEditorContext(MovementSequence movementSequence, String file, MovementSequenceTypeController movementSequenceTypeController)
        {
            this.movementSequenceTypeController = movementSequenceTypeController;
            this.currentFile      = file;
            this.movementSequence = movementSequence;

            mvcContext = new AnomalousMvcContext();
            mvcContext.StartupAction = "Common/Start";
            mvcContext.FocusAction   = "Common/Focus";
            mvcContext.BlurAction    = "Common/Blur";
            mvcContext.SuspendAction = "Common/Suspended";
            mvcContext.ResumeAction  = "Common/Resumed";

            mvcContext.Models.add(new EditMenuManager());

            MovementSequenceEditorView movementSequenceView = new MovementSequenceEditorView("MovementSequenceEditor", movementSequence);

            movementSequenceView.ElementName = new MDILayoutElementName(GUILocationNames.MDI, DockLocation.Bottom);
            mvcContext.Views.add(movementSequenceView);

            EditorTaskbarView taskbar = new EditorTaskbarView("InfoBar", currentFile, "Editor/Close");

            taskbar.addTask(new CallbackTask("SaveAll", "Save All", "Editor/SaveAllIcon", "", 0, true, item =>
            {
                saveAll();
            }));
            taskbar.addTask(new RunMvcContextActionTask("Save", "Save Movement Sequence File", "CommonToolstrip/Save", "File", "Editor/Save", mvcContext));
            taskbar.addTask(new RunMvcContextActionTask("Cut", "Cut", "Editor/CutIcon", "", "Editor/Cut", mvcContext));
            taskbar.addTask(new RunMvcContextActionTask("Copy", "Copy", "Editor/CopyIcon", "", "Editor/Copy", mvcContext));
            taskbar.addTask(new RunMvcContextActionTask("Paste", "Paste", "Editor/PasteIcon", "", "Editor/Paste", mvcContext));
            taskbar.addTask(new RunMvcContextActionTask("SelectAll", "Select All", "Editor/SelectAllIcon", "", "Editor/SelectAll", mvcContext));
            mvcContext.Views.add(taskbar);

            mvcContext.Controllers.add(new MvcController("Editor",
                                                         new RunCommandsAction("Show",
                                                                               new ShowViewCommand("MovementSequenceEditor"),
                                                                               new ShowViewCommand("InfoBar")),
                                                         new RunCommandsAction("Close", new CloseAllViewsCommand()),
                                                         new CallbackAction("Save", context =>
            {
                save();
            }),
                                                         new CutAction(),
                                                         new CopyAction(),
                                                         new PasteAction(),
                                                         new SelectAllAction()));

            mvcContext.Controllers.add(new MvcController("Common",
                                                         new RunCommandsAction("Start", new RunActionCommand("Editor/Show")),
                                                         new CallbackAction("Focus", context =>
            {
                GlobalContextEventHandler.setEventContext(eventContext);
                if (Focus != null)
                {
                    Focus.Invoke(this);
                }
            }),
                                                         new CallbackAction("Blur", context =>
            {
                GlobalContextEventHandler.disableEventContext(eventContext);
                if (Blur != null)
                {
                    Blur.Invoke(this);
                }
            }),
                                                         new RunCommandsAction("Suspended", new SaveViewLayoutCommand()),
                                                         new RunCommandsAction("Resumed", new RestoreViewLayoutCommand())));

            eventContext = new EventContext();
            ButtonEvent saveEvent = new ButtonEvent(EventLayers.Gui);

            saveEvent.addButton(KeyboardButtonCode.KC_LCONTROL);
            saveEvent.addButton(KeyboardButtonCode.KC_S);
            saveEvent.FirstFrameUpEvent += eventManager =>
            {
                saveAll();
            };
            eventContext.addEvent(saveEvent);

            eventContext.addEvent(new ButtonEvent(EventLayers.Gui,
                                                  frameUp: eventManager =>
            {
                mvcContext.runAction("Editor/Cut");
            },
                                                  keys: new KeyboardButtonCode[] { KeyboardButtonCode.KC_LCONTROL, KeyboardButtonCode.KC_X }));

            eventContext.addEvent(new ButtonEvent(EventLayers.Gui,
                                                  frameUp: eventManager =>
            {
                mvcContext.runAction("Editor/Copy");
            },
                                                  keys: new KeyboardButtonCode[] { KeyboardButtonCode.KC_LCONTROL, KeyboardButtonCode.KC_C }));

            eventContext.addEvent(new ButtonEvent(EventLayers.Gui,
                                                  frameUp: eventManager =>
            {
                mvcContext.runAction("Editor/Paste");
            },
                                                  keys: new KeyboardButtonCode[] { KeyboardButtonCode.KC_LCONTROL, KeyboardButtonCode.KC_V }));

            eventContext.addEvent(new ButtonEvent(EventLayers.Gui,
                                                  frameUp: eventManager =>
            {
                mvcContext.runAction("Editor/SelectAll");
            },
                                                  keys: new KeyboardButtonCode[] { KeyboardButtonCode.KC_LCONTROL, KeyboardButtonCode.KC_A }));
        }