Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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++;
        }