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; }
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); } }
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(); }; }
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; } }
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)); } } }
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); }
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); } }
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; }
public void processSequence(MovementSequence _sequence) { }
void movementSequenceController_CurrentSequenceChanged(MovementSequenceController controller) { CurrentSequence = controller.CurrentSequence; }
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 })); }