Search in sources :

Example 1 with IElectricItemManager

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);
        }
    }
}
Also used : Item(net.minecraft.item.Item) ElectricItem(ic2.api.item.ElectricItem) ISpecialElectricItem(ic2.api.item.ISpecialElectricItem) IElectricItem(ic2.api.item.IElectricItem) IEnergizedItem(mekanism.api.energy.IEnergizedItem) IItemElectric(micdoodle8.mods.galacticraft.api.item.IItemElectric) ISpecialElectricItem(ic2.api.item.ISpecialElectricItem) IElectricItem(ic2.api.item.IElectricItem) IEnergizedItem(mekanism.api.energy.IEnergizedItem) IElectricItemManager(ic2.api.item.IElectricItemManager)

Aggregations

ElectricItem (ic2.api.item.ElectricItem)1 IElectricItem (ic2.api.item.IElectricItem)1 IElectricItemManager (ic2.api.item.IElectricItemManager)1 ISpecialElectricItem (ic2.api.item.ISpecialElectricItem)1 IEnergizedItem (mekanism.api.energy.IEnergizedItem)1 IItemElectric (micdoodle8.mods.galacticraft.api.item.IItemElectric)1 Item (net.minecraft.item.Item)1