OpenComputers/Term API
Базовый интерфейс для вывода текста на монитор и ввода пользовательских данных.
term.isAvailable(): boolean
Возвращает true
если Term API доступен. Т.е. когда подключен "основной" монитор.
Другими словами, если функции term.read
и term.write
будут что-нибудь делать.
term.getCursor(): number, number
Возвращает позицию курсора.
term.setCursor(col: number, row: number)
Перемещает курсор в заданные координаты.
term.getCursorBlink(): boolean
Возвращает true
если курсор мигает. Т.е. работает в режиме, когда он каждые полсекунды меняет свой вид между заполненным блоком и пробелом.
term.setCursorBlink(enabled: boolean)
Включает/выключает мигание курсора.
term.clear()
Очищает экран, и перемещает курсор в координаты (1, 1).
term.clearLine()
Очищает полностью линию, в которой находится курсор, и перемещает его в начало (x = 1).
term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string
Считывает текст из терминала, т.е. позволяет пользователю ввести данные. К примеру, эта функция используется шеллом (см. Shell API) и интерпретатором Lua для пользовательского ввода.
При этом, текущая строка начиная с позиции курсора становится доступна для редактирования. Пользователь может перемещать курсор стрелками ←/→ и клавишами Home/End.
Необязательный параметр — таблица history
. Она определяет историю пользовательского ввода. Т.е. пользователь сможет вернуться к введенному ранее тексту при помощи стрелок ↑/↓. Пример — ввод команд в шелл или интерпретатор Lua.
Введенный пользователем текст добавляется в конец таблицы.
Если параметр dobreak
равен false
- после нажатия на ↵ Enter, курсор не будет перемещен на новую строку. Значение nil
эквивалентно true
.
Параметр hint
используется для автодополнения ввода (Tab ↹). Он может быть таблицей со строками, или функцией, которая возвращает таблицу со строками и принимает два аргумента: введенный текст и позицию в этом тексте (т.е. сигнатура функции выглядит так: function(line:string, pos:number):table
).
Параметр pwchar
- это символ для маскировки ввода. Если вы передадите в него строку, то весь вводимый пользователем текст будет скрываться первым символом этой строки. Например параметр "*"
будет маскировать текст звездочками.
Функция возвращает строку, если ввод был успешным. Иначе — nil
(если пользователь нажал Ctrl + C или Ctrl + D, или терминал стал недоступен).
Примечание: функция использует io.stdin:read()
.
term.write(value: string[, wrap: boolean])
Выводит текст (с переносами по словам, если задан параметр wrap
) в терминал, начиная с текущей позиции курсора. При выводе курсор соответственно сдвигается. Функция автоматически избавляется от табуляции в тексте (при помощи text.detab
). При достижении текстом нижнего края экрана (когда wrap = true
), изображение сдвигается вверх на одну строку.
Вправо изображение не сдвигается (когда выводится длинный текст без параметра wrap
).
Примечание: функция использует io.stdout:write()
.