diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java | 7 | ||||
-rw-r--r-- | src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 45 |
2 files changed, 35 insertions, 17 deletions
diff --git a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java index 7a7927cfd1..0530ea43c7 100644 --- a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java +++ b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java @@ -18,7 +18,12 @@ public class IB_LapotronicEnergyUnit extends ItemBlock { public int getMetadata(int meta) { return meta; } - + + @Override + public boolean getHasSubtypes() { + return true; + } + @Override public String getUnlocalizedName(ItemStack stack) { return super.getUnlocalizedName() + "." + stack.getItemDamage(); diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index d24baeeef6..00c5f267f0 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -16,7 +16,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynam import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; -import kekztech.KekzCore; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -381,9 +380,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch == null || eHatch.getBaseMetaTileEntity().isInvalidTileEntity()) { continue; } - final BigInteger remcapActual = capacity.subtract(stored); - final BigInteger recampLimited = (MAX_LONG.compareTo(remcapActual) > 0) ? remcapActual : MAX_LONG; - final long power = Math.min(eHatch.maxEUInput() * eHatch.maxAmperesIn(), recampLimited.longValue()); + final long power = getPowerToDraw(eHatch.maxEUInput() * eHatch.maxAmperesIn()); if(power <= eHatch.getEUVar()) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); @@ -394,8 +391,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eDynamo == null || eDynamo.getBaseMetaTileEntity().isInvalidTileEntity()){ continue; } - final BigInteger remStoredLimited = (MAX_LONG.compareTo(stored) > 0) ? stored : MAX_LONG; - final long power = Math.min(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut(), remStoredLimited.longValue()); + final long power = getPowerToPush(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut()); if(eDynamo.getEUVar() <= eDynamo.maxEUStore() - power) { eDynamo.setEUVar(eDynamo.getEUVar() + power); stored = stored.subtract(BigInteger.valueOf(power)); @@ -406,9 +402,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch == null || eHatch.getBaseMetaTileEntity().isInvalidTileEntity()) { continue; } - final BigInteger remcapActual = capacity.subtract(stored); - final BigInteger recampLimited = (MAX_LONG.compareTo(remcapActual) > 0) ? remcapActual : MAX_LONG; - final long power = Math.min(eHatch.maxEUInput() * eHatch.maxAmperesIn(), recampLimited.longValue()); + final long power = getPowerToDraw(eHatch.maxEUInput() * eHatch.maxAmperesIn()); if(power <= eHatch.getEUVar()) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); @@ -419,8 +413,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eDynamo == null || eDynamo.getBaseMetaTileEntity().isInvalidTileEntity()){ continue; } - final BigInteger remStoredLimited = (MAX_LONG.compareTo(stored) > 0) ? stored : MAX_LONG; - final long power = Math.min(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut(), remStoredLimited.longValue()); + final long power = getPowerToPush(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut()); if(eDynamo.getEUVar() <= eDynamo.maxEUStore() - power) { eDynamo.setEUVar(eDynamo.getEUVar() + power); stored = stored.subtract(BigInteger.valueOf(power)); @@ -431,10 +424,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch == null || eHatch.getBaseMetaTileEntity().isInvalidTileEntity()) { continue; } - final BigInteger remcapActual = capacity.subtract(stored); - final BigInteger recampLimited = (MAX_LONG.compareTo(remcapActual) > 0) ? remcapActual : MAX_LONG; final long ttLaserWattage = eHatch.maxEUInput() * eHatch.Amperes - (eHatch.Amperes / 20); - final long power = Math.min(ttLaserWattage, recampLimited.longValue()); + final long power = getPowerToDraw(ttLaserWattage); if(power <= eHatch.getEUVar()) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); @@ -445,9 +436,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eDynamo == null || eDynamo.getBaseMetaTileEntity().isInvalidTileEntity()){ continue; } - final BigInteger remStoredLimited = (MAX_LONG.compareTo(stored) > 0) ? stored : MAX_LONG; final long ttLaserWattage = eDynamo.maxEUOutput() * eDynamo.Amperes - (eDynamo.Amperes / 20); - final long power = Math.min(ttLaserWattage, remStoredLimited.longValue()); + final long power = getPowerToPush(ttLaserWattage); if(eDynamo.getEUVar() <= eDynamo.maxEUStore() - power) { eDynamo.setEUVar(eDynamo.getEUVar() + power); stored = stored.subtract(BigInteger.valueOf(power)); @@ -460,6 +450,29 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock return true; } + /** + * Calculate how much EU to draw from an Energy Hatch + * @param hatchWatts + * Hatch amperage * voltage + * @return EU amount + */ + private long getPowerToDraw(long hatchWatts){ + final BigInteger remcapActual = capacity.subtract(stored); + final BigInteger recampLimited = (MAX_LONG.compareTo(remcapActual) > 0) ? remcapActual : MAX_LONG; + return Math.min(hatchWatts, recampLimited.longValue()); + } + + /** + * Calculate how much EU to push into a Dynamo Hatch + * @param hatchWatts + * Hatch amperage * voltage + * @return EU amount + */ + private long getPowerToPush(long hatchWatts){ + final BigInteger remStoredLimited = (MAX_LONG.compareTo(stored) > 0) ? stored : MAX_LONG; + return Math.min(hatchWatts, remStoredLimited.longValue()); + } + @Override public String[] getInfoData() { final ArrayList<String> ll = new ArrayList<>(); |