Лидеры
Популярный контент
Показан контент с высокой репутацией 10.05.2020 в Записи блога
-
1 балл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 - размер инвентаря
-
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 - мета блока
-
1 баллСейчас я покажу, как сделать это: На скрине выше — улучшенный 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. А это уже уязвимость. Но в сингле вещь незаменимая. Цитирую отзыв пользователя, пожелавшего остаться анонимным: Успехов вам в дезинсекции кода.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
