diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index 5e213673e81..1e13f91f1fe 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -867,7 +867,7 @@ public static void init() { endPos = GregTechAPI.isHighTier() ? DIODES.length - 1 : Math.min(DIODES.length - 1, GTValues.UV + 2); for (int i = 0; i < endPos; i++) { String diodeId = "diode." + GTValues.VN[i].toLowerCase(); - MetaTileEntityDiode diode = new MetaTileEntityDiode(gregtechId(diodeId), i); + MetaTileEntityDiode diode = new MetaTileEntityDiode(gregtechId(diodeId), i, 16); DIODES[i] = registerMetaTileEntity(1300 + i, diode); } diff --git a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java index c19b1797f96..8512fbb181f 100644 --- a/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java +++ b/src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityDiode.java @@ -50,17 +50,22 @@ public class MetaTileEntityDiode extends MetaTileEntityMultiblockPart private static final String AMP_NBT_KEY = "amp_mode"; private int amps; private boolean isWorkingEnabled; + private final int maxAmps; - public MetaTileEntityDiode(ResourceLocation metaTileEntityId, int tier) { + /** + * @param maxAmps Must be power of 2 + */ + public MetaTileEntityDiode(ResourceLocation metaTileEntityId, int tier, int maxAmps) { super(metaTileEntityId, tier); amps = 1; reinitializeEnergyContainer(); isWorkingEnabled = true; + this.maxAmps = maxAmps; } @Override public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) { - return new MetaTileEntityDiode(metaTileEntityId, getTier()); + return new MetaTileEntityDiode(metaTileEntityId, getTier(), getMaxAmperage()); } @Override @@ -115,14 +120,14 @@ private void setAmpMode() { } } - /** Change this value (or override) to make the Diode able to handle more amps. Must be a power of 2 */ protected int getMaxAmperage() { - return 16; + return maxAmps; } protected void reinitializeEnergyContainer() { long tierVoltage = GTValues.V[getTier()]; - this.energyContainer = new EnergyContainerHandler(this, tierVoltage * 16, tierVoltage, amps, tierVoltage, amps); + this.energyContainer = new EnergyContainerHandler(this, tierVoltage * getMaxAmperage(), tierVoltage, amps, + tierVoltage, amps); ((EnergyContainerHandler) this.energyContainer).setSideInputCondition(s -> s != getFrontFacing()); ((EnergyContainerHandler) this.energyContainer).setSideOutputCondition(s -> s == getFrontFacing()); }