Example usage for net.minecraftforge.energy IEnergyStorage getMaxEnergyStored

List of usage examples for net.minecraftforge.energy IEnergyStorage getMaxEnergyStored

Introduction

In this page you can find the example usage for net.minecraftforge.energy IEnergyStorage getMaxEnergyStored.

Prototype

int getMaxEnergyStored();

Source Link

Document

Returns the maximum amount of energy that can be stored.

Usage

From source file:com.buuz135.industrial.item.addon.EnergyFieldAddon.java

License:Open Source License

@Override
public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip,
        ITooltipFlag flagIn) {//www.ja v  a 2  s  .co m
    super.addInformation(stack, worldIn, tooltip, flagIn);
    if (stack.hasCapability(CapabilityEnergy.ENERGY, null)) {
        IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null);
        tooltip.add(new TextComponentTranslation("text.industrialforegoing.tooltip.energy_field_charge")
                .getUnformattedComponentText() + " " + new DecimalFormat().format(storage.getEnergyStored())
                + " / " + new DecimalFormat().format(storage.getMaxEnergyStored()));
        if (getLinkedBlockPos(stack) != null) {
            BlockPos pos = getLinkedBlockPos(stack);
            tooltip.add(new TextComponentTranslation("text.industrialforegoing.tooltip.energy_field_linked")
                    .getUnformattedComponentText() + " x=" + pos.getX() + " y=" + pos.getY() + " z="
                    + pos.getZ());
        } else {
            tooltip.add(
                    new TextComponentTranslation("text.industrialforegoing.tooltip.energy_field_right_click")
                            .getUnformattedComponentText());
        }
    }
}

From source file:com.buuz135.industrial.item.addon.EnergyFieldAddon.java

License:Open Source License

@Override
public double getDurabilityForDisplay(ItemStack stack) {
    if (stack.hasCapability(CapabilityEnergy.ENERGY, null)) {
        IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null);
        if (storage != null)
            return (storage.getMaxEnergyStored() - storage.getEnergyStored())
                    / (double) storage.getMaxEnergyStored();
    }//  w w w .ja v a 2s  .  c om
    return 0;
}

From source file:com.buuz135.industrial.tile.CustomElectricMachine.java

License:Open Source License

@Override
public void protectedUpdate() {
    super.protectedUpdate();
    if (this.world.isRemote)
        return;//from   ww w .j a  va  2 s. c o m
    if (world.getTotalWorldTime() % 2 == 0 && hasAddon(EnergyFieldAddon.class)) {
        ItemStack addon = getAddonStack(EnergyFieldAddon.class);
        if (addon.hasCapability(CapabilityEnergy.ENERGY, null)) {
            IEnergyStorage storage = addon.getCapability(CapabilityEnergy.ENERGY, null);
            storage.extractEnergy((int) this.getEnergyStorage().givePower(storage.extractEnergy(512, true)),
                    false);
            BlockPos pos = ItemRegistry.energyFieldAddon.getLinkedBlockPos(addon);
            if (this.world.getBlockState(pos).getBlock() instanceof EnergyFieldProviderBlock
                    && this.world.isAreaLoaded(pos, pos)) {
                EnergyFieldProviderTile tile = (EnergyFieldProviderTile) this.world.getTileEntity(pos);
                if (tile.getWorkingArea().grow(1)
                        .contains(new Vec3d(this.pos.getX(), this.pos.getY(), this.pos.getZ()))) {
                    float pull = tile.consumeWorkEnergy(
                            Math.min(storage.getMaxEnergyStored() - storage.getEnergyStored(), 1000));
                    storage.receiveEnergy((int) pull, false);
                }
            }
            this.forceSync();
        }
    }
    if (world.getTotalWorldTime() % 10 == 0 && this.getAddonItems() != null) {
        workTransferAddon(this, this.getAddonItems());
    }
}

From source file:com.elytradev.thermionics.tileentity.TileEntityBatteryCreative.java

License:Open Source License

@Override
public void update() {
    this.energyStorage.tick();
    IBlockState cur = world.getBlockState(pos);
    EnumFacing facing = cur.getValue(BlockBattery.FACING);
    IEnergyStorage target = RFTransport.getStorage(world, pos.offset(facing), facing.getOpposite());
    if (target.canReceive()) {
        int toPush = Math.min(energyStorage.getEnergyStored(), target.getMaxEnergyStored());
        int received = target.receiveEnergy(toPush, false);
        if (received > 0)
            energyStorage.extractEnergy(received, false);
        energyStorage.receiveEnergy(energyStorage.getMaxEnergyStored(), false);
    }//from  w w w  . java2s  .c o  m
}

From source file:com.elytradev.thermionics.transport.RFTransport.java

License:Open Source License

public static void diffuse(World world, BlockPos pos, IEnergyStorage host) {
    ArrayList<IEnergyStorage> consumers = getAdjacentStorage(world, pos);
    reorder(consumers); //We want to sample them in random order
    for (IEnergyStorage consumer : consumers) {
        //int totalEnergy = host.getEnergyStored() + consumer.getEnergyStored();
        //float energyRatio = host.getMaxEnergyStored() / (float)consumer.getMaxEnergyStored();
        float sourceLevel = host.getEnergyStored() / (float) host.getMaxEnergyStored();
        float destLevel = consumer.getEnergyStored() / (float) consumer.getMaxEnergyStored();
        if (sourceLevel > destLevel) {
            //Figure out how many quanta to transfer
            //int desiredSource = (int)(totalEnergy*energyRatio);
            //int desiredDest = (int)(totalEnergy/energyRatio);
            /*/*w w  w .  j a  va 2 s .com*/
             * Example: 2200 source, 1700 dest, capacity for each is 4000.
             * 
             *   totalEnergy: 3900
             *   energyRatio: 1.0f
             *   sourceLevel: 0.55f
             *   destLevel: 0.425f
             *   availableQuanta: 500 / 2 - 1 = 249
             * 
             */

            /*
             * Transmission data:
             * 0 blocks: 775.0
             * 1 block : 393.6
             * 2 blocks: 260.8
             * 3 blocks: 196.6
             * 4 blocks: 157.8
             * 5 blocks: 131.8
             */

            int availableQuanta = ((int) ((sourceLevel - destLevel) * host.getMaxEnergyStored()) / 2); //trunc leaves fractional power differences where they are
            if (availableQuanta <= 0)
                continue;
            //StringBuilder debugString = new StringBuilder("RFTransfer: ");
            //debugString.append(host.getEnergyStored());
            //debugString.append("("); debugString.append((int)(sourceLevel*100)); debugString.append("%) -> ");
            //debugString.append(consumer.getEnergyStored());
            //debugString.append("("); debugString.append((int)(destLevel*100)); debugString.append("%) :");

            //debugString.append(" req="); debugString.append(availableQuanta);
            int transferred = consumer.receiveEnergy(availableQuanta, true);
            if (transferred > 0)
                transferred = host.extractEnergy(transferred, false);
            //debugString.append(" rec="); debugString.append(transferred);
            //System.out.println(debugString.toString());
            consumer.receiveEnergy(transferred, false);
        }
    }
}

From source file:com.lothrazar.cyclicmagic.block.screentarget.TileEntityScreenTarget.java

License:Open Source License

private String getEnergyString(TileEntity te, BlockPosDim target) {
    String energyStr;/*from   w  w w .j  ava2 s  .  c  om*/
    EnumFacing side = target.getSide() == null ? EnumFacing.UP : target.getSide();
    if (te.hasCapability(CapabilityEnergy.ENERGY, side)) {
        IEnergyStorage energy = te.getCapability(CapabilityEnergy.ENERGY, side);
        //therefore   
        energyStr = this.formatQuantity(energy.getEnergyStored(), energy.getMaxEnergyStored());
    } else {
        energyStr = "--";
    }
    return energyStr;
}

From source file:com.lothrazar.cyclicmagic.gui.container.GuiBaseContainer.java

License:Open Source License

private String getFuelAmtDisplay() {
    IEnergyStorage energy = tile.getCapability(CapabilityEnergy.ENERGY, EnumFacing.UP);
    return energy.getEnergyStored() + "/" + energy.getMaxEnergyStored();
}

From source file:com.lothrazar.cyclicmagic.item.cannon.ItemProjectileCannon.java

License:Open Source License

@Override
public double getDurabilityForDisplay(ItemStack item) {
    IEnergyStorage storage = item.getCapability(CapabilityEnergy.ENERGY, null);
    double energy = storage.getEnergyStored();
    return 1 - energy / storage.getMaxEnergyStored();
}

From source file:com.lothrazar.cyclicmagic.item.cannon.ItemProjectileCannon.java

License:Open Source License

@SideOnly(Side.CLIENT)
@Override//w w  w . ja  va  2  s . c  o  m
public void addInformation(ItemStack item, World player, List<String> tooltip,
        net.minecraft.client.util.ITooltipFlag advanced) {
    IEnergyStorage storage = item.getCapability(CapabilityEnergy.ENERGY, null);
    tooltip.add(storage.getEnergyStored() + "/" + storage.getMaxEnergyStored());
    super.addInformation(item, player, tooltip, advanced);
}

From source file:com.teambr.bookshelf.util.EnergyUtils.java

License:Creative Commons License

/**
 * Adds the energy storage info/*from   w w  w  . j a  va 2  s .  c  o m*/
 * @param energyStorage  The energy storage object
 * @param toolTip        The list to add to
 * @param insert         The max insert, -1 to skip
 * @param extract        The max extract, -1 to skip
 */
@SideOnly(Side.CLIENT)
public static void addToolTipInfo(IEnergyStorage energyStorage, List<String> toolTip, int insert, int extract) {
    toolTip.add(ChatFormatting.GOLD + ClientUtils.translate("bookshelfapi.energy.energyStored"));
    toolTip.add("  " + EnergyUtils.getEnergyDisplay(energyStorage.getEnergyStored()) + " / "
            + EnergyUtils.getEnergyDisplay(energyStorage.getMaxEnergyStored()));
    if (!ClientUtils.isShiftPressed()) {
        toolTip.add("");
        toolTip.add(ChatFormatting.GRAY + "" + ChatFormatting.ITALIC
                + ClientUtils.translate("bookshelfapi.text.shiftInfo"));
    } else {
        if (insert > -1) {
            toolTip.add("");
            toolTip.add(ChatFormatting.GREEN + ClientUtils.translate("bookshelfapi.energy.energyIn"));
            toolTip.add("  " + EnergyUtils.getEnergyDisplay(insert));
        }
        if (extract > -1) {
            toolTip.add(ChatFormatting.DARK_RED + ClientUtils.translate("bookshelfapi.energy.energyOut"));
            toolTip.add("  " + EnergyUtils.getEnergyDisplay(extract));
        }
    }
}