@@ -128,23 +128,35 @@ public EnumRarity getRarity(ItemStack stack) {
128128 return EnumRarity .epic ;
129129 }
130130
131- public void chargeItem (ItemStack stack , ItemStack ring ) {
131+ public boolean chargeItem (ItemStack stack , ItemStack ring ) {
132132 if (stack == null )
133- return ;
133+ return false ;
134134 if (!(stack .getItem () instanceof IElectricItem ))
135- return ;
135+ return false ;
136136 IElectricItem item = (IElectricItem ) stack .getItem ();
137137 if (!ElectricItem .manager .canUse (ring , item .getTransferLimit (stack )))
138- return ;
139- ElectricItem .manager .discharge (ring , ElectricItem .manager .charge (stack ,
140- item .getTransferLimit (stack ), 4 , false , false ), 4 , true , false );
138+ return false ;
139+ int chargeSt = ElectricItem .manager .charge (stack ,
140+ item .getTransferLimit (stack ), 4 , false , false );
141+ int dischSt = ElectricItem .manager .discharge (ring , chargeSt , 4 , true , false );
142+ return chargeSt > 0 && dischSt > 0 ;
141143 }
142144
143145 public void onUpdate (ItemStack itemStack , World world , Entity par3Entity ,
144146 int par4 , boolean par5 ) {
145147 if (!(par3Entity instanceof EntityPlayer ))
146148 return ;
147149 EntityPlayer player = (EntityPlayer ) par3Entity ;
150+ InventoryPlayer inv = player .inventory ;
151+ boolean didSomething = false ;
152+ for (ItemStack device : inv .armorInventory )
153+ if (chargeItem (device , itemStack ))
154+ didSomething = true ;
155+ if (!didSomething ) {
156+ for (ItemStack device : inv .mainInventory )
157+ if (chargeItem (device , itemStack ))
158+ didSomething = true ;
159+ }
148160 ArmorFunctions .extinguish (player , world );
149161 ArmorFunctions .fly (ItemArmorLevitationBoots .FLYING_ENERGY_PER_TICK ,
150162 player , itemStack , world );
0 commit comments