From 2510cfb2b6f58225e707c5374c04fef713c991bb Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Fri, 8 Aug 2014 12:30:37 +0200 Subject: [PATCH] Fix a derp in the energy transfer calculation for tools --- .../tconstruct/library/tools/ToolCore.java | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/src/main/java/tconstruct/library/tools/ToolCore.java b/src/main/java/tconstruct/library/tools/ToolCore.java index 0dea2fb32b8..cecf15e7a59 100644 --- a/src/main/java/tconstruct/library/tools/ToolCore.java +++ b/src/main/java/tconstruct/library/tools/ToolCore.java @@ -781,21 +781,6 @@ public Entity createEntity (World world, Entity location, ItemStack itemstack) } // TE support section -- from COFH core API reference section - public void setMaxTransfer (int maxTransfer) - { - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - } - - public void setMaxReceive (int maxReceive) - { - this.maxReceive = maxReceive; - } - - public void setMaxExtract (int maxExtract) - { - this.maxExtract = maxExtract; - } /* IEnergyContainerItem */ @Override @@ -805,17 +790,16 @@ public int receiveEnergy (ItemStack container, int maxReceive, boolean simulate) if (tags == null || !tags.hasKey("Energy")) return 0; int energy = tags.getInteger("Energy"); - int energyReceived = 0; - if(tags.hasKey("EnergyReceiveRate")) - energyReceived = tags.getInteger("EnergyReceiveRate"); - else - energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); + int energyReceived = tags.hasKey("EnergyReceiveRate") ? tags.getInteger("EnergyReceiveRate") : this.maxReceive; // backup value + int maxEnergy = tags.hasKey("EnergyMax") ? tags.getInteger("EnergyMax") : this.capacity; // backup value + + // calculate how much we can receive + energyReceived = Math.min(maxEnergy - energy, Math.min(energyReceived, maxReceive)); if (!simulate) { energy += energyReceived; tags.setInteger("Energy", energy); container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 2) / getMaxEnergyStored(container)); - } return energyReceived; } @@ -829,17 +813,15 @@ public int extractEnergy (ItemStack container, int maxExtract, boolean simulate) return 0; } int energy = tags.getInteger("Energy"); - int energyExtracted = 0; - if(tags.hasKey("EnergyExtractionRate")) - energyExtracted = tags.getInteger("EnergyExtractionRate"); - else - energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); // backup value + int energyExtracted = tags.hasKey("EnergyExtractionRate") ? tags.getInteger("EnergyExtractionRate") : this.maxExtract; // backup value + + // calculate how much we can extract + energyExtracted = Math.min(energy, Math.min(energyExtracted, maxExtract)); if (!simulate) { energy -= energyExtracted; tags.setInteger("Energy", energy); container.setItemDamage(1 + (getMaxEnergyStored(container) - energy) * (container.getMaxDamage() - 1) / getMaxEnergyStored(container)); - } return energyExtracted; }