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

Xytabich

Пользователи
  • Публикации

    143
  • Зарегистрирован

  • Посещение

  • Победитель дней

    25

Записи блога, опубликованные пользователем Xytabich

  1. Xytabich
    Дополнительные блоки и предметы.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
    Про очки и терминал было рассказано в другой статье.
     
    Блоки:
    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 - возвращает владельца блока и билетов  
  2. Xytabich
    Расширение для работы с minecraft.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Содержание:
     
    Адаптеры блоков
     Инвентарь - предоставляет возможность управлять внутренними ячейками любого инвентаря.
    Идентификатор: 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. Xytabich
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Thermal Expansion
    Адаптеры блоков
    Цветной светильник - ламиумовый или светокаменный светильник.
    Идентификатор: te_light setColor|setColour(color:number):bool - установить цвет светильника, формат 0xRRGGBB, возвращает true в случае успеха  
    Ender Storage
    Адаптеры блоков
    Блок с частотой - сундук или цистерна с цветным идентификатором.
    Идентификатор: ender_frequency getColors|getColours():number, number, number - возвращает индексы цветов setColors|getColors(left:number, middle:number, right:number) - установить цвета, формат - битовая маска цвета: 1 << color_index (0-15) getColorNames():string, string, string - возвращает имена цветов setColorNames(left:string, middle:string, right:string) - установить цвета, по имени getFrequency():number - получить частоту ((left & 0x0F) << 8) + ((middle & 0x0F) << 4) + (right & 0x0F) setFrequency(frequency):number - установить частоту, формат - число из цветовых индексов: ((left & 0x0F) << 8) + ((middle & 0x0F) << 4) + (right & 0x0F)  
    Tinkers Mechworks
    Адаптеры блоков
    Разводной мост
    Идентификатор: tmechworks_drawbridge hasExtended():bool - активирован ли мост  
    На этом описание интеграции окончено, с мисткрафтом не знаком, да и там несколько версий, не понятно какую использовать.
  4. Xytabich
    CoFH Core, Lib - основы для многих модификаций, использующих Redstone Flux, а так-же для модификаций разработанных самой Team CoFH, например - Thermal Expansion.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
    Стороны доступны в sides API опенкомпов.
     
    Содержание:
    Адаптеры блоков RF потребители и проводники RF устройство Facing (направление лицевой стороны) Конфигурация сторон Редстоун-контроль Права доступа Контроллер инвентарей Улучшения устройства Эндер-проводник энергии Эндер-проводник жидкостей Эндер-проводник предметов Провайдеры предметов RF устройство Улучшение Усиление Контейнер  
    Адаптеры блоков
    RF потребители и проводники - информация о буферах энергии в проводниках или потребителях.
    Идентификатор: rf_provider|rf_receiver getEnergyStored([side:number]) - получить количество хранимой энергии на стороне getMaxEnergyStored([side:number]) - размер хранилища энергии на стороне  
    RF устройство - информация о потреблении устройства, и хранимой энергии.
    Идентификатор: rf_info getEnergyPerTickInfo():number - потребление энергии в тик getMaxEnergyPerTickInfo():number - максимальне потребление энергии в тик getEnergyInfo():number - количество хранимой энергии getMaxEnergyInfo():number - размер хранилища энергии  
    Facing - можно управлять поворотом блока.
    Идентификатор: cofh_facing getFacing():number - текущее направление блока setFacing(side:number):bool - установить направление блока allowYAxisFacing():bool - возможно ли установить направление вверх или вниз rotateBlock():bool - циклически поворачивает блок  
    Конфигурация сторон - можно установить конфигурацию сторон блока, но получить текущую нельзя
    Идентификатор: cofh_sides getNumConfig(side:number):number - количество конфигураций стороны setSide(side:number, config:number):bool - попытка установить конфигурацию стороны, config - индекс конфигурации, счёт с нуля resetSides():bool - сбросить конфигурацию всех сторон incrSide(side:number):bool - циклически увеличивать индекс конфигурации decrSide(side:number):bool - циклически уменьшать индекс конфигурации  
    Редстоун-контроль
    Идентификатор: cofh_redstone setRedstoneControl(control:string) - установить режим редстоуна, при котором блок будет активен getRedstoneControl():string - получить текущий режим  
    Права доступа - информация о владельце блока, и о текущем режиме доступа
    Идентификатор: cofh_secure getOwnerName():string - имя владельца getOwner():table - профиль игрока getAccess():string - режим доступа: public, restricted, private  
    Контроллер инвентарей - информация о инвентаре на какой-либо из сторон блока.
    Идентификатор: cofh_inventory getInventoryContents(side:number):table[] - получить предметы в инвентаре getSizeInventory(side:number):number - получить размер инвентаря isEmpty(side:number):number - пустой ли инвентарь isFull(side:number):number - полный ли инвентарь  
    Улучшения устройства - информация о установленных в устройство улучшениях.
    Идентификатор: augumentable getAugumentSlots():table[] - возвращает ячейки улучшений getAccess():bool[] - возвращает статус ячеек (открыта/закрыта)  
    Эндер-проводник энергии - например, тессеракт из Thermal Expansion.
    Идентификатор: cofh_ender_energy getChannelName():string - получить название канала на текущей частоте getFrequency():number - получить частоту setFrequency(frequency:number):bool - установить частоту clearFrequency():bool - стереть частоту canSendEnergy():bool - может ли отправлять энергию canReceiveEnergy():bool - может ли принимать энергию  
    Эндер-проводник жидкостей - например, тессеракт из Thermal Expansion.
    Идентификатор: cofh_ender_fluid getChannelName():string - получить название канала на текущей частоте getFrequency():number - получить частоту setFrequency(frequency:number):bool - установить частоту clearFrequency():bool - стереть частоту canSendFluid():bool - может ли отправлять жидкости canReceiveFluid():bool - может ли принимать жидкости  
    Эндер-проводник предметов - например, тессеракт из Thermal Expansion.
    Идентификатор: ender_item getChannelName():string - получить название канала на текущей частоте getFrequency():number - получить частоту setFrequency(frequency:number):bool - установить частоту clearFrequency():bool - стереть частоту canSendItems():bool - может ли отправлять предметы canReceiveItems():bool - может ли принимать предметы  
    Провайдеры предметов
     
    RF устройство
    Ключ: energy_te Значение: table     - energyStored - количество хранимой энергии     - maxEnergyStored - размер хранилища энергии  
    Улучшение - информация о улучшении для устройств.
    Ключ: augumented Значение: table {type=level:number} - пары: параметр устройства, и уровень улучшения  
    Усиление - информация о предмете с режимом усиления.
    Ключ: empowered Значение: bool - true, если включен усиленный режим  
    Контейнер - предмет с инвентарем
    Ключ: container Значение: table     - size - размер инвентаря  
  5. Xytabich
    Расширение для работы с BuildCraft.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
    Информация о энергии доступна в статье о cofh.
     
    Адаптеры блоков
    Машина - показывает информацию о состоянии механизма.
    Идентификатор: buildcraft_machine hasWork():bool - активен ли механизм  
    Труба - информация о трубе.
    Идентификатор: buildcraft_pipe getPipeType():string - возвращат тип трубы isPipeConnected(side:string):bool - подключена ли труба к стороне isWired(wire:string):bool - имеется ли провод с этим цветом на трубе isWireActive(wire:string):bool - активен ли провод hasGate():bool - имеется ли гейт на стороне  
    Провайдеры предметов
    Фасады - информация о обычных и переключаемых фасадах, но не показывает для какого провода фасад.
    Ключ: facade Значение: table     - type:string - тип фасада     - states:table - состояния фасада         - block:string - id блока         - meta: number - мета блока  
  6. Xytabich
    Расширение для работы с Forestry.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.

    Примечание: OpenComputers может перегружать некоторый функционал, например - getDrone/getQueen в пасеке вернёт другие результаты, но можно
    использовать информацию предмета.
     
    Условия посадки растений:
    cave - любое место, например - грибы crop - грядки desert - песок nether - песок душ plains - земля или трава water - вода, например - кувшинки Структуры
    Так как эти структуры часто используются в коде (или они просто слишком огромны), опишу их с самого начала.
     
    Вид
    name:string - название вида пчелы, зависит от языка сервера uid:string - идентификатор пчелы  
    Полная информация о виде
    authority:string - создатель вида binomialName:string - имя вида name:string - название вида, зависит от языка сервера complexity:number - сложность генома humidity:string - влажность климата: arid, normal, damp temperature:string - температура: none, icy, cold, normal, warm, hot, hellish  
    Мутация
    allele1:table - вид первой пчелы allele2:table - вид первой пчелы result:table - вид итоговой пчелы chance:number - шанс скрещивания, 0-100 specialConditions:string[] - список условий для скрещивания, текст зависит от языка сервера  
    Гены пчёл
    species:table - полная информация о виде speed:number - множитель шанса производства lifespan:number - количество циклов, которое живет пчела fertility:number - плодовитость, количество дронов nocturnal:bool - работа ночью tolerantFlyer:bool - работа в дождь caveDwelling:bool - работа в пещерах flowerProvider:string - название используемых цветов, зависит от языка сервера humidityTolerance:string - допустимое отклонение влажности климата, зависит от языка сервера temperatureTolerance:string - допустимое отклонение температуры, зависит от языка сервера flowering:number - скорость опыления - шанс установки цветка или опыления дерева за цикл работы effect:string - название эффекта, зависит от языка сервера territory:table - размер области работы, массив: x, y, z  
    Гены бабочек - возможна ошибка доступа к генам, при анализированной бабочке, но можно использовать методы OpenComputers
    species:table - полная информация о виде size:number - размер, 0.0-1.0 speed:number - скорость полёта бабочки lifespan:number - время жизни metabolism:number - множитель шанса выпадения лута fertility:number - плодовитость, количество гусениц nocturnal:bool - летает ночью tolerantFlyer:bool - летает в дождь fireResist:bool - имеет сопротивление огню flowerProvider:string - название используемых цветов, зависит от языка сервера humidityTolerance:string - допустимое отклонение влажности климата, зависит от языка сервера temperatureTolerance:string - допустимое отклонение температуры, зависит от языка сервера effect:string - название эффекта, зависит от языка сервера territory:table - размер области работы, массив: x, y, z  
    Гены деревьев
    species:table - полная информация о виде growth:table - условия роста plant:table - пары {type=true} с возможными условиями посадки дерева girth:number - область посадки саженцев, например у тропического дерева - 2, т.е. необходимо поставить 4 саженца 2х2. height:number - относительная высота, 0.0-2.0 fertility:number - шанс дропа саженца, 0.0-1.0 sappiness:number - множитель шанса дропа саженца 0.0-1.0 fruits:string - тип фруктов yield:number - множитель шанса выпадения фруктов, а также шанса спавна бабочек maturation:number - количество случайных тиков для превращения саженца в дерево effect:string - название эффекта листьев, не используется, зависит от языка сервера territory:table - размер области эффект, массив: x, y, z, не используется  
    Адаптеры блоков
    Пасека - показывает информацию о пчёлах в пасеке, и предоставляет доступ к базе данных пчёл (за исключением секретных, если не включено в конфиге).
    Идентификатор: forestry_bees canBreed():bool - возможна ли работа пчелы, зависит от потребностей пчелы. breedingProgress():number - прогресс скрещивания принцессы и дрона, 0-100 getDrone():table - получить гены дрона getQueen():table - получить гены принцессы или королевы(матки) listAllSpecies():table[] - список всех видов пчёл getBeeParents(childType:string):table[] - список всех мутаций, приводящих к данной пчеле, childType - идентификатор пчелы getBeeChildren(parentYpe:string):table[] - список всех мутаций, в которых участвует данная пчелы, parentYpe - идентификатор пчелы getBeeBreedingData():table[] - возвращает список всех возможных скрещиваний (Эксперементальная функция)     - allele1:string - название первой пчелы, зависит от языка сервера     - allele2:string - название второй пчелы, зависит от языка сервера     - result:string - название итоговой пчелы, зависит от языка сервера     - chance:number - шанс скрещивания, 0-100     - specialConditions:string[] - список условий для скрещивания, текст зависит от языка сервера  
    Провайдеры предметов
    Вид - используется для описания пчёл, деревьев и бабочек.
    Ключ: individual Значение: table     - displayName:string - название вида, зависит от языка сервера     - ident:string - идентификатор вида     - isAnalyzed:bool - были ли предмет анализирован     - isSecret:bool - секретный ли это вид     - hasEffect:bool - имеется ли эффект     - health:number? - здоровье существа     - maxHealth:number? - максимальное здоровье существа     - isAlive:number? - живо ли существо     - type:string - тип вида: bee, butterfly, tree     - canSpawn:bool? - может ли пчела давать потомство     - generation:number? - поколение пчелы     - isNatural:number? - чистая (pristine) или низкая (ignoble) порода пчелы     - size:number? - размер бабочки     - plantType:string? - список возможных условий посадки дерева     - active:table - активные гены     - inactive:table - неактивные гены  
  7. Xytabich
    Расширение для работы с IC2, в том числе Experimental.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Адаптеры блоков
    Жёрдочки - информация о растении на жёрдочках. Можно узнать параметры растения не анализируя его.
    Идентификатор: ic2_crop getID():string - идентификатор растения на жёрдочках getSize():number - размер растения (на сколько выросло) getGrowth():number - параметр скорости роста getGain():number - параметр урожайности getResistance():number - параметр сопротивления сорнякам getScanLevel():number - количество сканированний мешочка в анализаторе getNutrientStorage():number - сколько хранится удобрений, 0-100 getHydrationStorage():number - сколько хранится жидкости, 0-100, 1-10 - естественное увлажнение, 11-100 - искусственное увлажнение getWeedExStorage():number - сколько хранится средства от сорняков getHumidity():number - уровень влажности, 0-10 (10 - полное увлажнение) getNutrients():number - уровень удобрений, 0-10 getAirQuality():number - качество воздуха, 0-10 (10 - чистый)  
    Реактор
    Идентификатор: ic2_reactor|ic2_chamber getHeat():number - нагрев реактора getMaxHeat():number - максимальный нагрев реактора getEUOutput():number - количество вырабатываемой энергии, в EU isActive():bool - активен ли реактор isValid():bool - только у ic2_chamber, правильно ли построен реактор  
    Проводник EU
    Идентификатор: eu_conductor getEUConductionLoss():number - потеря EU за блок getEUConductorBreakdownEnergy():number - напряжение разрушения проводника getEUInsulationBreakdownEnergy():number - напряжение разрушения изоляции getEUInsulationEnergyAbsorption():number - часть энергии, поглощаемая изоляцией. Лишняя энергия - удар током.  
    Потребитель EU
    Идентификатор: eu_sink getDemandedEnergy():number - максимальное безопасное напряжение getEUSinkTier():number - уровень напряжения потребителя (1 = LV, 2 = MV, 3 = HV, 4 = EV)  
    Источник EU
    Идентификатор: eu_source getOfferedEnergy():number - выдаваемое напряжение getEUSourceTier():number - уровень напряжения источника (1 = LV, 2 = MV, 3 = HV, 4 = EV)  
    Хранилище EU
    Идентификатор: eu_storage getEUStored():number - сколько хранится энергии getEUCapacity():number - размер хранилища getEUOutputPerTick():number - выдаваемое напряжение в тик  
    Машина - информация о устройстве
    Идентификатор: ic2_machine getProgress():number - прогресс работы, 0.0-100.0  
    Источник тепловой энергии
    Идентификатор: ic2_heat_source getMaxKineticEnergy(side:string):number - (в названии баг?) максимальное количество выдаваемой энергии на стороне, в тик  
    Источник кинетической энергии
    Идентификатор: ic2_kinetic_source getMaxKineticEnergy(side:string):number - максимальное количество выдаваемой энергии на стороне, в тик  
    Провайдеры предметов
    Электрический предмет
    Ключ: electric Значение: table     - tier:number - уровень предмета     - charge:number - уровень заряда     - maxCharge:number - максимальный уровень заряда     - canProvideEnergy:number - можно ли использовать в качестве аккумулятора     - transferLimit:number - максимальное отдаваемое напряжение  
  8. Xytabich
    Расширение для работы с Applied Energistics.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Структуры
    "Отпечаток" (Fingerprint) предмета/жидкости, используется для описания объекта в ME сети
    id:string - идентификатор dmg:number - мета nbt_hash:string? - хэш-сумма nbt  
    Адаптеры блоков
    Сеть - какая-либо часть ME сети, провод, интерфейс и т.п.
    Идентификатор: me_network getStoredPower():number - хранимая в сети энергия getMaxStoredPower():number - размер хранилища энергии getIdlePowerUsage():number - потребление сети в простое getAvgPowerUsage():number - среднестатистическое потребление сети getAvailableItems([details:string]):table[] - список предметов/жидкостей в сети. details - в каком виде выдавать информацию о предмете: all, proxy     - fingerprint:table - отпечаток предмета/жидкости     - size:number - количество предмета/жидкости     - is_craftable:bool - есть ли автокрафт     - is_fluid:bool - жидкость ли это     - is_item:bool - предмет ли это     - item:table? - информация о предмете, если указан details. Для all это таблица с данными, для proxy - прокси предмета. getItemDetail(item:table[, proxy:bool]):table - подробная информация о предмете, необходимо передать отпечаток getCraftingCPUs():table - получить список процессоров автокрафта     - name:string - имя процессора     - storage:number - размер хранилища в байтах     - coprocessors:number - количество со-процессоров     - busy:bool - занят ли сейчас процессор  
    ME интерфейс
    Идентификатор: me_interface requestCrafting(fingerprint:table[, qty:number[, cpu:string]]) - запросить крафт предмета, необходимо передать отпечаток, количество, имя процессора canExport(direction:string):bool - может ли интерфейс экспортировать предмет в заданный инвентарь exportItem(fingerprint:table, direction:string[, maxAmount:number[, intoSlot:number]]) - экспортировать предмет в заданный инвентарь и слот (если есть в сети), maxAmount - сколько необходимо предметов     - fingerprint:table - отпечаток предмета     - size:number - сколько предметов было экспортировано     - is_craftable:bool - есть ли автокрафт     - is_fluid:bool - жидкость ли это     - is_item:bool - предмет ли это     - item:table - подробная информация о предмете  
    ME накопитель
    Идентификатор: me_storage getCellCount():number - количество ячеек getCellStatus(slot:number):number, string - статус ячейки - номер статуса и наименование  
    Провайдеры предметов
    ME предметная ячейка
    Ключ: me_cell Значение: table     - preformatted:bool - настроенная ячейка     - fuzzy:bool - ячейка с картой нечёткости     - totalBytes:number - общий объем, в байтах     - usedBytes:number - использовано байт     - freeBytes:number - свободно байт     - totalTypes:number - максимальное количество типов предметов     - usedTypes:number - использовано типов     - freeTypes:number - доступно типов для использования  
  9. Xytabich
    Расширение для работы с MineFactory Reloaded.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Адаптеры блоков
    Авто-наковальня
    Идентификатор: mfr_anvil getRepairOnly():bool - получить режим ограничение наковальни "только ремонт" setRepairOnly(repair:bool) - установить ограничение "только ремонт"  
    Авто-дизенчантер
    Идентификатор: mfr_disenchanter getRepeat():bool - получить режим повтора снятия чаров getRepeat(repeat:bool) - установить режим повтора снятия чаров  
    Авто-зачарователь
    Идентификатор: mfr_enchanter getTargetLevel():number - текущий уровень зачарования setTargetLevel(level:number) - установить уровень зачарования 1-30  
    Авто-проигрыватель
    Идентификатор: mfr_jukebox getCanCopy():bool - можно ли скопировать пластинку getCanPlay():bool - можно ли проиграть пластинку copy() - скопировать пластинку play() - проиграть пластинку play() - остановить пластинку  
    Авто-спавнер
    Идентификатор: mfr_spawner getSpawnExact():bool - получить режим извлечения setSpawnExact(spawnExact:bool) - установить режим извлечения  
    Сепаратор
    Идентификатор: mfr_chronotyper getMoveAdults():bool - перемещать ли взрослых setMoveAdults(adults:bool) - установить режим перемещения взрослых  
    Загрузчик чанков
    Идентификатор: mfr_chunk_loader getRadius():number - текущий радиус загрузки setRadius(radius:number) - установить радиус загрузки  
    Глубокое хранилище
    Идентификатор: mfr-deep-storage getStoredItems():table - информация о хранящемся стаке getMaxStoredItems():number - максимальное количество предметов  
    Выталкиватель
    Идентификатор: mfr_ejector getIsWhitelist():bool - получить режим: чёрный/белый список setIsWhitelist(isWhitelist:bool) - установить режим: чёрный (false) или белый(true) список getMatchNBT():bool - есть ли фильтрация по NBT setMatchNBT(matchNBT:bool) - установить фильтрацию по NBT getMatchMeta():bool - есть ли фильтрация по мете setMatchMeta(matchMeta:bool) - установить фильтрацию по мете  
    Комбайн
    Идентификатор: mfr_harvester getShearLeaves():bool - собираются ли листья setShearLeaves(shearLeaves:bool) - установить режим сбора листьев getHarvestShrooms():bool - собираются ли маленькие грибы setHarvestShrooms(harvestShrooms:bool) - установить режим сбора маленьких грибов getSettings():table - возвращает пары {name=enabled:bool} - список текущих настроек  
    Провайдеры предметов
    Сафари-сеть
    Ключ: safari_net Значение: table     - type:string - тип сафари-сети: reusable, single_use, jailer, unknown     - captured:string - идентификатор моба, или "?" - если случайная сеть  
  10. Xytabich
    Расширение для работы с RailCraft.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Адаптеры блоков
    Присутствие вагонетки
    Идентификатор: railcraft_has_cart hasCart():bool - имеется ли вагонетка рядлм с устройством  
    Выполнение работы
    Идентификатор: railcraft_has_work hasWork():bool - имеется ли работа у устройства  
    Потребитель топлива
    Идентификатор: railcraft_needs_fuel needsFuel():bool - необходимо ли добавить топливо  
    Обслуживаемое устройство
    Идентификатор: railcraft_needs_maintenance needsMaintenance():bool - необходимо ли обслуживание устройству  
    Нагреваемое устройство
    Идентификатор: railcraft_temperature getTemperature():number - текущая температура  
    Топка
    Идентификатор: railcraft_firebox isBurning():bool - горит ли огонь в топке  
    Паровая турбина
    Идентификатор: railcraft_turbine getTurbineRotorStatus():number - статус турбины, 0-100 процентов getTurbineOutput():number - выход турбины в процентах  
    Провайдеры предметов
    Жидкое топливо - жидкость, подходящая топке в качестве топлива
    Ключ: boiler_fuel Значение: table     - total:number - количество тепла за весь объем контейнера     - per_bucket:number - количество тепла за ведро  
    Билет
    Ключ: rail-ticket Значение: table     - golden:bool - золотой ли это билет     - owner:string? - создатель билета     - dest:string? - цель билета  
    Провайдеры сущностей
    Вагонетка
    Ключ: railcraft_cart Значение: table     - hasOwner:bool - имеется ли у вагонетки владелец     - owner:string? - игровой профиль владельца вагонетки  
    Раскрашенная вагонетка
    Ключ: painted_cart Значение: table     - primaryColor:number - индекс основного цвета     - secondaryColor:number - индекс дополнительного цвета  
    Сцепляемая вагонетка
    Ключ: linkable_cart Значение: table     - linkable:bool - сцепляется ли вагонетка     - cartsInTrain:bool? - вагонетка в составе поезда  
    Маршрутная вагонетка
    Ключ: routable_cart Значение: table     - destination:string - цель вагонетки  
    Заправляемая вагонетка
    Ключ: refuelable_cart Значение: table     - needsRefuel:bool - необходима ли заправка  
    Жидкостная вагонетка
    Ключ: liquid_cart Значение: table     - isFilling:bool - заполняется ли вагонетка  
    Энергетическая вагонетка - EU
    Ключ: energy_cart Значение: table     - currentPower:number - хранимая энергия     - maxPower:number - максимальная хранимая энергия     - transferRate:number - максимальная передаваемая энергия в тик     - powerTier:number - энергетический уровень  
    Взрывающаяся вагонетка
    Ключ: liquid_cart Значение: table     - primed:bool - активирован ли взрыв     - fuse:number - оставшееся время до взрыва, в тиках  
  11. Xytabich
    Расширение для работы с Thaumcraft.
    Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет.
     
    Адаптеры блоков
    Контейнер аспектов - устройство/хранилище, содержащее аспекты.
    Идентификатор: thaumcraft_aspect_container getAspects():table - список хранящихся аспектов     - name:string - тип аспекта     - quantity:number - количество getAspectsSum():table - таблица {name=count} - сумма аспектов по типам (если в блоке больше одной записи одного типа) getAspectCount(aspect:string):number - сколько аспекта этого типа хранится в блоке  
    Банка
    Идентификатор: thaumcraft_jar getAspectFilter():string - тип аспекта на бирке getAspects():table - список хранящихся аспектов     - name:string - тип аспекта     - quantity:number - количество  
    Узел ауры
    Идентификатор: thaumcraft_node getNodeType():string - тип узла: normal, unstable, dark, tainted, hungry, pure getNodeModifier():string - модификатор узла: bright, pale, fading  
    Транспортировщик эссенции - трубы и всё с ними связанное
    Идентификатор: thaumcraft_essentia_transport getSuctionAmount(direction:string):number - сила всасывания getSuctionType(direction:string):string - тип всасываемой эссенции getEssentiaAmount(direction:string):number - количество хранящейся эссенции getEssentiaType(direction:string):string - тип хранящейся эссенции  
    Мозг в банке
    Идентификатор: thaumcraft_brain getXP():number - количество хранящегося опыта  
    Мистическое ухо
    Идентификатор: thaumcraft_ear getNote():number - установленная нота setNote(note:number) - установить ноту getTone():number - установленный тон setTone(note:number) - установить тон  
    Мистический бур
    Идентификатор: thaumcraf_bore hasPickaxe():bool - имеется ли кирка isPickaxeBroken():bool - сломана ли кирка getPick():table - предмет кирки isWorking():bool - работает ли бур getRadius():number - радиус работы бура getSpeed():number - скорость работы бура getFortune():number - уровень удачи на кирке hasSilkTouch():bool - имеется ли шёлковое касание на кирке hasNativeClusters():bool - копает ли кирка кластеры, вместо руд  
    Стол расщепления
    Идентификатор: thaumcraft_deconstructor hasItem():bool - имеется ли предмет hasAspect():bool - имеется ли аспект getAspect():string - тип аспекта  
    Провайдеры предметов
    Контейнер эссенции
    Ключ: essentia_container Значение: table - список хранящихся аспектов     - name:string - тип аспекта     - quantity:number - количество  
    Набалдашник
    Ключ: wand_focus Значение: table     - cost:number - цена использования     - isPerTick:bool - цена показана за тик использования     - color:number - цвет набалдашника 0xRRGGBB  
  12. Xytabich
    На повестке дня аддон для OpenComputers и ComputerCraft всех времён и народов, реализующий большое количество функционала для работы с миром Minecraft'а и его модификациями. Но поговорим только о версии для OpenComputers (она несколько обрезана, по сравнению с СС).
    Жизнь без этого мода оказалась тем ещё кошмаром, особенно при попытке играть на серверах более поздних версий майнкрафта. Но что это был за кошмар, удалось узнать только недавно - OpenPeripheral не только добавлял удобные способы взаимодействия со всем миром, но и дополнял функционал OpenComputers'а при работе со многими модификациями.
     
    Итак, аддон состоит из 3х модулей, которые будут описываться отдельно:
    - Core - собственно, ядро аддона, реализует некоторые базовые функции
    - Integration - расширенное взаимодействие с майнкрафтом и модами
    - Addons - дополнительная периферия для пк
    Информация актуальная для версии Minecraft 1.7.10.
     
    В этой части разговор пойдет о ядре аддона, так как его функционал является основополагающим для остальных модулей.
     
    Итак, в моде реализована система адаптеров - интерфейсов lua-minecraft (он-же драйвер), предоставляющих функционал для взаимодействия с объектами.
    У каждого адаптера есть свой идентификатор, и этот идентификатор используется для определения "владельца" функционала.
    В ядре, есть только адаптер для отображения документации объекта. В будущих же статьях будут описаны адаптеры в модуле, и предоставляемый ими функционал.
     
    Документация функций
    Ядро реализует неплохую систему документации всех своих функций, которую можно просмотреть через lua:
    listMethods([filterSource]):string - возвращает строчку со всеми методами методов.     filterSource - идентификатор адаптера Пример: listMethods():"doc(method), getAdvancedMethodsData(method?), listMethods(filterSource?), listSources()" listSources():table - возвращает таблицу {name=true} со всеми адаптерами. Пример: listSources():{["<meta>"]=true, skull=true} - список адаптеров черепа, <meta> - адаптер ядра, skull - адаптер черепов/голов doc(method):string - возвращает текстовое описание метода. Пример: doc("doc"):"function(method:string):string -- Brief description of method" getAdvancedMethodsData([method]):table - возвращает полную информацию о методе, или всех методах.     возвращаемая структура:     - description:string - текстовое описание     - source:string - идентификатор адаптера     - returnTypes:string - строчка с возвращаемым типом(типами) данных     - args:table - аргументы функции:         - name:string         - type:string - тип аргумента, но есть баг - отображается java-тип         - description:string         - nullable:bool? - принимает ли значение nil         - optional:bool? - является ли необязательным аргументом         - vararg:bool?   - переменное кол-во аргументов (или ...)  
    Предметы и сущности
    Одной из интересных особенностей OpenPeripheral является система доступа к метаданным предметов или сущностей, а именно - прокси (proxy, он же - паттерн "заместитель"). Прокси является неким контейнером, содержащем прямую ссылку на java-объект, что позволяет получать актуальную информацию о предмете или сущности, до тех пор пока прокси или объект не выгрузится из памяти.
    Многие методы OpenPeripheral, возвращающие данные о предметах или сущностях, могут вернуть прокси. Это позволяет экономить память в условиях огромного объема обрабатываемой информации, например - получение всех предметов ME сети, или наоборот - при малом объеме памяти на пк.
    Но есть и серьезный минус при работе с прокси - любая попытка доступа к данным будет занимать один игровой тик.
     
    Прокси предметов или сущностей возвращают некоторую базовую информацию, например идентификатор, позиция и т.п. Но для более подробной информации используются провайдер - интерфейс, предоставляющий специфичные данные, записанные, например, в NBT. У объекта может быть несколько провайдеров, по этому у провайдера есть идентификатор, или ключ, под которым записаны данные конкретного провайдера в объекте. Прокси реализует доступ как к отдельным провайдерам, так и сразу ко всей информации.
    Для предметов и сущностей структура прокси одинакова:
    basic():table - базовая информация об объекте, содержит фиксированные поля. Данные зависят от реализации. all():table - содержит информацию из basic(), а также предоставляемую провайдерами информацию. keys():table - возвращает таблицу {name=true} со всеми провайдерами. single(key):object - возвращает информацию, предоставляемую провайдером. select(keys...):object - возвращает информацию, предоставляемую всеми переданными провайдерами. Примечание: прокси выгруженных объектов, при обращении к функциям, будут возвращать nil.
     
    Провайдеры добавляются отдельными модулями OpenPeripheral, а в ядре содержится только базовая информация, возвращаемая функцией base().
    Базовая информация предмета:
    id:string - полный идентификатор предмета mod:name name:string - идентификатор предмета в модификации mod_id:string - идентификатор модификации display_name:string - отображаемое имя, зависит от языка сервера, и назначенного на наковальне имени raw_name:string - имя предмета для локализации, в нижнем регистре qty:number - кол-во предметов в стаке dmg:number - мета, или прочность предмета health_bar:number? - отображаемое в полоске прочности значение, 0.0-1.0 max_dmg:number - максимальная прочность предмета max_size:number - максимальный размер стака  
    Базовая информация сущности:
    position:table {x,y,z} - относительная или абсолютная позиция сущности name:string - имя сущности id:number - номер сущности (по порядку появления в мире) uuid:string - уникальный идентификатор сущности (идентификатор в базе данных) riddenBy:number? - номер сущности, оседлавшей это существо ridingEntity:number? - номер сущности, которую оседлало это существо  
    Жидкости
    Информация о жидкости:
    amount:number - объем жидкости id:number - идентификатор жидкости name:string? - имя жидкости rawName:string? - название жидкости - зависит от языка сервера Информация о хранилище жидкости:
    capacity:number - общий объем хранилища contents:table - содержащаяся жидкость  
    Игровой профиль
    Информация о игроке:
    name:string - имя игрока uuid:string - уникальный идентификатор игрока  
    Если у вас есть мысли, что может дополнить статью - был бы рад услышать.
×
×
  • Создать...