Лидеры
Популярный контент
Показан контент с высокой репутацией 11.05.2020 в Записи блога
-
3 баллаРасширение для работы с 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 - неактивные гены
-
3 баллаРасширение для работы с 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 - максимальное отдаваемое напряжение
-
2 балла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 - размер инвентаря
-
2 баллаСейчас я покажу, как сделать это: На скрине выше — улучшенный debug.debug(). Он умеет: Бегать вверх-вниз по стэку вызовов независимо от того, где запущен. Показывать красивые стэктрейсы. Имитировать динамический скоуп: получать значения локальных переменных, редактировать их, не требуя возни с либой debug. При этом учитывает, на каком уровне в стэке вызовов он находится. Он не умеет: «Шагать» по коду, заходить внутрь функций, проскакивать над ними. Таким образом, это не совсем дебаггер. Но он может показать состояние всех доступных переменных. Чтобы заюзать в коде, нужно сделать так: require("dbg")() Впрочем, если в проге есть какой-то часто вызываемый сегмент, то безусловно падать в мини-дебаггер на каждой итерации очень печально. Поэтому можно задать условие, при котором его запускать. Например: require("dbg")(nonNegative < 0) У нас есть переменная nonNegative, которая семантически всегда неотрицательна. Если ж внезапно попалось что-то меньше нуля, есть смысл попросить программиста проверить, кто (и как) изобрёл свою алгебру. Команды: :bt — показать стэктрейс. :up — прыгнуть на уровень вверх. :down — спуститься на уровень вниз. :frame N — перейти на N-ый уровень. Выйти из интерпретатора можно, нажав Ctrl-D или Ctrl-C. Код: https://gist.github.com/Fingercomp/58388304f45bf6b2b8108e3b7a555315 (задумывался одноразовым, качество соответствующее). В обычной Lua надо просто кинуть содержимое куда-нибудь, откуда require тащит файлы. Чтобы это работало в OpenComputers, придётся пропатчить содержимое мода: Открываем jar-файл мода в архиваторе. Идём в /assets/opencomputers/lua. Открываем файл machine.lua и в районе 971 строки делаем как-то так: Сохраняемся и выходим. Если всё сделано правильно, в OpenComputers теперь доступна полная либа debug. Остаётся закинуть код мини-дебаггера, например, в /home/lib, дальше используем как обычно. Очевидно, что на серверах такое делать не надо. Ну, совсем не надо. Полной либой debug легко выудить нативную load. А это уже уязвимость. Но в сингле вещь незаменимая. Цитирую отзыв пользователя, пожелавшего остаться анонимным: Успехов вам в дезинсекции кода.
-
1 баллНа повестке дня аддон для 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 - уникальный идентификатор игрока Если у вас есть мысли, что может дополнить статью - был бы рад услышать.
-
1 баллРасширение для работы с 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 - сейчас превращается в жителя На этом функционал ванилы окончен.
-
1 баллРасширение для работы с 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 - мета блока
Эта таблица лидеров рассчитана в Москва/GMT+03:00
