Перейти к содержимому

Путешествия Xytabich'а

  • записей
    12
  • комментарий
    31
  • просмотров
    26 220

OpenPeripheral: Addons

Xytabich

2 354 просмотра

Дополнительные блоки и предметы.
Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.

Про очки и терминал было рассказано в другой статье.

 

Блоки:

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 - возвращает владельца блока и билетов

 

  • Нравится 1


2 комментария


Рекомендуемые комментарии

Я правильно понимаю, что у селектора метод setSlots кидает ошибку "invalid key to next"? Если да, то это фиксится переключением архитектуры на Lua 5.2.

Поделиться комментарием


Ссылка на комментарий

@ProgramCrafter точно не могу сказать, насколько помню ошибок не было. Кажется там был какой-то конфликт конвертеров, в результате чего необходимый конвертер не отрабатывал.

Поделиться комментарием


Ссылка на комментарий
Гость
Добавить комментарий...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...