WaitUntil

Namespace:

namespace Lenga\Engine\Core;

class WaitUntil

Methods

keepWaiting

public function keepWaiting()

Example

use Lenga\Engine\Core\Behaviour;
use Lenga\Engine\Core\WaitUntil;

class ConditionWaiter extends Behaviour
{
    private bool $conditionMet = false;

    public function start(): void
    {
        $this->startCoroutine($this->waitForCondition());
    }

    public function update(): void
    {
        // Some condition check
        if (Input::getKeyDown(KeyCode::SPACE)) {
            $this->conditionMet = true;
        }
    }

    private function waitForCondition(): \Generator
    {
        Debug::log('Waiting for condition...');

        // Wait until condition is true
        yield new WaitUntil(function() {
            return $this->conditionMet;
        });

        Debug::log('Condition was met!');
    }
}