public void ScriptingTick() { if (_mapScripts == null) { return; } if (!Active) { return; } foreach (var coroutine in _activeCoroutines) { var result = coroutine.Execute(_executionContext); if (result is ActionResult.ActionFinished) { _finishedCoroutines.Add(coroutine); } } foreach (var coroutine in _finishedCoroutines) { _activeCoroutines.Remove(coroutine); } _mapScripts.Execute(_executionContext); OnUpdateFinished?.Invoke(this, this); Timers.Update(); }
public override void Update(GameTime gameTime) { if (_mapScripts == null) { return; } // TODO: Remove this hack when we have separate update and render loops. _30hzHack = !_30hzHack; if (_30hzHack) { return; } if (!Active) { return; } foreach (var coroutine in _activeCoroutines) { var result = coroutine.Execute(_executionContext); if (result is ActionResult.ActionFinished) { _finishedCoroutines.Add(coroutine); } } foreach (var coroutine in _finishedCoroutines) { _activeCoroutines.Remove(coroutine); } _mapScripts.Execute(_executionContext); OnUpdateFinished?.Invoke(this, this); Timers.Update(); Frame++; }