OpenComputers/Computer API

Материал из Minecraft Wiki
Перейти к: навигация, поиск

Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того — некоторые функции для управления пользователями.


  • computer.address(): string

Возвращает адрес компонента.


  • computer.romAddress(): string

Возвращает адрес файловой системы ROM (ПЗУ).

Внимание: эта функция устарела! Начиная с версии мода 1.3, компьютеры не имеют памяти ROM.


  • computer.tmpAddress(): string

Возвращает адрес временной файловой системы компьютера (если такая существует).


  • computer.freeMemory(): number

Возвращает объём свободной памяти компьютера, в байтах. Если это число близко к нулю, велика вероятность того, что компьютер скоро завершит работу с ошибкой переполнения памяти.


  • computer.totalMemory(): number

Возвращает общий объём памяти, установленной в компьютер.


  • computer.energy(): number

Возвращает количество энергии доступное в сети, в которой находится компьютер. Для робота — это количество его собственной энергии/топлива.


  • computer.maxEnergy(): number

Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для робота — это объём его встроенного аккумулятора.


  • computer.isRobot(): boolean

Внимание: эта функция устарела! Используйте вместо неё component.isAvailable("robot").

Возвращает true, если компьютер — робот и false в противном случае.


  • computer.uptime(): number

Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. То есть когда игра стоит на паузе, время не считается.


  • computer.shutdown([reboot: boolean])

Выключает компьютер. Перезагружает, если параметр reboot равен true.


  • computer.users(): string, ...

Список всех пользователей, зарегистрированных на этом компьютере, в виде кортежа. Если вам необходимо использовать список с итератором используйте table.pack.

Вне зависимости от списка зарегистрированных пользователей, доступом к компьютеру всегда обладают администраторы сервера.


  • computer.addUser(name: string): boolean or nil, string

Регистрирует нового пользователя. Возвращает true, если пользователь был успешно добавлен, nil и сообщение ошибки в противном случае.

Добавляемый пользователь (игрок), должен в этот момент находиться в игре. Он получает полные права доступа к компьютеру.


  • computer.removeUser(name: string): boolean

Удаляет учётную запись пользователя. Возвращает true, если пользователь был успешно удален, false если такой пользователь зарегистрирован не был.

Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку.


  • computer.pushSignal(name: string[, ...])

Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO («Первым пришел — первым ушел»). Сигнал должен как минимум иметь название (name). Сопровождающие аргументы не обязательны. Обратите внимание, что сопровождающие аргументы ограничены базовыми типами данных: nil, boolean, number и string. Типы table и function не поддерживаются.


  • computer.pullSignal([timeout: number]): name, ...

Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет nil. Если время не было определено, продолжает ожидание.

Первое возвращаемое значение — название сигнала. Сопровождающие аргументы идут в том порядке, в каком были отправлены функцией computer.pushSignal

Важно: очень рекомендуется использовать функцию event.pull для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события («event»), что требуется для работы некоторых библиотек (например — Term API). Кроме того, станет более удобной фильтрация событий.


  • computer.beep([frequency:number, duration:number])

Звук «динамика материнской платы». Компьютер издает звук заданной частоты и длительности.

Частота (frequency) звука задается в пределах 20-2000 Гц.

Продолжительность (duration) — от 0.05 до 5 секунд.

По умолчанию функция воспроизводит звук частотой 440 Гц, в течение 0,1 сек.


Пример[править | править код]

Пример использования интерфейса Computer API — программа, которая перезагружает компьютер работающий более 5 минут (300 секунд):

local computer = require("computer")
if computer.uptime() >= 300 then
    computer.shutdown(true)
end