diff options
author | miozune <miozune@gmail.com> | 2022-07-15 14:34:19 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-15 06:34:19 +0100 |
commit | c0eb617fa5c146b7a222c5461faf14394508cf4b (patch) | |
tree | e25d23490122b5c663fd4e2791a81704c0183b00 /src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java | |
parent | 36301feacf5a33ded24d338ae39985da6080d2bb (diff) | |
download | GT5-Unofficial-c0eb617fa5c146b7a222c5461faf14394508cf4b.tar.gz GT5-Unofficial-c0eb617fa5c146b7a222c5461faf14394508cf4b.tar.bz2 GT5-Unofficial-c0eb617fa5c146b7a222c5461faf14394508cf4b.zip |
Expand item limit for Neutron Activator & Add back Low Quality Naquadria Sulphate to the outputs from Concentrated Enriched-Naquadah Sludge (#53)
* Expand item limit for Neutron Activator & Add back Low Quality Naquadria Sulphate to the outputs from Concentrated Enriched-Naquadah Sludge
* updateBuildScript & spotlessApply
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java')
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java | 220 |
1 files changed, 112 insertions, 108 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java index 7841770aa6..b1d4518e27 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -1,5 +1,10 @@ package goodgenerator.blocks.tileEntity; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; +import static goodgenerator.main.GG_Config_Loader.*; +import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; +import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; + import com.github.bartimaeusnek.bartworks.util.Pair; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; @@ -26,23 +31,17 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; -import static goodgenerator.main.GG_Config_Loader.*; -import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; - -public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM implements TecTechEnabledMulti, IConstructable { +public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM + implements TecTechEnabledMulti, IConstructable { protected IStructureDefinition<MultiNqGenerator> multiDefinition = null; protected long leftEnergy = 0; @@ -61,18 +60,16 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM new Pair<>(MyMaterial.atomicSeparationCatalyst.getMolten(20), ExcitedLiquidCoe[0]), new Pair<>(Materials.Naquadah.getMolten(20L), ExcitedLiquidCoe[1]), new Pair<>(Materials.Uranium235.getMolten(180L), ExcitedLiquidCoe[2]), - new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[3]) - ); + new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[3])); coolant = Arrays.asList( new Pair<>(FluidRegistry.getFluidStack("cryotheum", 1000), CoolantEfficiency[0]), new Pair<>(Materials.SuperCoolant.getFluid(1000L), CoolantEfficiency[1]), - new Pair<>(FluidRegistry.getFluidStack("ic2coolant",1000), CoolantEfficiency[2]) - ); + new Pair<>(FluidRegistry.getFluidStack("ic2coolant", 1000), CoolantEfficiency[2])); } @Override public void construct(ItemStack itemStack, boolean hintsOnly) { - structureBuild_EM(mName, 3,7,0, itemStack, hintsOnly); + structureBuild_EM(mName, 3, 7, 0, itemStack, hintsOnly); } @Override @@ -80,7 +77,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM return DescTextLocalization.addText("MultiNqGenerator.hint", 8); } - public final boolean addToGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex){ + public final boolean addToGeneratorList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { if (aTileEntity == null) { return false; } else { @@ -89,18 +86,18 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM return false; } else { if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { - ((GT_MetaTileEntity_Hatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input)aMetaTileEntity); + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output)aMetaTileEntity); + return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo)aMetaTileEntity); + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance)aMetaTileEntity); + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { - return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti)aMetaTileEntity); + return this.eDynamoMulti.add((GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity); } else { return false; } @@ -110,52 +107,28 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override public IStructureDefinition<MultiNqGenerator> getStructure_EM() { - if(multiDefinition == null) { - multiDefinition = StructureDefinition - .<MultiNqGenerator>builder() - .addShape(mName, - transpose(new String[][]{ - {"AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA","AAAAAAA"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"N N"," "," CCC "," CPC "," CCC "," ","N N"}, - {"AAAAAAA","A A","A CCC A","A CPC A","A CCC A","A A","AAAAAAA"}, - {"ANNNNNA","N N","N CCC N","N CPC N","N CCC N","N N","ANNNNNA"}, - {"XXX~XXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX"}, - }) - ).addElement( + if (multiDefinition == null) { + multiDefinition = StructureDefinition.<MultiNqGenerator>builder() + .addShape(mName, transpose(new String[][] { + {"AAAAAAA", "AAAAAAA", "AAAAAAA", "AAAAAAA", "AAAAAAA", "AAAAAAA", "AAAAAAA"}, + {"N N", " ", " CCC ", " CPC ", " CCC ", " ", "N N"}, + {"N N", " ", " CCC ", " CPC ", " CCC ", " ", "N N"}, + {"N N", " ", " CCC ", " CPC ", " CCC ", " ", "N N"}, + {"N N", " ", " CCC ", " CPC ", " CCC ", " ", "N N"}, + {"AAAAAAA", "A A", "A CCC A", "A CPC A", "A CCC A", "A A", "AAAAAAA"}, + {"ANNNNNA", "N N", "N CCC N", "N CPC N", "N CCC N", "N N", "ANNNNNA"}, + {"XXX~XXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX"}, + })) + .addElement( 'X', ofChain( ofHatchAdder( - MultiNqGenerator::addToGeneratorList, 44, - GregTech_API.sBlockCasings3, 12 - ), - ofBlock( - GregTech_API.sBlockCasings3, 12 - ) - ) - ).addElement( - 'A', - ofBlock( - GregTech_API.sBlockCasings3, 12 - ) - ).addElement( - 'N', - ofBlock( - Loaders.radiationProtectionSteelFrame, 0 - ) - ).addElement( - 'C', - ofBlock( - Loaders.MAR_Casing, 0 - ) - ).addElement( - 'P', - ofBlock( - GregTech_API.sBlockCasings2,15 - ) - ) + MultiNqGenerator::addToGeneratorList, 44, GregTech_API.sBlockCasings3, 12), + ofBlock(GregTech_API.sBlockCasings3, 12))) + .addElement('A', ofBlock(GregTech_API.sBlockCasings3, 12)) + .addElement('N', ofBlock(Loaders.radiationProtectionSteelFrame, 0)) + .addElement('C', ofBlock(Loaders.MAR_Casing, 0)) + .addElement('P', ofBlock(GregTech_API.sBlockCasings2, 15)) .build(); } return multiDefinition; @@ -166,7 +139,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } public MultiNqGenerator(int id, String name, String nameRegional) { - super(id,name,nameRegional); + super(id, name, nameRegional); } @Override @@ -175,22 +148,23 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } @Override - public void loadNBTData(NBTTagCompound aNBT){ + public void loadNBTData(NBTTagCompound aNBT) { this.times = aNBT.getInteger("mTimes"); this.leftEnergy = aNBT.getLong("mLeftEnergy"); this.basicOutput = aNBT.getInteger("mbasicOutput"); if (FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")) != null) - this.lockedFluid = new FluidStack(FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), aNBT.getInteger("mLockedFluidAmount")); + this.lockedFluid = new FluidStack( + FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), aNBT.getInteger("mLockedFluidAmount")); else this.lockedFluid = null; super.loadNBTData(aNBT); } @Override - public void saveNBTData(NBTTagCompound aNBT){ + public void saveNBTData(NBTTagCompound aNBT) { aNBT.setInteger("mTimes", this.times); aNBT.setLong("mLeftEnergy", this.leftEnergy); aNBT.setInteger("mbasicOutput", this.basicOutput); - if (lockedFluid != null){ + if (lockedFluid != null) { aNBT.setString("mLockedFluidName", this.lockedFluid.getFluid().getName()); aNBT.setInteger("mLockedFluidAmount", this.lockedFluid.amount); } @@ -215,12 +189,15 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } } - GT_Recipe tRecipe = MyRecipeAdder.instance.NqGFuels.findRecipe(this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0])); + GT_Recipe tRecipe = MyRecipeAdder.instance.NqGFuels.findRecipe( + this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0])); if (tRecipe != null) { Pair<FluidStack, Integer> excitedInfo = getExcited(tFluids.toArray(new FluidStack[0]), false); int pall = excitedInfo == null ? 1 : excitedInfo.getValue(); - if (consumeFuel(CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), tFluids.toArray(new FluidStack[0]))) { - mOutputFluids = new FluidStack[]{CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall)}; + if (consumeFuel( + CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), + tFluids.toArray(new FluidStack[0]))) { + mOutputFluids = new FluidStack[] {CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall)}; basicOutput = tRecipe.mSpecialValue; times = pall; lockedFluid = excitedInfo == null ? null : excitedInfo.getKey(); @@ -238,13 +215,15 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM if (mMaxProgresstime != 0 && mProgresstime % 20 == 0) { FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]); int eff = 100, time = 1; - if (LiquidAirConsumptionPerSecond != 0 && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { + if (LiquidAirConsumptionPerSecond != 0 + && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { this.mEUt = 0; this.trueEff = 0; this.trueOutput = 0; return true; } - if (getCoolant(input, true) != null) eff = getCoolant(input, false).getValue(); + if (getCoolant(input, true) != null) + eff = getCoolant(input, false).getValue(); if (consumeFuel(lockedFluid, input)) time = times; this.mEUt = basicOutput * eff * time / 100; this.trueEff = eff; @@ -258,15 +237,18 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override public String[] getInfoData() { String[] info = super.getInfoData(); - info[4] = "Probably makes: " + EnumChatFormatting.RED + Math.abs(this.trueOutput) + EnumChatFormatting.RESET + " EU/t"; - info[6] = "Problems: " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + EnumChatFormatting.RESET + " Efficiency: " + EnumChatFormatting.YELLOW + trueEff + EnumChatFormatting.RESET + " %"; + info[4] = "Probably makes: " + EnumChatFormatting.RED + Math.abs(this.trueOutput) + EnumChatFormatting.RESET + + " EU/t"; + info[6] = "Problems: " + EnumChatFormatting.RED + (this.getIdealStatus() - this.getRepairStatus()) + + EnumChatFormatting.RESET + " Efficiency: " + EnumChatFormatting.YELLOW + trueEff + + EnumChatFormatting.RESET + " %"; return info; } public boolean consumeFuel(FluidStack target, FluidStack[] input) { if (target == null) return false; for (FluidStack inFluid : input) { - if (inFluid != null && inFluid.isFluidEqual(target) && inFluid.amount >= target.amount){ + if (inFluid != null && inFluid.isFluidEqual(target) && inFluid.amount >= target.amount) { inFluid.amount -= target.amount; return true; } @@ -300,36 +282,34 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM return null; } - public void addAutoEnergy(long outputPower){ + public void addAutoEnergy(long outputPower) { if (this.eDynamoMulti.size() > 0) - for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti){ - long voltage = tHatch.maxEUOutput(); - long power = voltage * tHatch.maxAmperesOut(); - long outputAmperes; - if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); - if (outputPower >= voltage){ - leftEnergy += outputPower; - outputAmperes = leftEnergy / voltage; - leftEnergy -= outputAmperes * voltage; - addEnergyOutput_EM(voltage, outputAmperes); - } - else{ - addEnergyOutput_EM(outputPower, 1); - } + for (GT_MetaTileEntity_Hatch tHatch : this.eDynamoMulti) { + long voltage = tHatch.maxEUOutput(); + long power = voltage * tHatch.maxAmperesOut(); + long outputAmperes; + if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); + if (outputPower >= voltage) { + leftEnergy += outputPower; + outputAmperes = leftEnergy / voltage; + leftEnergy -= outputAmperes * voltage; + addEnergyOutput_EM(voltage, outputAmperes); + } else { + addEnergyOutput_EM(outputPower, 1); + } } if (this.mDynamoHatches.size() > 0) - for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches){ + for (GT_MetaTileEntity_Hatch tHatch : this.mDynamoHatches) { long voltage = tHatch.maxEUOutput(); long power = voltage * tHatch.maxAmperesOut(); long outputAmperes; if (outputPower > power) doExplosion(8 * GT_Utility.getTier(power)); - if (outputPower >= voltage){ + if (outputPower >= voltage) { leftEnergy += outputPower; outputAmperes = leftEnergy / voltage; leftEnergy -= outputAmperes * voltage; addEnergyOutput_EM(voltage, outputAmperes); - } - else{ + } else { addEnergyOutput_EM(outputPower, 1); } } @@ -337,7 +317,9 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { - return structureCheck_EM(mName, 3, 7, 0) && mMaintenanceHatches.size() == 1 && mDynamoHatches.size() + eDynamoMulti.size() == 1; + return structureCheck_EM(mName, 3, 7, 0) + && mMaintenanceHatches.size() == 1 + && mDynamoHatches.size() + eDynamoMulti.size() == 1; } @Override @@ -372,11 +354,17 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM .addInfo("Controller block for the Naquadah Reactor") .addInfo("Environmental Friendly!") .addInfo("Generate power with the High-energy liquid.") - .addInfo(String.format("Consume liquid air %d L/s to keep running, otherwise" + EnumChatFormatting.YELLOW + " it will void your fuel" + EnumChatFormatting.GRAY + ".", LiquidAirConsumptionPerSecond)) + .addInfo(String.format( + "Consume liquid air %d L/s to keep running, otherwise" + EnumChatFormatting.YELLOW + + " it will void your fuel" + EnumChatFormatting.GRAY + ".", + LiquidAirConsumptionPerSecond)) .addInfo("Input liquid nuclear fuel or liquid naquadah fuel.") - .addInfo("The reactor will explode when there are more than" + EnumChatFormatting.RED + " ONE" + EnumChatFormatting.GRAY + " types of fuel in the hatch!") + .addInfo("The reactor will explode when there are more than" + EnumChatFormatting.RED + " ONE" + + EnumChatFormatting.GRAY + " types of fuel in the hatch!") .addInfo("Consume coolant 1000 L/s to increase the efficiency:") - .addInfo(String.format("IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%", CoolantEfficiency[2], CoolantEfficiency[1], CoolantEfficiency[0])) + .addInfo(String.format( + "IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%", + CoolantEfficiency[2], CoolantEfficiency[1], CoolantEfficiency[0])) .addInfo("Consume excited liquid to increase the output power:") .addInfo(String.format("molten caesium | %dx power | 180 L/s ", ExcitedLiquidCoe[3])) .addInfo(String.format("molten uranium-235 | %dx power | 180 L/s", ExcitedLiquidCoe[2])) @@ -397,12 +385,29 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override @SuppressWarnings("ALL") - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { - if(aSide == aFacing){ - if(aActive) return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE), TextureFactory.builder().addIcon(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW).glow().build()}; - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44), new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT)}; + public ITexture[] getTexture( + IGregTechTileEntity aBaseMetaTileEntity, + byte aSide, + byte aFacing, + byte aColorIndex, + boolean aActive, + boolean aRedstone) { + if (aSide == aFacing) { + if (aActive) + return new ITexture[] { + Textures.BlockIcons.getCasingTextureForId(44), + new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE), + TextureFactory.builder() + .addIcon(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW) + .glow() + .build() + }; + return new ITexture[] { + Textures.BlockIcons.getCasingTextureForId(44), + new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT) + }; } - return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(44)}; + return new ITexture[] {Textures.BlockIcons.getCasingTextureForId(44)}; } @Override @@ -419,5 +424,4 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM public List<GT_MetaTileEntity_Hatch_EnergyMulti> getTecTechEnergyMultis() { return new ArrayList<>(); } - } |