В OpenComputers доступны многие функции стандартных библиотек Lua. Однако некоторые из них могут быть ограничены, или переопределены.
Подробнее о стандартных библиотеках Lua вы можете узнать в официальной документации здесь.
Функции базовой библиотеки Lua:
collectgarbage — Не доступна.dofile и loadfile — Переопределены для загрузки из файловой системы OpenComputers (см. Filesystem API).load — Может использоваться только для загрузки текста. Загрузка байткода может быть разрешена в настройках мода, однако не рекомендуется, так как представляет собой большую угрозу безопасности.print — Переопределена для вывода на консоль (см. Term API)
Набор функций по управлению сопрограммами coroutine доступен в моде без особенных изменений.
Примечание: функции coroutine.resume и coroutine.yield переопределены в моде с учетом того, что программа прерывает свое выполнение, если она не отвечает долгое время (точное значение смотрите в настройках мода).
Функции работы с модулями package переопределены в моде OpenComputer. Однако должны работать аналогично, за исключением следующих функций:
package.config — не используетсяpackage.cpath — не используетсяpackage.loadlib — не переопределенаПоследние две не используются в связи с тем, что невозможна загрузка кода C из OpenComputers.
Оригинальная библиотека для работы со строками string доступна без изменений.
Примечание: функции GPU API (а также term.write и print) полностью совместимы со строками в формате UTF-8. Кроме того, для облегчения работы с форматом Unicode, OpenComputers предоставляет библиотеку Unicode API.
Оригинальная библиотека для работы с таблицами table доступна без изменений.
Оригинальная библиотека математических функций math доступна с незначительными изменениями:
math.random использует отдельный экземпляр класса java.util.Random для каждого потока Lua.math.randomseed применяется к своему экземпляру java.util.Random соответственно.
Оригинальная библиотека битовых операций bit32 доступна без изменений.
Функции библиотеки io переопределены для работы с консолью и файловой системой OpenComputers.
Для стандартного ввода/вывода используются функции term.read / term.write.
Функции по большей части функционально эквивалентны оригинальным. Они могут возвращать отличающиеся сообщения ошибки.
io.popen — не доступна.io.open — не поддерживает режим +. Поддерживаемые режимы: r, w, a, rb, wb и ab. Побитовый режим чтения файлов поддерживает загрузку строк в формате UTF-8.io.stdin — читает данные с помощью term.read.io.stdout — пишет используя term.write.io.stderr — также пишет используя term.write, однако делает это красным цветом (если цвета поддерживаются монитором/видеокартой компьютера).io.read — поддерживает режим "n" для ввода данных типа number вместо string. Для этого "n" должен передаваться в функцию io.read как аргумент.
Функции библиотеки os частично переопределены.
os.clock — возвращает приблизительное время работы CPU. Это не то же самое, что время работы компьютера (см. функцию computer.uptime из Computer API).os.date — использует внутриигровую дату. Поддерживает различные форматы.os.execute — переопределена для запуска программ с помощью shell.execute. См. Shell APIos.exit — создает событие ошибки, для того чтобы закрыть текущую сопрограмму.os.setenv — добавляет переменные окружения шелла.os.remove — алиас к filesystem.remove.os.rename — алиас к filesystem.rename.os.setlocale — не доступна.os.time — переопределена, выводит внутриигровое время, начиная с создания мира. Учтите, что время указывается во внутриигровых "секундах". Чтобы получить число тактов домножте это значение на 1000/60/60 (в одном дне 24000 тактов) и вычтите 6000. Это число (6000) взято не случайным образом. Новая игра в Minecraft начинается в "полдень", который и считается точкой отсчета времени (ноль).os.tmpname переопределена для генерации нового (неиспользуемого) имени в каталоге /tmp.
Кроме того добавлена одна новая функция:
os.sleep(seconds: number) — приостанавливает скрипт на указанный промежуток времени. При этом сигналы (и события) по прежнему обрабатываются, когда компьютер приостановлен. События "копятся" в очереди событий и будут обработаны, когда компьютер возобновит работу.См. также функции Computer API.
Доступна только функция debug.traceback.