private boolean canStartHandler() { if (!EnergyHelper.isEnergyHandler(inventory[1]) || augmentRepair || augmentWireless) { handler = null; hasEnergyHandler = false; return false; } return true; }
@Override public boolean isItemValid(ItemStack stack) { return EnergyHelper.isEnergyContainerItem(stack) || EnergyHelper.isEnergyHandler(stack); }
@Override public int getInfoMaxEnergyPerTick() { if (augmentWireless) { return getEnergyTransfer(level) / 2; } else if ((EnergyHelper.isEnergyContainerItem(inventory[1]) || EnergyHelper.isEnergyHandler(inventory[1])) && augmentThroughput) { return getEnergyTransfer(level); } else { return energyConfig.maxPower; } }
protected void updateAdjacentHandlers() { if (ServerHelper.isClientWorld(world)) { return; } TileEntity tile = BlockHelper.getAdjacentTileEntity(this, facing); if (EnergyHelper.isEnergyReceiverFromSide(tile, EnumFacing.VALUES[facing ^ 1])) { adjacentReceiver = (IEnergyReceiver) tile; adjacentHandler = false; } else if (EnergyHelper.isEnergyHandler(tile, EnumFacing.VALUES[facing ^ 1])) { adjacentReceiver = null; adjacentHandler = true; } else { adjacentReceiver = null; adjacentHandler = false; } cached = true; }
@Override public int getInfoEnergyPerTick() { if (!isActive) { return 0; } if (augmentWireless) { return getEnergyTransfer(level) / 2; } else if ((EnergyHelper.isEnergyContainerItem(inventory[1]) || EnergyHelper.isEnergyHandler(inventory[1])) && augmentThroughput) { return getEnergyTransfer(level); } else { return calcEnergy(); } }
} else if (EnergyHelper.isEnergyHandler(equipmentStack)) { IEnergyStorage handler = EnergyHelper.getEnergyHandler(equipmentStack); if (handler != null) {
} else if (EnergyHelper.isEnergyHandler(equipmentStack)) { IEnergyStorage handler = EnergyHelper.getEnergyHandler(equipmentStack); if (handler != null) {
protected void chargeEnergy() { if (!hasChargeSlot()) { return; } int chargeSlot = getChargeSlot(); if (EnergyHelper.isEnergyContainerItem(inventory[chargeSlot])) { int energyRequest = Math.min(energyStorage.getMaxReceive(), energyStorage.getMaxEnergyStored() - energyStorage.getEnergyStored()); energyStorage.receiveEnergy(((IEnergyContainerItem) inventory[chargeSlot].getItem()).extractEnergy(inventory[chargeSlot], energyRequest, false), false); if (inventory[chargeSlot].getCount() <= 0) { inventory[chargeSlot] = ItemStack.EMPTY; } } else if (EnergyHelper.isEnergyHandler(inventory[chargeSlot])) { int energyRequest = Math.min(energyStorage.getMaxReceive(), energyStorage.getMaxEnergyStored() - energyStorage.getEnergyStored()); energyStorage.receiveEnergy(inventory[chargeSlot].getCapability(CapabilityEnergy.ENERGY, null).extractEnergy(energyRequest, false), false); if (inventory[chargeSlot].getCount() <= 0) { inventory[chargeSlot] = ItemStack.EMPTY; } } }
@Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); inputTracker = nbt.getInteger(CoreProps.TRACK_IN); outputTracker = nbt.getInteger(CoreProps.TRACK_OUT); if (augmentRepair && inventory[1].isItemStackDamageable()) { hasRepairItem = true; } else if (EnergyHelper.isEnergyContainerItem(inventory[1])) { containerItem = (IEnergyContainerItem) inventory[1].getItem(); hasContainerItem = true; } else if (EnergyHelper.isEnergyHandler(inventory[1])) { handler = inventory[1].getCapability(CapabilityEnergy.ENERGY, null); hasEnergyHandler = true; } else if (inventory[1].isItemStackDamageable()) { hasRepairItem = true; /* * This seems weird to have twice but it's a catch for the case where the repair augment is removed * and the output slot is full and remains such until the chunk is unloaded. */ } tank.readFromNBT(nbt); }
@Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if (augmentWireless) { return false; } if (augmentRepair) { return slot != 0 || stack.isItemStackDamageable() || ChargerManager.recipeExists(stack); } if (slot != 0) { return true; } if (EnergyHelper.isEnergyContainerItem(stack)) { IEnergyContainerItem containerItem = (IEnergyContainerItem) stack.getItem(); return containerItem.getEnergyStored(stack) < containerItem.getMaxEnergyStored(stack); } if (EnergyHelper.isEnergyHandler(stack)) { IEnergyStorage containerItem = EnergyHelper.getEnergyHandler(stack); return containerItem.getEnergyStored() < containerItem.getMaxEnergyStored(); } return ChargerManager.recipeExists(stack); }
private void transferHandler() { if (hasEnergyHandler) { if (inventory[2].isEmpty()) { inventory[2] = ItemHelper.cloneStack(inventory[1], 1); inventory[1] = ItemStack.EMPTY; handler = null; hasEnergyHandler = false; } else { if (ItemHelper.itemsIdentical(inventory[1], inventory[2]) && inventory[1].getMaxStackSize() > 1 && inventory[2].getCount() + 1 <= inventory[2].getMaxStackSize()) { inventory[2].grow(1); inventory[1] = ItemStack.EMPTY; handler = null; hasEnergyHandler = false; } } } if (!hasEnergyHandler && EnergyHelper.isEnergyHandler(inventory[0]) && !augmentRepair) { inventory[1] = ItemHelper.cloneStack(inventory[0], 1); inventory[0].shrink(1); if (inventory[0].getCount() <= 0) { inventory[0] = ItemStack.EMPTY; } handler = inventory[1].getCapability(CapabilityEnergy.ENERGY, null); hasEnergyHandler = true; } }
return false; if (!hasEnergyHandler && EnergyHelper.isEnergyHandler(inventory[0])) { inventory[1] = ItemHelper.cloneStack(inventory[0], 1); inventory[0].shrink(1);