Можно ли выполнить один оператор lua из хост-программы?

Я пытаюсь встроить систему сценариев на основе lua в мой игровой движок. Мне бы хотелось, чтобы в сценариях были как блокирующие, так и неблокирующие команды, например:

character.walkTo(24, 359);  // Blocks until character arrives
c = 35; // Non blocking, execution goes on to the next statement

Поскольку "walkTo" должен быть "активным" для более чем 1 кадра выполнения, я хотел бы иметь возможность запускать 1 оператор за раз с хоста Java вместо всей функции. Это потому, что было бы излишне иметь реальную многопоточность, которая не нужна.

Если бы я мог выполнить только 1 оператор и держать состояние выполнения «приостановленным» до следующего выполнения оператора, я мог бы реализовать блокирующие команды, такие как «walkTo», проверяя, завершена ли команда на хосте, и, если это так, иди перейти к следующему оператору, иначе дождитесь следующей итерации кадра.

Есть ли способ выполнить 1 оператор за раз с хоста Java с LuaJ (или с любым другим Lua api), или я вынужден разработать свой собственный движок сценариев с lex и yacc?

Любая хорошая идея приветствуется, спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос