Понятие параметра SCOPE.
Этот параметр используется только в методах для запуска других исполняемых файлов. Этот объект описывает новые переменные в пространстве имен запускаемого файла, где имя поля в этом объекте - имя новой переменной, а значение - соответсвенно ее значение. Параметр SCOPE может быть не передан или иметь значение null, тогда никаких новых переменных не будет создано.
Пример:
SCOPE это объект {
x: 2,
sqr: function(a){
return a * a;
}
}
В исполняемом файле, который запущен с таким SCOPE появятся переменная x со значением 2 и функция sqr, возводящая число в квадрат.
В коде исполняемых файлов вне зависимости от API всегда есть набор стандартных методов и переменных, связанных со структурой мода и его файлами. Далее будут перечисленны все.
Не зависят от типа исполняемого файла:
Переменные:
- __name__ - переменная, содержащая имя мода в виде строки, в основном используется в логах.
- __dir__ - директория мода, которая содержит все его файлы, заканчивается на /
- __config__ - реализация основного конфига мода (config.json), который будет визуализирован в меню настройки модов. Обычно создавать дополнительные конфиги не приходится.
__mod__ - java-объект самого мода, содержаший все остальные значения, техническая переменная.
Методы:
- runCustomSource(path, SCOPE) - запускает исполняемый файл на указанном пути path (локальный путь в директории данного мода) с данным объектом SCOPE. Важно то, что этот файл должен быть описан в build.config и иметь тип custom.
- importLib(libName, moduleName) - импортирует указанный модуль из указанной библиотеки, где libName - имя файла библиотеки без расширения, а moduleName, имя нужного модуля в библиотеке или строка "*", в последнем случае будут импортированы все модули из данной библитеки. В самих библиотеках данный метод недоступен.
Только в библиотеках:
- registerAPIUnit(moduleName, moduleValue) - регистрирует модуль библиотеки, который далее можно будет импортировать с помощью importLib(libName, moduleName) или importLib(libName, "*"), где moduleName - имя модуля, а moduleValue - любое значение, которое вы хотите передать, обычно это объект с набором методов.
Только в лаунчере:
- Launch(SCOPE) - запускает все основные файлы мода с данным SCOPE, если мод уже запущен, то выдаст исключение RuntimeException.