use of ic2.api.item.IElectricItemManager in project Galacticraft by micdoodle8.
the class TileBaseUniversalElectricalSource method recharge.
/**
* Recharges electric item.
*/
public void recharge(ItemStack itemStack) {
if (itemStack != null && itemStack.stackSize == 1) {
Item item = itemStack.getItem();
float maxExtractSave = this.storage.getMaxExtract();
if (this.tierGC > 1) {
this.storage.setMaxExtract(maxExtractSave * 2.5F);
}
float energyToCharge = this.storage.extractEnergyGC(this.storage.getMaxExtract(), true);
if (item instanceof IItemElectric) {
this.storage.extractEnergyGC(ElectricItemHelper.chargeItem(itemStack, energyToCharge), false);
} else // }
if (EnergyConfigHandler.isMekanismLoaded() && item instanceof IEnergizedItem && ((IEnergizedItem) item).canReceive(itemStack)) {
this.storage.extractEnergyGC((float) EnergizedItemManager.charge(itemStack, energyToCharge * EnergyConfigHandler.TO_MEKANISM_RATIO) / EnergyConfigHandler.TO_MEKANISM_RATIO, false);
} else if (EnergyConfigHandler.isIndustrialCraft2Loaded()) {
if (item instanceof ISpecialElectricItem) {
ISpecialElectricItem specialElectricItem = (ISpecialElectricItem) item;
IElectricItemManager manager = specialElectricItem.getManager(itemStack);
double result = manager.charge(itemStack, (double) (energyToCharge * EnergyConfigHandler.TO_IC2_RATIO), this.tierGC + 1, false, false);
float energy = (float) result / EnergyConfigHandler.TO_IC2_RATIO;
this.storage.extractEnergyGC(energy, false);
} else if (item instanceof IElectricItem) {
double result = ElectricItem.manager.charge(itemStack, (double) (energyToCharge * EnergyConfigHandler.TO_IC2_RATIO), this.tierGC + 1, false, false);
float energy = (float) result / EnergyConfigHandler.TO_IC2_RATIO;
this.storage.extractEnergyGC(energy, false);
}
}
if (this.tierGC > 1) {
this.storage.setMaxExtract(maxExtractSave);
}
}
}
Aggregations