OpenPeripheral: Integration #1 Ванилла (и Чокола)
Расширение для работы с minecraft.
Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
Содержание:
-
Адаптеры блоков
- Инвентарь
- Инвентарь в мире
- Жидкостный бак
- Контроллер жидкостей
- Датчик дневного света
- Табличка
- Нотный блок
- Маяк
- Варочная стока
- Компаратор
- Цветочный горшок
- Печь
- Спавнер мобов
- Проигрыватель пластинок
- Череп/голова
-
Провайдеры предметов
- Ore Dictionary
- Хэш-сумма NBT
- Контейнер жидкости
- Зачарованная книга
- Зачарованный предмет
- Класс инструмента
- Зелье
- Броня
- Меч
- Инструмент
- Время горения предмета
-
Провайдеры сущностей
- Инвентарь
- Живое существо
- Полоска босса
- Рамка для предметов
- Картина
- Предмет
- Приручаемое существо
-
Индивидуальные провайдеры существ
- Игрок
- Летучая мышь
- Крипер
- Лошадь/осёл/мул
- Свинья
- Овца
- Житель
- Ведьма
- Волк
- Зомби
Адаптеры блоков
Инвентарь - предоставляет возможность управлять внутренними ячейками любого инвентаря.
Идентификатор: inventory getInventoryName():string - название инвентаря getInventorySize():string - количество ячеек в инвентаре getStackInSlot(slotNumber:number[, proxy:bool]):object - получить предмет в ячейке, если proxy не задан или false - возвращает всю информацию о предмете destroyStack(slotNumber:number) - уничтожить стек в ячейке expandStack(stack:table):object - узнать всю информацию о предмете (о любом предмете, даже если такого нет в инвентаре), необходимо передать id и мету swapStacks(fromSlot:number, intoSlot:number[, fromDirection:string[, toDirection:string]]) - поменять местами предметы в слотах -- fromDirection и toDirection используются для инвентарей, с которыми можно взаимодействовать через стороны, например - печь. -- Если передать в эти параметры сторону, то можно расширить поведение подобных инвентарей. -- Например печь swapStacks(1,2) без использования сторон, можно менять верхний и нижние слоты, если в них находится что-то горючее. -- Если передать вторым параметром "DOWN" swapStacks(1,2,nil,"DOWN") - то вынуть топливо уже не возможно. -- Но если в этом слоте есть пустое ведро (от лавы), то поменять слоты становится возможным. condenseItems() - собрать в кучу разбросанные в инвентаре предметы -- использовать с ОСТОРОЖНОСТЬЮ - если первые ячейки инвентаря не смогут принять предмет - он уничтожится
Инвентарь в мире - предоставляет возможность взаимодействовать с соседними блоками-инвентарями.
Идентификатор: inventory-world pullItem|pullItemIntoSlot(direction:string, slot:number[, maxAmount[, intoSlot]]):number - забрать предмет из соседнего инвентаря. Возвращает количество перемещенных предметов. pushItem|pushItemIntoSlot(direction:string, slot:number[, maxAmount[, intoSlot]]):number - поместить предмет в соседний инвентарь. Возвращает количество перемещенных предметов.
Жидкостный бак - можно получить информацию о жидкости в баке.
Идентификатор: fluid_tank getInfo():table - информация о хранилище жидкости
Жидкостный контроллер - можно получить информацию о жидкостных хранилищах в блоке.
Идентификатор: fluid_handler getTankInfo([direction]):table[] - информация о всех хранилищах жидкостей, можно передать конкретную сторону для получения бака
Датчик дневного света - позволяет узнать информацию о небе и солнце.
Идентификатор: vanilla_daylight_sensor hasSky():bool - имеется ли небо в этом биоме (его нет в энде, например) getSkyLight():number - освещенность неба, 0-15 (работает только в биомах с небом) getBlockLight():number - получить освещенность датчика, 0-15 getCelestialAngle():number - получить угол солнца, 0 это зенит, 0.0-360.0
Табличка - предоставляет управление табличкой.
Идентификатор: vanilla_sign getText():string - получить текст таблички setText(text:string) - установить текст getLines():string[] - получить линии таблички setLines(lines:string[]) - установить линии таблички getLine(line:number):string - получить линию таблички setLine(line:number, text:string) - установить линию таблички
Нотный блок - предоставляет управление нотным блоком.
Идентификатор: vanilla_note getNote():number - получить текущую ноту setPitch(note):bool - установить ноту, 0-25 triggerNote() - проиграть текущую ноту incrementPitch() - увеличить текущую ноту на единицу playSound(sound:string, pitch:number, volume:number[, x:number, y:number, z:number]) - проигрывает ЛЮБОЙ звук из игры -- pitch и volume 0.0-1.0 -- x,y,z - относительно нотного блока -- список основных звуков можно узнать тут - https://minecraft-ru.gamepedia.com/Sounds.json
Маяк - можно получить информацию о маяке и эффектах, но выставить необходимый эффект невозможно.
Идентификатор: vanilla_beacon getPrimaryEffect():string - имя основного эффекта getSecondaryEffect():string - имя дополнительного эффекта int getLevels():number - количество уровней маяка
Варочная стойка - можно получить информацию о времени варки. Для автоматической варки можно воспользоваться методами инвентаря.
Идентификатор: vanilla_brewing getBrewTime():number - оставшееся время варки в тиках
Компаратор - можно узнать уровень исходящего сигнала... и всё.
Идентификатор: vanilla_comparator getOutputSignal():number - сила сигнала, 0-15
Цветочный горшок - можно узнать что в нём.
Идентификатор: flower_pot getContents():table - получить информацию о предмете в горшке
Печь - информация о состоянии печи.
Идентификатор: vanilla_furnace getBurnTime():number - оставшееся время горения, в тиках getCookTime():number - сколько тиков прошло с момента начала обжарки предмета, в тиках getCurrentItemBurnTime():number - полное время обжарки предмета, в тиках isBurning():bool - активна ли печь
Спавнер мобов - информация о мобе.
Идентификатор: vanilla_spawner getSpawningMobName():string - имя моба
Проигрыватель пластинок - можно узнать текущую пластинку.
Идентификатор: vanilla_player getRecord():string - получить текущую пластинку
Череп/голова - получить информацию о черепе или голове.
Идентификатор: skull getType():string - тип головы/черепа getPlayer():string, string - информация о игроке: уникальный идентификатор и имя
Провайдеры предметов
Ore Dictionary
Ключ: ore_dict Значение: table {имя_ore_dict=true}
Хэш-сумма всех nbt-данных предмета
Ключ: nbt_hash Значение: string
Контейнер жидкости - информация о хранилище жидкости
Ключ: fluid_container Значение: table
Зачарованная книга - список зачарований на книге
Ключ: enchanted_book Значение: table - name:string - имя зачарования - level:number - уровень зачарования - fullName:string - название зачарования, зависит от языка сервера
Зачарованный предмет - список зачарований на предмете
Ключ: ench Значение: table - name:string - имя зачарования - level:number - уровень зачарования - fullName:string - название зачарования, зависит от языка сервера
Класс инструмента
Ключ: tool_class Значение: table {тип_инструмента=уровень_добычи:number}
Зелье
Ключ: potion Значение: table - splash:bool - взрывное ли зелье - effects:table - список эффектов зелья - duration:number - длительность эффекта - amplifier:number - сила эффекта - effect - информация о эффекте, структура: - name:string - имя эффекта - instant:bool - моментальный ли эффект от зелья - color:number - цвет частиц зелья, 0xRRGGBB
Броня
Ключ: armor Значение: table - material:string - материал брони - type:string - тип части брони - color:number? - цвет окрашенной брони, 0xRRGGBB
Меч
Ключ: sword Значение: table - material:string - материал меча
Инструмент
Ключ: tool Значение: table - material:string - материал инструмента
Время горения предмета в тиках
Ключ: burn_time Значение: number
Провайдеры сущностей
Список предметов в инвентаре сущности
Ключ: inventory|inventory-provider Значение: table[] - список proxy
Информация о живом существе - огромное количество данных, может съесть память
Ключ: living Значение: table - health:number - текущее здоровье - maxHealth:number - максимальное здоровье - yaw:number - поворот тела, вертикальная ось, -360 - 360 - yawHead:number - поворот головы, вертикальная ось, -360 - 360 - pitch:number - поворот головы, поперечная ось, -360 - 360 - heldItem:table - предмет в руке - armor:table - броня сущности - boots:table - предмет ботинок - leggings:table - предмет поножей - chestplate:table - предмет нагрудника - helmet:table - предмет шлема - potionEffects:string[] - список имён действующих эффектов - potion_effects:table[] - подробный список действующих эффектов - duration:number - длительность эффекта, в секундах - amplifier:number - сила эффекта - is_ambient:bool - эффект области, например в зоне действия маяка - effect:table - информация о эффекте - name:string - имя эффекта - instant:bool - моментальный ли эффект от зелья - color:number - цвет частиц зелья, 0xRRGGBB - lookingAt:table - на что смотрит существо - type:string - block или entity - id:number? - индекс сущности, для типа entity - position:number? - абсолютная или относительная(не относительно существа, а относительно сканера, например) позиция блока, для типа block - isAirborne:bool - существо находится в воздухе, т.е. летает или падает - isBurning:bool - существо горит - isAlive:bool - существо живо - isDead:bool - существо мертво, если было сохранено proxy существа - то при смерти значение выставится в true - isInWater:bool - существо в воде - isOnLadder:bool - существо на лестнице - isSleeping:bool - игрок спит - isRiding:bool - существо оседлало другую сущность - isSneaking:bool - существо приседает - isSprinting:bool - существо бежит - isWet:bool - существо мокрое, например после нахождения в воде - isChild:bool - существо-ребёнок
Полоска здоровья босса
Ключ: boss Значение: table - name:string - имя босса - health:number - текущее здоровье босса - maxHealth:number - максимальное здоровье босса
Рамка для предметов
Ключ: item_frame Значение: table - item:table - информация о предмете - rotation:number - поворота предмета, 0-3
Картина
Ключ: painting Значение: table - title:string - название картины - width:number - ширина картины в блоках - height:number - высота картины в блоках
Предмет на земле
Ключ: item Значение: table - stack:table - информация о предмете - age:number - какое время предмет находится на земле, в тиках - lifespan:number - общее время "жизни" предмета, в тиках
Приручаемое существо, например оцелот
Ключ: tameable Значение: table - isTamed:bool - приручено ли существо - isSitting:bool? - сидит ли существо - ownerUUID:string? - uuid игрока, приручившего существо
Индивидуальные провайдеры существ
Игрок
Ключ: player Значение: table - inventory:table[] - список proxy предметов инвентаре - isAirBorne:bool - находится ли в воздухе - isBlocking:bool - блок мечом - profile:table - профиль игрока - foodLevel:number - уровень сытости - isCreativeMode:bool - находится ли в креативе - experience:table - информация о опыте - level:number - уровень игрока - levelProgress:number - прогресс уровня, 0.0-1.0 - nextLevelXp:number - общее количество опыта до следующего уровня
Летучая мышь
Ключ: bat Значение: table - isHanging:bool - висит ли мышь
Крипер
Ключ: creeper Значение: table - isCharged:bool - заряженный ли крипер
Лошадь, осёл или мул
Ключ: horse Значение: table - eatingHaystack:bool - лошать ест сено - hasReproduced:bool - имеет ли потомство, не используется, всегда false - bred:bool - возможно ли размножение - horseType:number - тип лошади, 0-4 - horseVariant:number - раскраска лошади: текстура - первые 8 бит, пятна - следующие 8 бит - horseTemper:number - характер лошади, 0-100, чем больше значение - тем быстрее приручается - horseTame:bool - приручена ли лошадь - ownerUUID:string - uuid владельца лошади - chestedHorse:bool - если сундук на осле/муле - chest:table[]? - список proxy предметов в сундуке
Свинья
Ключ: pig Значение: table - isSaddled:bool - есть ли седло на свинье
Овца
Ключ: sheep Значение: table - sheepColor:number - цвет овцы, индекс 0-15 - isSheared:bool - пострижена ли овца
Житель
Ключ: villager Значение: table - profession:number - профессия жителя, 0-4 - isMating:bool - житель размножается - isPlaying:bool - ребёнок жителя играет - isTrading:bool - сейчас торгует с игроком - customer:table? - профиль игрока-покупателя
Ведьма
Ключ: witch Значение: table - isAggressive:bool - агрессивна ли ведьма
Волк
Ключ: wolf Значение: table - isShaking:bool - волк отряхивается - isAngry:bool - волк злой - collarColor:bool - цвет ошейника, индекс 0-15
Зомби
Ключ: zombie Значение: table - isVillagerZombie:bool - является ли зомби-жителем - convertingToVillager:bool - сейчас превращается в жителя
На этом функционал ванилы окончен.
- 3
- 1
- 1
11 комментариев
Рекомендуемые комментарии