Ic2 energy

Версия Minecraft
1.12.2

sk9zist :l

Исправился
981
18
157
Как уменьшать значение энергии нбт у предмета аккумулятора ic2 1.12.2 (а он вообще в нбт записан у него?)
Может просто if(player.enventory instanceof EnergyAccumulator)
{
Stack stack = player.inventory.getItem();
stack.getNbtTagCompound.getInteger("energy") -= 1;
}
Сработает или нужно подругому? Или название нбт нето?

Ну и это каждый тик где-то в эвенте
Если что код нерабочий, а еще я забыл как получать нбт когда писал поэтому просто не замечайте
 

timaxa007

Модератор
5,831
409
672
Сработает или нужно подругому?
Нет, не сработает. Типа:
stack.getNbtTagCompound.setInteger("energy", stack.getNbtTagCompound.getInteger("energy") - 1);
И ещё условие hasTagCompound типа того.
Или название нбт нето?
Разве в API нету метода который-бы работал с этой энергией?
 

sk9zist :l

Исправился
981
18
157

timaxa007

Модератор
5,831
409
672
Если знать где он находиться, но если действовать наугад, то ни чего не получиться.
Бывает что NBT в ListNBT, а его в NBT предмета. И не всегда могут хранить под одним названием. Может "Energy" или "ENERGY", названия разные бывают, может он под названием единицы измерения IC2.
У меня вообще подназванием EEC (ElectricEnegyCurrent)
 

sk9zist :l

Исправился
981
18
157
Если знать где он находиться
В том то и дело что незнаю, в похожей теме тоже про него было, но так и не сказали где его взять

По-моему лучше убрать Electric а Energy и Current поменять местами но наверное уже поздно
 

timaxa007

Модератор
5,831
409
672
но так и не сказали где его взять
Java:
ItemStack charged = new ItemStack(this, 1);
int tier = getTier(charged);
ElectricItem.manager.charge(charged, 0.0D, tier, true, false);
0.0D - это текущий заряд.
А так не знаю, что надо делать.
наверное уже поздно
Нет, не поздно учитывая что у только один предмет работает. Но пока не собираюсь менять.
---
Java:
ElectricItem.manager.discharge(stack, charge, tier, true, false, false);
Это для разрядки используется.
 
Сверху