Package cofh.api.energy

Examples of cofh.api.energy.IEnergyContainerItem


            }
          }
          else if(MekanismUtils.useRF() && inv.getStackInSlot(54).getItem() instanceof IEnergyContainerItem)
          {
            ItemStack itemStack = inv.getStackInSlot(54);
            IEnergyContainerItem item = (IEnergyContainerItem)inv.getStackInSlot(54).getItem();

            int itemEnergy = (int)Math.round(Math.min(Math.sqrt(item.getMaxEnergyStored(itemStack)), item.getEnergyStored(itemStack)));
            int toTransfer = (int)Math.round(Math.min(itemEnergy, ((getMaxEnergy(itemstack) - getEnergy(itemstack))*Mekanism.TO_TE)));

            setEnergy(itemstack, getEnergy(itemstack) + (item.extractEnergy(itemStack, toTransfer, false)*Mekanism.FROM_TE));
          }
          else if(inv.getStackInSlot(54).getItem() == Items.redstone && getEnergy(itemstack)+Mekanism.ENERGY_PER_REDSTONE <= getMaxEnergy(itemstack))
          {
            setEnergy(itemstack, getEnergy(itemstack) + Mekanism.ENERGY_PER_REDSTONE);
            inv.getStackInSlot(54).stackSize--;
View Full Code Here


        }
      }
      else if(MekanismUtils.useRF() && storer.inventory[slotID].getItem() instanceof IEnergyContainerItem)
      {
        ItemStack itemStack = storer.inventory[slotID];
        IEnergyContainerItem item = (IEnergyContainerItem)storer.inventory[slotID].getItem();

        int itemEnergy = (int)Math.round(Math.min(Math.sqrt(item.getMaxEnergyStored(itemStack)), item.getEnergyStored(itemStack)));
        int toTransfer = (int)Math.round(Math.min(itemEnergy, ((storer.getMaxEnergy() - storer.getEnergy())*Mekanism.TO_TE)));

        storer.setEnergy(storer.getEnergy() + (item.extractEnergy(itemStack, toTransfer, false)*Mekanism.FROM_TE));
      }
      else if(storer.inventory[slotID].getItem() == Items.redstone && storer.getEnergy()+Mekanism.ENERGY_PER_REDSTONE <= storer.getMaxEnergy())
      {
        storer.setEnergy(storer.getEnergy() + Mekanism.ENERGY_PER_REDSTONE);
        storer.inventory[slotID].stackSize--;
View Full Code Here

                continue;
            // check if item gives energy
            if (!(slot.getItem() instanceof IEnergyContainerItem))
                continue;

            IEnergyContainerItem fluxItem = (IEnergyContainerItem) slot.getItem();

            // mDiyo EATS your power
            while (fluxItem.extractEnergy(slot, missing, true) > 0)
            {
                missing -= fluxItem.extractEnergy(slot, missing, false);
            }
        }
        // update energy
        tags.setInteger("Energy", max - missing);
    }
View Full Code Here

                // we're guaranteed to only find one battery because more are prevented above
                inputBattery = stack;
            }

        // get the energy interface
        IEnergyContainerItem energyContainer = (IEnergyContainerItem) inputBattery.getItem();

        // set the charge values
        int charge = energyContainer.getEnergyStored(inputBattery);

        // add already present charge in the tool
        if (tags.hasKey("Energy"))
            charge += tags.getInteger("Energy");
        int maxCharge = energyContainer.getMaxEnergyStored(inputBattery);

        ItemStack subject42 = inputBattery.copy();

        int progress = 0, change = 1; // prevent endless loops with creative battery, blah
        // fill the battery full
        while (progress < maxCharge && change > 0)
        {
            change = energyContainer.receiveEnergy(subject42, 100000, false);
            progress += change;
        }
        // get the maximum extraction rate
        int maxExtract = energyContainer.extractEnergy(subject42, Integer.MAX_VALUE, true);

        subject42 = inputBattery.copy();

        // completely empty the battery
        progress = 0;
        change = 1;
        while (progress < maxCharge && change > 0)
        {
            change = energyContainer.extractEnergy(subject42, 100000, false);
            progress += change;
        }
        int maxReceive = energyContainer.receiveEnergy(subject42, Integer.MAX_VALUE, true);

        // make sure we don't overcharge
        charge = Math.min(charge, maxCharge);

        tags.setInteger("Energy", charge);
View Full Code Here

TOP

Related Classes of cofh.api.energy.IEnergyContainerItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.