public override Task Start(SMHandoff smh) { var behs = BehaviorEntity.GetExecsForIDs(targets); if (behs.Length == 0) { Log.Unity($"Retarget operation with targets {string.Join(", ", targets)} found no BEH", level: Log.Level.WARNING); return(Task.CompletedTask); } else if (behs.Length == 1) { return(behs[0].RunExternalSM(SMRunner.Run(states[0], smh.cT, smh.GCX), false)); } else { return(Task.WhenAll(behs.Select(x => x.RunExternalSM(SMRunner.Run(states[0], smh.cT, smh.GCX), false)))); } }
public void WaitStep() { abh.WaitStep(); looper.WaitStep(); if (!looper.IsUnpaused) { wasPaused = true; } else { if (wasPaused && looper.props.unpause != null) { _ = looper.GCX.exec.RunExternalSM(SMRunner.Run(looper.props.unpause, abh.ch.cT, looper.GCX)); } wasPaused = false; ++elapsedFrames; } }