示例#1
0
        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))));
            }
        }
示例#2
0
 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;
     }
 }