Minecraft Wiki
мНет описания правки
м (викификация, орфография)
 
Строка 1: Строка 1:
Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того — некоторые функции для управления пользователями.
+
Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того — некоторые функции для управления пользователями.
   
   
Строка 17: Строка 17:
   
 
* <code>computer.freeMemory(): number</code>
 
* <code>computer.freeMemory(): number</code>
Возвращает объем свободной [[OpenComputers/Оперативная память|памяти]] компьютера, в байтах. Если это число близко к нулю, велика вероятность того, что компьютер скоро завершит работу с ошибкой переполнения памяти.
+
Возвращает объём свободной [[OpenComputers/Оперативная память|памяти]] компьютера, в байтах. Если это число близко к нулю, велика вероятность того, что компьютер скоро завершит работу с ошибкой переполнения памяти.
   
   
 
* <code>computer.totalMemory(): number</code>
 
* <code>computer.totalMemory(): number</code>
Возвращает общий объем памяти, установленной в компьютер.
+
Возвращает общий объём памяти, установленной в компьютер.
   
   
 
* <code>computer.energy(): number</code>
 
* <code>computer.energy(): number</code>
Возвращает количество энергии доступное в сети, в которой находится компьютер. Для [[OpenComputers/Робот|робота]] — это количество его собственной энергии/топлива.
+
Возвращает количество энергии доступное в сети, в которой находится компьютер. Для [[OpenComputers/Робот|робота]] — это количество его собственной энергии/топлива.
   
   
 
* <code>computer.maxEnergy(): number</code>
 
* <code>computer.maxEnergy(): number</code>
Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для [[OpenComputers/Робот|робота]] — это объем его встроенного аккумулятора.
+
Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для [[OpenComputers/Робот|робота]] — это объём его встроенного аккумулятора.
   
   
 
* <code>computer.isRobot(): boolean</code>
 
* <code>computer.isRobot(): boolean</code>
'''Внимание''': эта функция устарела! Используйте вместо нее <code>component.isAvailable("robot")</code>.
+
'''Внимание''': эта функция устарела! Используйте вместо неё <code>component.isAvailable("robot")</code>.
   
Возвращает <code>true</code>, если компьютер — [[OpenComputers/Робот|робот]] и <code>false</code> в противном случае.
+
Возвращает <code>true</code>, если компьютер — [[OpenComputers/Робот|робот]] и <code>false</code> в противном случае.
   
   
 
* <code>computer.uptime(): number</code>
 
* <code>computer.uptime(): number</code>
Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. Т.е. когда игра стоит на паузе, время не считается.
+
Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. То есть когда игра стоит на паузе, время не считается.
   
   
 
* <code>computer.shutdown([reboot: boolean])</code>
 
* <code>computer.shutdown([reboot: boolean])</code>
Выключает компьютер. Перезагружает, если параметр <code>reboot</code> равен <code>true</code>.
+
Выключает компьютер. Перезагружает, если параметр <code>reboot</code> равен <code>true</code>.
   
   
Строка 59: Строка 59:
   
 
* <code>computer.removeUser(name: string): boolean</code>
 
* <code>computer.removeUser(name: string): boolean</code>
Удаляет учетную запись пользователя. Возвращает <code>true</code>, если пользователь был успешно удален, <code>false</code> если такой пользователь зарегистрирован не был.
+
Удаляет учётную запись пользователя. Возвращает <code>true</code>, если пользователь был успешно удален, <code>false</code> если такой пользователь зарегистрирован не был.
   
 
Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку.
 
Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку.
Строка 65: Строка 65:
   
 
* <code>computer.pushSignal(name: string[, ...])</code>
 
* <code>computer.pushSignal(name: string[, ...])</code>
Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO ("Первым пришел — первым ушел"). Сигнал должен как минимум иметь название (<code>name</code>). Сопровождающие аргументы не обязательны. Обратите внимание, что сопровождающие аргументы ограничены базовыми типами данных: <code>nil</code>, <code>boolean</code>, <code>number</code> и <code>string</code>. Типы <code>table</code> и <code>function</code> не поддерживаются.
+
Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO («Первым пришел — первым ушел»). Сигнал должен как минимум иметь название (<code>name</code>). Сопровождающие аргументы не обязательны. Обратите внимание, что сопровождающие аргументы ограничены базовыми типами данных: <code>nil</code>, <code>boolean</code>, <code>number</code> и <code>string</code>. Типы <code>table</code> и <code>function</code> не поддерживаются.
   
   
Строка 71: Строка 71:
 
Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет <code>nil</code>. Если время не было определено, продолжает ожидание.
 
Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет <code>nil</code>. Если время не было определено, продолжает ожидание.
   
Первое возвращаемое значение — название сигнала. Сопровождающие аргументы идут в том порядке, в каком были отправлены функцией <code>computer.pushSignal</code>
+
Первое возвращаемое значение — название сигнала. Сопровождающие аргументы идут в том порядке, в каком были отправлены функцией <code>computer.pushSignal</code>
   
'''Важно''': очень рекомендуется использовать функцию <code>event.pull</code> для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события ("event"), что требуется для работы некоторых библиотек (например — [[OpenComputers/Term API|Term API]]). Кроме того, станет более удобной фильтрация событий.
+
'''Важно''': очень рекомендуется использовать функцию <code>event.pull</code> для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события («event»), что требуется для работы некоторых библиотек (например — [[OpenComputers/Term API|Term API]]). Кроме того, станет более удобной фильтрация событий.
   
   
*<code>computer.beep([frequency:number, duration:number])</code>
+
* <code>computer.beep([frequency:number, duration:number])</code>
Звук "динамика материнской платы". Компьютер издает звук заданной частоты и длительности.
+
Звук «динамика материнской платы». Компьютер издает звук заданной частоты и длительности.
   
 
Частота (<code>frequency</code>) звука задается в пределах 20-2000 Гц.
 
Частота (<code>frequency</code>) звука задается в пределах 20-2000 Гц.
   
Продолжительность (<code>duration</code>) — от 0.05 до 5 секунд.
+
Продолжительность (<code>duration</code>) — от 0.05 до 5 секунд.
   
По умолчанию функция воспроизводит звук частотой 440Гц, в течении 0.1 сек.
+
По умолчанию функция воспроизводит звук частотой 440 Гц, в течение 0,1 сек.
   
   
 
== Пример ==
 
== Пример ==
Пример использования интерфейса Computer API — программа, которая перезагружает компьютер работающий более 5 минут (300 секунд):
+
Пример использования интерфейса Computer API — программа, которая перезагружает компьютер работающий более 5 минут (300 секунд):
 
<pre>
 
<pre>
 
local computer = require("computer")
 
local computer = require("computer")

Текущая версия от 16:02, 26 мая 2019

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


  • 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