Дополнительные блоки и предметы.
Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
Про очки и терминал было рассказано в другой статье.
Блоки:
PIM - Personal Inventory Manager, функционал такой-же как у инвентаря.
События:
player_on(name:string, uuid:string) - игрок наступил на платформу
player_off(name:string, uuid:string) - игрок сошёл с платформы
Сенсор - сканирует область вокруг на наличие блоков или сущностей. Устаревший функционал описывать не буду.
Радиус сканирования - куб с длиной сторон 2*радиус+1.
Интересный факт: полученное прокси можно использовать на любом отдалении цели от сенсора, даже если цель в других мирах. Но работает это только до выгрузки чанка с сенсором, или сущности.
Идентификатор: openperipheral_sensor
getEntityIds(type:string):number[] - возвращает идентификаторы сущностей заданного типа в радиусе сканирования. Типы: mob, item, minecart, item_frame, painting.
getEntityData(id:number, type:string):table - возвращает прокси сущности по идентификатору и типу сущности. Позиция сущностей относительно сенсора.
getPlayers():table[] - возвращает список профилей игроков в радиусе сканирования.
getPlayerByName(name:string):table - возвращает прокси игрока по никнейму, если он в радиусе сканирования.
getPlayerByUUID(uuid:string):table - возвращает прокси игрока по уникальному идентификатору, если он в радиусе сканирования.
sonicScan():table[] - возвращает список блоков в СФЕРИЧЕСКОЙ области!
- x, y, z:number - координаты блока относительно сканера
- type:string - тип блока: air, solid, liquid, unknown
- color:number - битовая маска цвета блока, один из 16ти цветов. 1 << color
sonicScanTarget(x, y, z:number):table - то-же что и прошлая функция, но для конкретного блока
Селектор - позволяет выбирать предмет на панели.
Идентификатор: openperipheral_selector
Событие: slot_click(slot:number, name:string) - адрес компонента не передается, name - похож на адрес, но такого компонента не существует.
getSlots():table - возвращает список предметов в слотах
setSlots(items:table) - установить предметы в слоты, не работает в OpenComputers из-за неправильного конвертирования
getSlot(slot:number):table - получить предмет в слоте
setSlot(slot:number, item:table) - установить предмет в слот, предмет вида: {id:string, dmg:number}
Билетный автомат - печатает билеты из RailCraft.
Идентификатор: openperipheral_ticketmachine
createTicket(destination:string, amount:number):bool - печатает билет(ы) в указанное направление
getOwner():string - возвращает владельца блока и билетов