Этот программный интерфейс доступен только тогда, когда исполняющий компьютер является роботом.
robot.level(): numberПолучает текущий уровень робота. Дробная часть обозначает текущий прогресс до следующего уровня. Например, если это число 1.5, робот имеет уровень 1, и на 50% достиг второго уровня.
Внимание: начиная с версии 1.3 функция устарела. Используйте component.experience.level(), поскольку робот получает очки опыта, только при наличии апгрейда на опыт.
robot.name(): stringПолучает название робота.
robot.detect(): boolean, stringПроверяет, есть ли что-нибудь перед роботом. Возвращает true если что-то может препятствовать движению робота, false в противном случае. Второе возвращаемое значение определяет что именно находится перед роботом. Это может быть entity, solid, replaceable, liquid или air. Первые два могут блокировать робота, остальные — нет. В случае entity это может быть как животным или мобом, так и игроком или вагонеткой.
Примечание: для того чтобы получить более подробную информацию (ID, метаданные) о блоке, вы можете использовать функцию analyze() геосканера.
robot.detectUp(): boolean, stringАналогично robot.detect(), только проверяет блок над роботом.
robot.detectDown(): boolean, stringАналогично robot.detect(), только проверяет блок под роботом.
robot.swing([side: number]): boolean[, string]Производит "левый щелчок мыши" роботом, используя при этом экипированный инструмент. Результат зависит от инструмента и того, какой блок располагается перед роботом. Возвращает true и дескриптор, если был обработан какой-то блок, либо false и возможную причину в случае неудачи.
Параметр side определяет сторону подвергаемую обработке. Если параметр опущен, робот перебирает все возможные стороны. Это позволяет контролировать направление "щелчка мыши" если необходимо.
Возвращаемая строка может быть одной из следующих:
entity — если робот атаковал живое существоblock — если робот сломал блокfire — если робот потушил огоньair — если перед роботом ничего не былоrobot.swingUp([side: number]): boolean[, string]Аналогично robot.swing(), но работает с блоком над роботом.
robot.swingDown([side: number]): boolean[, string]Аналогично robot.swing(), но работает с блоком под роботом.
robot.use([side: number[, sneaky: boolean[, duration: number]]]): boolean[, string]Делает "правый щелчок мыши" роботом, используя экипированный инструмент. Результат зависит от инструмента и блока перед роботом. Возвращает true в случае успеха, либо false в случае неудачи.
Параметр side определяет сторону, куда направлено действие. Если параметр опущен, робот попробует воздействовать на все стороны. Это позволяет точнее контролировать действие, если необходимо. К примеру — сторону в которую полетит стрела, если использовать лук.
Параметр sneaky определяет "присел" ли робот (для игрока — клавиша ⇧ Shift), совершая действие. Это необходимо, к примеру, если робот пытается разместить блок на устройстве, которое по "правому щелчку" открывает свой интерфейс.
Параметр duration определяет продолжительность использования инструмента в секундах. К примеру, продолжительность натягивания лука. Учтите, что этот параметр вызывает соответствующую паузу в выполнении программы робота.
Возвращаемое значение может быть:
block_activated — если блок перед роботом был активирован (например — рычаг)item_placed — если выбранный предмет был использован перед роботом (например — поставлен блок, или использована костная мука на растении)item_used — если экипированный инструмент был использован непосредственно (например — робот выстрелил из лука)air — если ничего нельзя использовать в выбранном направлении, или экипированный инструмент нельзя использовать сам по себеrobot.useUp([side: number[, sneaky: boolean[, duration: number]]]): boolean[, string]Аналогично robot.use(), но работает с блоком над роботом.
robot.useDown([side: number[, sneaky: boolean[, duration: number]]]): boolean[, string]Аналогично robot.use(), но работает с блоком под роботом.
robot.durability(): number or nil, stringЕсли робот имеет инструмент, функция возвращает состояние этого инструмента. Возможные значение: 0 - сломан, 1 - цел.
Если робот не имеет инструмента, или инструмент не может быть сломан, функция возвратит nil и соответствующую строку: no tool equipped или tool cannot be damaged.
robot.inventorySize(): numberВозвращает внутренний размер инвентаря.
robot.select([slot: number]): numberДелает активным слот инвентаря с заданным индексом. Индекс — число в интервале от 1 до N, где N — число слотов (зависит от количества апгрейдов на инвентарь). Нумерация начинается в левом верхнем углу, и идет слева направо и сверху вниз. Таким образом левый верхний слот имеет номер 1, верхний правый — 4, левый нижний — 13, правый нижний — 16. Создает ошибку, если введен неверный индекс. Возвращаемое значение — номер выбранного слота. Функция может использоваться без аргументов, для получения номера активного слота.
robot.count([slot: number]): numberВозвращает количество предметов в заданном слоте. Если номер слота не задан, возвращает количество предметов в активном слоте.
robot.space([slot: number]): numberВозвращает количество предметов которое может еще поместиться в заданный слот. Это число зависит от типа предметов, которые уже находятся в слоте. (К примеру, ведра складываются в стеки только по 16. Если в слоте уже есть два ведра, функция вернет число 14.) Если слот не задан, функция работает с активным слотом.
robot.compareTo(slot: number): booleanСравнивает предметы в заданном и активном слотах. Если предметы одинаковы (количество предметов в слотах не имеет значение) — возвращает true. Иначе — false.
robot.transferTo(slot: number[, count: number]): booleanПеремещает предметы из активного слота в заданный. Если определен параметр count, функция перемещает заданное количество предметов. Возвращает true, если был перемещен хотя бы один предмет, и false — если ни одного.
Обратите внимание, что если целевой слот не пуст, а число предметов для перемещения не задано, больше или равно числу предметов в активном слоте, результатом будет обмен слотов содержимым.
robot.compare(): booleanСравнивает предмет в заданном слоте и блок перед роботом. Если блок эквивалентен предмету в слоте — возвращает true. Иначе — false.
robot.compareUp(): booleanАналогично robot.compare(), но сравнивает с блоком над роботом.
robot.compareDown(): booleanАналогично robot.compare(), но сравнивает с блоком под роботом.
robot.drop([count: number]): booleanВыбрасывает предмет из активного слота. count может определять число предметов. Если перед роботом находится блок с инвентарем, например сундук, робот попытается положить предметы в него. Если инвентаря перед роботом нет, предметы будут просто выброшены наружу. Возвращает true, если один или больше предмет был выброшен. Иначе — false. Если инвентарь (сундук) полон, функция вернет false и предметы выброшены не будут.
Также функция работает для вагонеток с сундуками и вагонеток с воронками.
robot.dropUp([count: number]): booleanАналогично robot.drop(), но работает с блоком над роботом.
robot.dropDown([count: number]): booleanАналогично robot.drop(), но работает с блоком под роботом.
robot.place([side: number[, sneaky: boolean]]): booleanПомещает блок из активного слота перед роботом. Возвращает true в случае успеха, иначе — false. Параметр side определяет сторону на которую будет помещен блок. Если параметр опущен, робот попробует все поверхности. Это позволяет точнее ставить блоки, которые имеют ориентацию. (Например — факел. Значение 5 или sides.left позволит разместить факел на стене слева.) Параметр sneaky определяет "присел" (для игрока — клавиша ⇧ Shift) ли робот когда ставил блок. Это необходимо для некоторых модов.
Важно: по умолчанию, робот не может ставить блок в воздухе без опоры (как и игрок). В пространстве перед роботом должна быть хотя бы одна "стенка". Если вы хотите, чтобы роботы могли ставить блоки в воздухе (как черепашки из ComputerCraft) установите роботу апгрейд-"ангел".
robot.placeUp([side: number[, sneaky: boolean]]): booleanАналогично robot.place(), но работает с блоком над роботом.
robot.placeDown([side: number[, sneaky: boolean]]): booleanАналогич но robot.place(), но работает с блоком под роботом.
robot.suck([count: number]): booleanЗахватывает максимум один стек предметов в активный слот, или первый свободный слот после активного. Возвращает true если захватил один или больше предметов, иначе — false. Если перед роботом находится блок с инвентарем (например — сундук), робот попытается забрать предметы из него. Параметр count определяет, сколько именно предметов будет захвачено. Функция также работает с вагонетками с инвентарем.
Если перед роботом нет инвентаря, он попытается подобрать предмет "с земли". В этом случае параметр count будет проигнорирован.
robot.suckUp([count: number]): booleanАналогично robot.suck(), но работает с блоком над роботом.
robot.suckDown([count: number]): booleanАналогично robot.suck(), но работает с блоком под роботом.
robot.tankCount():numberВозвращает число внутренних цистерн робота.
robot.selectTank(tank)Выбирает одну из цистерн активной.
robot.tankLevel([tank:number]):numberВозвращает уровень жидкости в заданной (а если параметр не указан — в активной) цистерне.
robot.tankSpace([tank:number]):numberВозвращает объем свободного пространства в заданной (а если параметр не указан — в активной) цистерне.
robot.compareFluidTo(tank:number):booleanСравнивает жидкости в активной и указанной параметром цистернах.
robot.transferFluidTo(tank:number[, count:number]):booleanПеремещает указанное количество жидкости из активной цистерны в заданную. Если количество не указано — перемещает 1000 mB (1 ведро).
robot.compareFluid():booleanСравнивает жидкость в активной цистерне с жидкостью перед роботом (или в хранилище перед роботом).
robot.compareFluidUp():booleanАналогично compareFluid(), но сравнивает с жидкостью над роботом.
robot.compareFluidDown():booleanАналогично compareFluid(), но сравнивает с жидкостью под роботом.
robot.drain([count:number]):booleanЗакачивает жидкость из блока перед роботом в активную внутреннюю цистерну. Если объем не указан, закачивает 1000 mB (1 ведро).
robot.drainUp([count:number]):booleanАналогично drain(), но закачивает жидкость над роботом.
robot.drainDown([count:number]):booleanАналогично drain(), но закачивает жидкость под роботом.
robot.fill([count:number]):booleanВыкачивает жидкость из активного внутреннего хранилища в блок перед роботом. Если объем не указан, выкачивает 1000 mB (1 ведро).
robot.fillUp([count:number]):booleanАналогично fill(), но выкачивает жидкость в пространство над роботом.
robot.fillDown([count:number]):booleanАналогично fill(), но выливает жидкость в пространство под роботом.
robot.forward(): boolean[, string]Робот делает попытку двигаться вперед на один блок. Возвращает true в случае успеха. Иначе — nil и возможную причину — в противном случае. Причина — одна из строк функции robot.detect().
robot.back(): boolean[, string]Аналогично robot.forward(), но двигает робота на один блок назад.
robot.up(): boolean[, string]Аналогично robot.forward(), но двигает робота на один блок вверх.
robot.down(): boolean[, string]Аналогично robot.forward(), но двигает робота на один блок вниз.
robot.turnLeft()Поворачивает робота на 90° влево.
robot.turnRight()Поворачивает робота на 90° вправо.
robot.turnAround()Поворачивает робота на 180°.