private void DisplayStepRoutine(StepRoutineInfo stepRoutineInfo) { ImGui.Text($"Name: {stepRoutineInfo.StepRoutineName ?? "null"}"); ImGui.Text($"ID: {stepRoutineInfo.StepRoutineId}"); ImGui.Text($"State: {Enum.GetName(typeof(StepRoutineState), stepRoutineInfo.State)}"); if (stepRoutineInfo.CurrentWaitFor is null) { ImGui.Text("Not waiting for anything."); } else { ImGui.Text($"Wait type: {stepRoutineInfo.CurrentWaitFor.GetType().Name}"); ImGui.Text($"Additional wait info: {stepRoutineInfo.CurrentWaitFor.ToString() ?? "null"}"); } }
public void SimpleStepRoutineStartTest() { StepRoutineInfo simpleStepRoutineInfo = SimpleStepRoutine().StartStepRoutine("SimpleStepRoutine"); StepRoutineInfo genericSimpleStepRoutineInfo = GenericSimpleStepRoutine().StartStepRoutine("GenericSimpleStepRoutine"); Assert.IsFalse(SimpleStepRoutineWaitDone); Assert.IsFalse(GenericSimpleStepRoutineWaitDone); TestEvent.Instance.RaiseEvent(); Assert.IsTrue(SimpleStepRoutineWaitDone); Assert.IsTrue(GenericSimpleStepRoutineWaitDone); Assert.IsTrue(ReferenceEquals(simpleStepRoutineInfo, StepRoutineManager.GetStepRoutine(simpleStepRoutineInfo.StepRoutineId))); Assert.IsTrue(ReferenceEquals(genericSimpleStepRoutineInfo, StepRoutineManager.GetStepRoutine(genericSimpleStepRoutineInfo.StepRoutineId))); Assert.IsTrue(ReferenceEquals(simpleStepRoutineInfo, StepRoutineManager.GetStepRoutine(simpleStepRoutineInfo.StepRoutineName))); Assert.IsTrue(ReferenceEquals(genericSimpleStepRoutineInfo, StepRoutineManager.GetStepRoutine(genericSimpleStepRoutineInfo.StepRoutineName))); }
// TODO: couldn't this stuff just be done in the constructor? It wouldn't allow a Resume(), but perhaps the constructor should call this? public abstract void Start(StepRoutineInfo stepRoutine);