У меня есть два сценария Lua, содержащие функции с одинаковыми именами:
луаСкриптА:
function init()
print( 'This function was run from Script A' )
end
LuaScriptB:
function init()
print( 'This function was run from Script B' )
end
Я хотел бы загрузить обе эти функции с помощью LuaJ в среду globals, для одного скрипта я обычно делаю это следующим образом:
LuaValue chunk = globals.load(new FileInputStream(luaScriptA), scriptName, "t",
globals);
chunk.call();
Это загрузит функцию init() в глобальные переменные, и я могу выполнить эту функцию из java с помощью:
globals.get("init").call();
Проблема возникает, когда я загружаю второй скрипт, это перезапишет все функции с тем же именем, которые были объявлены ранее. Можно ли как-то предотвратить это и легко различить две функции? Например что-то вроде:
globals.get("luaScriptA").get("init").call(); //Access the init function of script A
globals.get("luaScriptB").get("init").call(); //Access the init function of script B
Обратите внимание, что скрипт содержит и другие функции, и моя цель — запускать отдельные функции внутри скрипта, а не весь скрипт сразу. Работаю на платформе JME.