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

Поиск по сайту

Результаты поиска по тегам 'api'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123
  • mineOS и её удивительный мир
  • Поляна говнокода Bumer 32

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

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

  • Начать

    Конец


Группа


AIM


MSN


ICQ


Yahoo


Jabber


ВКонтакте


Город


Интересы

Найдено 27 результатов

  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 - уникальный идентификатор игрока Если у вас есть мысли, что может дополнить статью - был бы рад услышать.
  2. Xytabich

    OpenPeripheral: Addons

    Дополнительные блоки и предметы. Если вы ещё не прочитали вступительную статью - рекомендуется сделать это сейчас, так как описания данных предметов/жидкостей/сущностей здесь нет. Про очки и терминал было рассказано в другой статье. Блоки: 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 - возвращает владельца блока и билетов
  3. OpenPeripheral предоставляет мощный функционал по созданию собственных интерфейсов в виде очков дополненной реальности "Terminal Glasses". К сожалению, полного списка функционала и всех нюансов по работе с этими очками не найти. Присутствуют некоторые отрывки, небольшие видео с результатами работы и прочие поделки. Но! Спустя пару бессонных ночей, декомпилированного кода и трёх литров чая, удалось описать полный функционал этих очков. Основные возможности очков и периферии: Отображение геометрических объектов различной сложности и цветовой гаммы. Отображение текста. Отображение жидкостей и предметов. Взаимодействие с мышью/клавиатурой. Чтение сообщений чата. Специальные команды чата, не отображающиеся в нем. Возможность индивидуальной работы с каждым пользователем терминала. Установка очков в любой шлем. Возможности данных очков я опишу по разделам, в лучших традициях вики Для начала, определю некоторые понятия. Система терминальных очков состоит из трёх предметов: терминала, очков, беспроводной клавиатуры. Терминал является центром всей системы, через него происходит общение между компьютером и очками. Также он хранит все данные интерфейса и пользователей. На очки выводится вся графическая информация, а сами очки передают сообщения или команды чата на терминал. Беспроводная клавиатура позволяет дополнить всю систему, своей возможностью контроля элементов при помощи клавиатуры и мыши. Как выводить информацию на очки: local com = require("component") local opb = com.openperipheral_bridge -- Построение интерфейса происходит во внутреннем буффере терминала (он же мост). local text = opb.addText(10, 10, "", 0xffef7f) -- Создаем компонент "Текст". -- Его нужно создать только один раз, в остальное время можно обращаться по ссылке и изменять любой параметр. local counter = 0 while true do -- В качестве примера будет выводится счетчик секунд. text.setText(tostring(counter)) -- Обновляем текста компонента. opb.sync() -- Для отображения графики на экране, необходимо отправить буффер на очки. os.sleep(1) -- Ждем секунду и прибавляем счетчик. counter = counter+1 end API Перед тем как перейти к API, нужно знать: Color:number -- Число в формате TrueColor RGB (по умолчанию 0xffffff). Opacity:number -- Прозрачность, число от 0.0 до 1.0 (по умолчанию 1). Знак '?' -- Опциональный параметр/функция. События Строковые константы VerticalAlignment:[TOP, MIDDLE, BOTTOM] HorizontalAlignment:[LEFT, MIDDLE, RIGHT] GuiElement:[OVERLAY, PORTAL, HOTBAR, CROSSHAIRS, BOSS_HEALTH, HEALTH, ARMOR, FOOD, MOUNT_HEALTH, AIR, EXPERIENCE, JUMP_BAR, OBJECTIVES] Структуры данных SimpleBox, ColoredPoint, Coord, User Абстрактные объекты Drawable, BoundedShape, Box Графические объекты Управление графическими объектами DrawableFactory, DrawableContainer Управление терминалом Вот такая шпаргалка по очкам, надеюсь пригодится
  4. 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. Расширение для работы с 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 - сейчас превращается в жителя На этом функционал ванилы окончен.
  6. Расширение для работы с 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 - доступно типов для использования
  7. Привет всем! Когда я искал библиотеку для создания изображений, отрисовки и т.д. я не нашёл ни одной хорошей библиотеки. Поэтому я написал свою библиотеку, tifAPI! Вам может показаться, что это уже существующее расширение .tif(.tiff), но .tiff расшифровывается как "Tagged Image File Format", а мой - "Text Image Format". А теперь вопросы и ответы (Только на ComputerCraft) Легко, пишем команду pastebin get EnZksdhv installerTIFAPI после скачивания файла пишем следующую команду installerTIFAPI <Папка, в которой будет папка с библиотекой> . Скачивание файлов библиотеки закончиться, когда очиститься экран, и будет надпись "tifAPI has been installed!". Вот Это цвета от 1 до 9 и a, b, c, d, e, f А вот и шпаргалка цветов --[[ a - Номера цветов(colors) b - Сами цвета c - HEX цвет ------------------- a b c 1 0 #F0F0F0 2 1 #F2B233 4 2 #E57FD8 8 3 #99B2F2 16 4 #DEDE6C 32 5 #7FCC19 64 6 #F2B2CC 128 7 #4C4C4C 256 8 #999999 512 9 #4C99B2 1024 a #B266E5 2048 b #3366CC 4096 c #7F664C 8192 d #57A64E 16384 e #CC4C4C 32768 f #191919 ]]-- TifImage - таблица, в которой храниться изображение Да будут.
  8. Расширение для работы с 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
  9. Расширение для работы с 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 - неактивные гены
  10. Расширение для работы с 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. Расширение для работы с 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 - идентификатор моба, или "?" - если случайная сеть
  12. Расширение для работы с 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 - максимальное отдаваемое напряжение
  13. Где можно найти сайт который при отправке запроса вернёт реальное московское время? В формате: часы:минуты
  14. Перенос статьи Эта тема была перенесена из блока "Статьи". Автор оригинала: fenixrus. Здравствуйте с вами Fenixrus и я начинаю серию гайдов по API мода OpenComputers. Начнем мы с Component API. Вообщем смотрим, изучаем, пробуем, комментируем! https://www.youtube.com/watch?v=hStnB3hCpFs
  15. Ребята, нужна помощь с заливкой логов на pastebin. можно просто отрывок кода-примера заливки файла (лог-файл) на определенный ID. Возился с internet API, но ничего не получилось, т.к. с всякими HTTP протоколами и прочим никогда не возился. А вообще можно реализовать вышеописанное?
  16. Библиотека создавалась для облегчения передвижения, навигации и работы с инвентарем. Робот отслеживает позицию и вращение относительно стартовой точки. Добавлена возможность движения по линии, просто говоришь в какую сторону идти или копать и сколько блоков. Может осматриваться вокруг себя в поиске сундука или блока по имени. Сделал отображение помощи по использованию функций робота в интерпретаторе lua, или с помощью tostring(robot.functionName). Весь стандартный функционал робота работает как описано в robot API, я переопределил то, что связанно с движением, чтобы не нарушалось отслеживание позиции, но сохранил выход, так что robotExt можно использовать вместо robot в ваших программах без каких либо изменений кода. Список функций: Исходный код http://pastebin.com/nTVxAQWA В будущем, возможно, добавлю еще дополнительные возможности, пока выкладываю то что есть. В проекте вывод статистики и предположительный запас заряда/прочности инструмента в режиме передвижения/копки. Пожелания, предложения и критика приветствуются.
  17. Programist135

    Programist135 API

    Стоимость программы: [...............] 0 алмазов Сложность программы: [|||||||........] средне Размер программы: [|||||||........] 5 KiB Глючность программы: [||.............] минимум ---------------------------------------------------------------------- 1. Информация Приходится же мне очень часто использовать одну и ту же функцию. Но думаю: зачем же так извращаться? Решил сделать библиотеку. Зачем я её сюда выложил? Может и вам пригодиться. Приступим к обзору! Чтобы установить библиотеку, введите: wget https://preview.c9users.io/programist135/programfiles/Programist135/P135API.lua /lib/P135API.lua 2. Обзор И так, функции: addWindow(x, y, width, height, windowColor, topBarColor, topBarlabel) ​Данная функция создаёт окно. Но! Всё остальное в нём нужно делать вручную. Аргументы: x: стартовая координата по оси X. Можно написать "auto" и она будет выровнена посередине экрана. [!] Такая опция (auto) была взята из библиотеки пользователя ECS. Я её не стал записывать в таблицу, поэтому она НЕ будет доступна. y: стартовая координата по оси Y. Можно написать "auto" и она будет выровнена посередине экрана. width: ширина окна. height: высота окна. windowColor: цвет всего окна, кроме топбара. topBarColor: цвет топбара. topBarLabel: надпись на топбаре. Следующая функция создаёт/редактирует шкалу прогресса (то, чего мне так не хватает! ) setProgressBar(x, y, width, currentProgress, backColor, lineColor) [!] Чтобы изменить состояние, к сожалению приходится постоянно вызывать эту функцию. x: стартовая координата по оси X. y: стартовая координата по оси Y. width: ширина шкалы. currentProgress: текущий прогресс. [!] Если вы попытаетесь указать текущий прогресс больше, чем ширина шкалы, то библиотека завершится с ошибкой index out of bounds backColor: цвет незаполненного куска шкалы. lineColor: цвет заполненного куска шкалы. Дальше. Функция добавления текста. Вы скажете: ФУУУ, а gpu.set для слабаков? А тут есть выбор цвета, причём как цвет ЗА текстом, так и цвет самого текста. addText(x, y, backColor, txtColor, text) Аргументы: x: стартовая координата по оси X. y: стартовая координата по оси Y. backColor: цвет фона ЗА текстом. txtColor: цвет самого текста. text: ну, понятно А эта функция самая простая. Она сбрасывает всю систему к стандартным параметрам. reset() И так. Кому нибудь пригодятся рандомные цифры, но а как же без рандомных символов? generate(length) length - это длина строки. А теперь самое интересное. 3. Особые функции. А для работы следующих функций нам потребуется уже два (!!!) компонента -> Дата-карта и Модем (не важно, проводной или беспроводной ) Эта функция отправляет (бродкастит ) защищённое сообщение. Да, это уже не как либа криптования Asummonster'a sendSecuredMessage(...) Там, где "...", туда можно написать любое сообщение. Но! Внимание!! Туда можно запихать даже НЕСКОЛЬКО значений ! Ну а дальше: getSecuredMessage() Эта функция ждёт защищённого сообщения. Но она его (их) не принтит, а возвращает! Поэтому пишите так: data1, data2, data3 = P135API.getSecuredMessage() Вот и всё. 4. Итоги Да, писал статью я ОЧЕНЬ долго (ну где-то 40 минут ). И о чём я вас хотел предупредить: Если один из компонентов для выполнения особых функций не подключен (или оба), то эти функции вы не увидите. И не сможете их использовать. Если обнаружите глюк, немедленно сообщите сюда в комментарии. Если имеются идеи по пополнению библиотеки, напишите так же сюда в комментарии. Так вы сделаете пользу и мне, и себе, и остальным. Ну а на этом я с вами прощаюсь. Всем спасибо за прочтение, надеюсь библиотечка вам пригодится, а с вами был (нет, пора на что нибудь другое перейти!) всем до скорой встречи, всем пока!
  18. GUIAPI v0.3 Мало кто помнит, но очень давно, во времена Тоторо-не-девелопера, мы с Тоторо и НЕО писали GUIAPI, и даже тему подняли, но потом забросили и даже не довели до ума. Уже совсем недавно, я начал писать банк для Файна, и однажды он мне написал: "Сделай крутое гуи как в базаре (новом) у Крутого". И начал грустить тогда я, ведь не было у меня удобного и красивого инструмента для создания гуи. И вспомнил я про формочки Зеро, и вспомнил я слова НЕО "Не пиши велосипеды!", но я не послушал его. Поэтому, хочу представить вам библиотеку гуи, настоящий велосипед, но красивее чем у Зеро. Модулей пока очень мало, а именно кнопка, текст-ввод, коробка и лэйбл. Но если вы захотите - вы можете написать свой модуль. Работа с API: Создание своего модуля: Скачать: Скоро PS: Кто напишет нормальную прокрутку в текстовом поле - тому подарок на IT-Lite лично от меня, у самого времени нет.
  19. electronic_steve

    ESAPI

    Образовалась у меня маленькая библиотека из всякого разного. Решил выложить. У этой библиотеки нет какой либо направленности. Просто засунул всё что мне обычно нужно. Основные функции: Функции для работы с pastebin'ом: http://pastebin.com/25shjwJZ
  20. Вот ошибка: window:234: bad argument: double expected, got table P.S. Window API нигде не использовал
  21. Ktlo

    [CC] Object API

    Object API (Работаю над названием) Представляю вам третью версию Object API, которое я начал писать ещё давно, первых двух версий вы здесь не найдёте. Это библиотека работает только на Computer Craft, так что возможно зря я её писал... В любом случае, я надеюсь, что вы оцените. Сейчас в этой библиотеке есть следующие элементы: Button, CheckBox, Graph, Image, Label, Process, Registry, TextBox (не доделано). Планирую написать ещё очень много. Скачать можно с pastebin: pastebin get 3Bq2Sgvi object Устанавливается стандартной функцией os.loadAPI("object") или с помощью require. Под мою функцию она изначально была лучше адаптированна. Но не подумайте, со стандартной функцией работает. Изображение Потом напишу про остальные объекты.
  22. Данное API будет добавлять в вашу систему более удобные средства программирования разных элементов типа кнопки, картинки, процесса в виде разных объектов. Это API ещё находится в разработке, пока я добавил один элемент, кнопку. Я постарался сделать это API максимально гибким, и пока я не начал делать следующий элемент, хотелось бы услышать ваше мнение. Устанавливается всё очень просто, как любая другая библиотека. Скачать можно с pastebin. Кнопка Если есть какие-то предложения по улучшению, пишите.
  23. Пока я писал свою систему для ComputerCraft, мне пришла мысль изобрести велосипед в виде функции require(), которая была удалена из мода по неизвестным мне причинам. Собственно вот код: function require(...) local i local libs = { } for i=1, #arg do arg[i] = fs.combine("", arg[i]) --В кавычки можно написать путь к директории с вашими библиотеками. if not fs.exists(arg[i]) or fs.isDir(arg[i]) then error("Couldn't find a file by the path #"..i, 2) end local g = getfenv() local t = { } setmetatable(t, {__index = _G}) t.shell = shell t.multishell = multishell setfenv(1, t) local f=function() dofile(arg[i]) end local ok, err = pcall(f) setfenv(1, g) if not ok then error(err..", in #"..i, 2) end libs[i] = t end return unpack(libs) end ,,Что-же эта функция делает?"- может кто-то спросить, а тоже что и раньше. Она загружает библиотеку по выбранному вами пути в таблицу (или правильнее будет сказать, в окружение). Самое главное - это то, что вы сможете загружать любое API в любую переменную, в том числе и локальную. Выглядит это примерно так: local firstVariable, secondVariable = require("APIs/HelloWorld.api", "APIs/Object.lua") Как вы наверное уже поняли, можно загружать не ограниченное количество библиотек за раз. Особенности: ​загрузка нескольких переменных одновременно; возможность не захламлять глобальное окружение; использование библиотек в любой другой таблице; пропуск shell API и multishell API в окружение вашего API*; запуск вашего файла с библиотекой во время загрузки (ну это я из пальца выжимаю); в отличии от стандартной функции, вы не можете использовать require()для поиска библиотеки среди файлов, но по-моему это лишнее в CC, но вы можете указать одну папку (заметка на счёт этого в коде); вы можете убедится в том, что окружение, куда вы запихнули свою библиотеку, не содержит копию всех функций и переменных из глобального окружения (что хорошо сказывается на производительности). ​Для того, чтобы использовать эту функцию, просто вставьте её код в вашу программу. Надеюсь, что это кому-нибудь пригодится. Дополнение. Я переделал функцию и добавил взаимодействие с глобальной таблицей package, этот вариант намного лучше предыдущего. Чтобы использовать его скачайте файл с помощью команды: pastebin get naxXwUey package Далее загрузите в глобальное окружение с помощью функции dofile("package"). Теперь рассмотрим, что же я изменил. Во-первых, при повторном вызове функции с одним и тем же API, вы получаете ту же самую таблицу, то-есть: local var1 = require("lib1") local var2 = require("lib1") print(var1 == var2) -->Вывод: true Так получается, потому что каждая новая загруженная библиотека сохраняется в таблице package.loaded, а при повторном вызове, вам выдаётся значение из этой таблицы. Я также внес все стандартные API ComputerCraft'а в эту таблицу. Во-вторых, я добавил значение package.path, оно работает точно также, как и в оригинале. Просто перечисляете директории с библиотеками в током виде: package.path = "/APIs/?.lua;/Lib/?;/?" Вы можете изменить это значение в самом файле, я там оставил комментарий. Также я добавил таблицу package.preload, которая содержит специальные пользовательские функции для загрузки конкретного API, по стандарту я её оставил пустой (что логично). Ключи таких функций являются названиями API, а возвращать они должны функции, которые возвращают само API (правда не знаю, кому это может понадобиться). И наконец, package.loaders, в этом массиве, расположены функции для загрузки всех API. Их пока две. Аргументом этой функции должно быть имя модуля, а возвращать она должна функцию, загружающую API. Для тех, кто ничего не понял, просто знайте второй вариант этой функции с дополнением лучше.))) *Да-да, теперь вам не придётся мучиться и придумывать изощрённые способы получения допуска к функциям этого API в вашей библиотеке!
  24. Так уж вышло, что Сябро первый выложил на форум библиотеку для робота, а я свою написал ещё неделю назад (скрипач Морф - свидетель) Так вот, данное поделие служит для управления роботом и получением его координат. Сам код на pastebin кидать не буду, ибо он слишком прост. Для тех, кто ничего не понял, вот список функций (вместо {side} подставить North, South, West или East соответсвенно): getCoordinates():x,y,z,d Возвращает текущее положение робота и его направление (x,y,z - числа, d='N','S','W','E') go{side}():boolean Перемещает подопытного. Возвращает true в случае успеха. goUp() и goDown() делают то же самое, только... угадайте куда . smartTurnRight(), smartTurnLeft() и smartTurnAround() - ну тут всё понятно. turn{Side}() - поворачивают на север, юг... в общем, куда надо. getX(), getY(), getZ(), getDirection() - интересно, что же они возвращают... (подсказка - первые три - числа, четвёртая - строку) --------------- Новая версия! Изменения: Почти ничего, а именно: добавлены функции goX(), goY(), goZ(). Cкачать можно на Яндекс.Диске.
  25. Привет! Мы делаем с Totoro и Xom проект под названием GUI API. Этот API упрощает процесс рисования интерфейсов для своих программ в ОС. Больше никаких огромных функций в программе.Данный проект в разработке и практическое его использование в данное время не рекомендуется. Это что-то вроде paintutils для ОС. Писали в kobra.io. Посмотреть на это безобразие! http://pastebin.com/istmR52z Сайт там где пишем. Не спамить! https://ide.c9.io/moonlightowl/guiapi Честно скажем что Нео нам очень мешал. Он спамил в нашей комнате для программирования. Также Фингер подбадривал нас своим бредом в чате и, еще делал комментарии красивыми. Повторяюсь проект в разработке и пользоваться им сейчас настоятельно не рекомендуем. Но посмотреть на код можно. Критикуйте наш код ,особенно момент с рисованием линии от точки А до точки Б. А также радуйтесь нашим позитивным комментариями. Ну, вроде все! Отвечайте!
×
×
  • Создать...