Помогите [Решено] Зарядка джетпаков из мода SimplyJetpack плагином.

LaoTheLizard

Старожил
Пользователь
Баллы
103
Этот мод полноценно функционирует только в комплекте с модами ThermalExpansion и CoFHCore, которые себе ставить я по ряду причин не хочу. Решил прикрутить к своему серверу без них, так как очень понравились идея и реализация.

Потратил несколько часов на приведение его в божеский вид.
Полностью исправил ошибки и баги русификации (пришлось даже один класс отредактировать InClassTranslator'ом).
Неработоспособность крафтов без недостающих модов реализовал в своем отдельном моде.
Немало повозился с конфигом - он, надо заметить, не безгеморройный.
Заказал перерисовку некоторых текстур, так как в комплекте идет смесь из 32- и 16-пиксельных.

Сейчас все работает, все предметы крафтятся.

Выглядит предмет так:
vsd0weyxKk.png

Вторая строчка показывает остаток энергии. Если он равен 000000, то джетпак полностью разряжен.

Полазил в коде мода и нашел блок, где вся эта хрень вписывается в предмет:
Java:
   public void addInformation(ItemStack itemStack, EntityPlayer player, List list, int energyStored) {
      list.add(StringUtils.getChargeText(this.tier == 9001, energyStored, this.energyCapacity));
      if(StringUtils.canShowDetails()) {
         list.add(StringUtils.getStateText(this.isOn(itemStack)));
         list.add(StringUtils.getHoverModeText(this.isHoverModeOn(itemStack)));
         int currentTickEnergy = this.isHoverModeOn(itemStack)?this.energyPerTickHover:this.energyPerTick;
         list.add(StringUtils.getEnergyUsageText(currentTickEnergy));
         list.add(StringUtils.getArmoredText(this.isArmored()));
         list.add(StringUtils.getParticlesText(this.getParticleType(itemStack)));
         list.add("§a" + StringUtils.translate("tooltip.jetpack.description.1"));
         list.add("§a" + StringUtils.translate("tooltip.jetpack.description.2"));
         if(this.hasArmoredVersion() && SJConfig.enableCraftingArmorPlating) {
            list.add(StringUtils.getArmorText(this.isArmored()));
            if(!this.isArmored()) {
               list.add(StringUtils.getRequiredArmorText(this.getPlatingMeta() - 120));
            }
         }
      } else {
         list.add(StringUtils.getShiftText());
      }

   }

Осталось понять, как плагином отредактировать в предмете строчку, которую редактирует в моде эта строка:
list.add(StringUtils.getEnergyUsageText(currentTickEnergy));

Есть мысли?
 
Последнее редактирование:
Разве там не ic2 api юзается для таких вещей?
 
Разве там не ic2 api юзается для таких вещей?
Я не знаю, что там юзается, но IC2 у меня нет. Я так понимаю, что в самом предмете (джетпаке) есть какой-то параметр (тег?), который меняется при заправке или расходе энергии. Я думаю, что плагином этот тег можно редактировать. Только вот как? Куда копать? NBT теги?
 
Я не знаю, что там юзается, но IC2 у меня нет. Я так понимаю, что в самом предмете (джетпаке) есть какой-то параметр (тег?), который меняется при заправке или расходе энергии. Я думаю, что плагином этот тег можно редактировать. Только вот как? Куда копать? NBT теги?
Ну тогда там есть свой апи с энергией. Я уже давно не смотрел индастрил моды.
 
Ну тогда там есть свой апи с энергией. Я уже давно не смотрел индастрил моды.
Вроде это не индастриал. Там мод CoFHCore. В нем есть API, который используют при написании модов. Но мне-то нужно написать плагин. Например, кликаю пустым джетпаком по камню - и джетпак снова полный. Плагин же нельзя написать, используя модовый API? Или можно?
Да, это действительно NBT-теги. Своим модом научился редактировать количество энергии безо всяких API (если код интересен - могу показать). Теперь мне нужно научиться редактировать нужный мне тег плагином.
Всё сделал, всё работает.

LnMARefLDt.png
 
Вроде это не индастриал. Там мод CoFHCore. В нем есть API, который используют при написании модов. Но мне-то нужно написать плагин. Например, кликаю пустым джетпаком по камню - и джетпак снова полный. Плагин же нельзя написать, используя модовый API? Или можно?
Да, это действительно NBT-теги. Своим модом научился редактировать количество энергии безо всяких API (если код интересен - могу показать). Теперь мне нужно научиться редактировать нужный мне тег плагином.
Всё сделал, всё работает.

LnMARefLDt.png
Та хоть понимаешь что такое api? Это набор паблик функций, которые можно юзать от куда угодно и чем угодно.
 
Назад
Верх