diff options
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java')
-rw-r--r-- | src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java | 204 |
1 files changed, 111 insertions, 93 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java index a5b0f731b9..cd53c48974 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java @@ -55,7 +55,7 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM - implements IConstructable, ISurvivalConstructable { + implements IConstructable, ISurvivalConstructable { protected IStructureDefinition<MultiNqGenerator> multiDefinition = null; protected long leftEnergy = 0; @@ -71,16 +71,16 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM static { excitedLiquid = Arrays.asList( - new Pair<>(MaterialsUEVplus.Space.getMolten(20L), ExcitedLiquidCoe[0]), - new Pair<>(MyMaterial.atomicSeparationCatalyst.getMolten(20), ExcitedLiquidCoe[1]), - new Pair<>(Materials.Naquadah.getMolten(20L), ExcitedLiquidCoe[2]), - new Pair<>(Materials.Uranium235.getMolten(180L), ExcitedLiquidCoe[3]), - new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[4])); + new Pair<>(MaterialsUEVplus.Space.getMolten(20L), ExcitedLiquidCoe[0]), + new Pair<>(MyMaterial.atomicSeparationCatalyst.getMolten(20), ExcitedLiquidCoe[1]), + new Pair<>(Materials.Naquadah.getMolten(20L), ExcitedLiquidCoe[2]), + new Pair<>(Materials.Uranium235.getMolten(180L), ExcitedLiquidCoe[3]), + new Pair<>(Materials.Caesium.getMolten(180L), ExcitedLiquidCoe[4])); coolant = Arrays.asList( - new Pair<>(MaterialsUEVplus.Time.getMolten(20L), CoolantEfficiency[0]), - new Pair<>(FluidRegistry.getFluidStack("cryotheum", 1000), CoolantEfficiency[1]), - new Pair<>(Materials.SuperCoolant.getFluid(1000L), CoolantEfficiency[2]), - new Pair<>(FluidRegistry.getFluidStack("ic2coolant", 1000), CoolantEfficiency[3])); + new Pair<>(MaterialsUEVplus.Time.getMolten(20L), CoolantEfficiency[0]), + new Pair<>(FluidRegistry.getFluidStack("cryotheum", 1000), CoolantEfficiency[1]), + new Pair<>(Materials.SuperCoolant.getFluid(1000L), CoolantEfficiency[2]), + new Pair<>(FluidRegistry.getFluidStack("ic2coolant", 1000), CoolantEfficiency[3])); } @Override @@ -124,32 +124,37 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override public IStructureDefinition<MultiNqGenerator> getStructure_EM() { if (multiDefinition == null) { - multiDefinition = StructureDefinition.<MultiNqGenerator>builder().addShape( + 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( - buildHatchAdder(MultiNqGenerator.class).atLeast( - HatchElement.DynamoMulti.or(GT_HatchElement.Dynamo), - GT_HatchElement.InputHatch, - GT_HatchElement.OutputHatch, - GT_HatchElement.Maintenance).casingIndex(44).dot(1).build(), - 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(); + 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( + buildHatchAdder(MultiNqGenerator.class) + .atLeast( + HatchElement.DynamoMulti.or(GT_HatchElement.Dynamo), + GT_HatchElement.InputHatch, + GT_HatchElement.OutputHatch, + GT_HatchElement.Maintenance) + .casingIndex(44) + .dot(1) + .build(), + 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; } @@ -173,8 +178,8 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM 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")); + FluidRegistry.getFluid(aNBT.getString("mLockedFluidName")), + aNBT.getInteger("mLockedFluidAmount")); else this.lockedFluid = null; super.loadNBTData(aNBT); } @@ -185,7 +190,10 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM aNBT.setLong("mLeftEnergy", this.leftEnergy); aNBT.setInteger("mbasicOutput", this.basicOutput); if (lockedFluid != null) { - aNBT.setString("mLockedFluidName", this.lockedFluid.getFluid().getName()); + aNBT.setString( + "mLockedFluidName", + this.lockedFluid.getFluid() + .getName()); aNBT.setInteger("mLockedFluidAmount", this.lockedFluid.amount); } super.saveNBTData(aNBT); @@ -219,15 +227,15 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM } GT_Recipe tRecipe = GoodGeneratorRecipeMaps.naquadahReactorFuels - .findRecipe(this.getBaseMetaTileEntity(), true, 1 << 30, tFluids.toArray(new FluidStack[0])); + .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]))) { + CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidInputs[0], pall), + tFluids.toArray(new FluidStack[0]))) { mOutputFluids = new FluidStack[] { - CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall) }; + CrackRecipeAdder.copyFluidWithAmount(tRecipe.mFluidOutputs[0], pall) }; basicOutput = tRecipe.mSpecialValue; times = pall; lockedFluid = excitedInfo == null ? null : excitedInfo.getKey(); @@ -241,14 +249,15 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override public boolean onRunningTick(ItemStack stack) { - if (this.getBaseMetaTileEntity().isServerSide()) { + if (this.getBaseMetaTileEntity() + .isServerSide()) { if (mMaxProgresstime != 0 && mProgresstime % 20 == 0) { // If there's no startRecipeProcessing, ME input hatch wouldn't work startRecipeProcessing(); FluidStack[] input = getStoredFluids().toArray(new FluidStack[0]); int time = 1; if (LiquidAirConsumptionPerSecond != 0 - && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { + && !consumeFuel(Materials.LiquidAir.getFluid(LiquidAirConsumptionPerSecond), input)) { this.mEUt = 0; this.trueEff = 0; this.trueOutput = 0; @@ -271,17 +280,17 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM public String[] getInfoData() { String[] info = super.getInfoData(); info[4] = "Probably makes: " + EnumChatFormatting.RED - + GT_Utility.formatNumbers(Math.abs(this.trueOutput)) - + EnumChatFormatting.RESET - + " EU/t"; + + GT_Utility.formatNumbers(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 - + " %"; + + (this.getIdealStatus() - this.getRepairStatus()) + + EnumChatFormatting.RESET + + " Efficiency: " + + EnumChatFormatting.YELLOW + + trueEff + + EnumChatFormatting.RESET + + " %"; return info; } @@ -362,7 +371,7 @@ 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; + && mDynamoHatches.size() + eDynamoMulti.size() == 1; } @Override @@ -393,54 +402,63 @@ public class MultiNqGenerator extends GT_MetaTileEntity_TooltipMultiBlockBase_EM @Override protected GT_Multiblock_Tooltip_Builder createTooltip() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); - tt.addMachineType("Naquadah Reactor").addInfo("Controller block for the Naquadah Reactor") - .addInfo("Environmentally Friendly!").addInfo("Generate power from high-energy liquids.") - .addInfo( - String.format( - "Consumes %d L/s Liquid Air 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 is more than" + EnumChatFormatting.RED - + " ONE" - + EnumChatFormatting.GRAY - + " type of fuel in hatches!") - .addInfo("Can consume 1000L/s of coolant to increase efficiency:") - .addInfo( - String.format( - "IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%, Tachyon Rich Temporal Fluid %d%%", - CoolantEfficiency[3], - CoolantEfficiency[2], - CoolantEfficiency[1], - CoolantEfficiency[0])) - .addInfo("Can consume excited liquid to increase the output power and fuel usage:") - .addInfo(String.format("Molten Caesium | %dx power | 180 L/s ", ExcitedLiquidCoe[4])) - .addInfo(String.format("Molten Uranium-235 | %dx power | 180 L/s", ExcitedLiquidCoe[3])) - .addInfo(String.format("Molten Naquadah | %dx power | 20 L/s", ExcitedLiquidCoe[2])) - .addInfo(String.format("Molten Atomic Separation Catalyst | %dx power | 20 L/s", ExcitedLiquidCoe[1])) - .addInfo(String.format("Spatially Enlarged Fluid | %dx power | 20 L/s", ExcitedLiquidCoe[0])) - .addInfo("The structure is too complex!").addInfo(BLUE_PRINT_INFO).addSeparator() - .beginStructureBlock(7, 8, 7, true).addController("Front bottom") - .addDynamoHatch("Any bottom layer casing, only accept ONE!").addInputHatch("Any bottom layer casing") - .addOutputHatch("Any bottom layer casing").addMaintenanceHatch("Any bottom layer casing") - .toolTipFinisher("Good Generator"); + tt.addMachineType("Naquadah Reactor") + .addInfo("Controller block for the Naquadah Reactor") + .addInfo("Environmentally Friendly!") + .addInfo("Generate power from high-energy liquids.") + .addInfo( + String.format( + "Consumes %d L/s Liquid Air 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 is more than" + EnumChatFormatting.RED + + " ONE" + + EnumChatFormatting.GRAY + + " type of fuel in hatches!") + .addInfo("Can consume 1000L/s of coolant to increase efficiency:") + .addInfo( + String.format( + "IC2 Coolant %d%%, Super Coolant %d%%, Cryotheum %d%%, Tachyon Rich Temporal Fluid %d%%", + CoolantEfficiency[3], + CoolantEfficiency[2], + CoolantEfficiency[1], + CoolantEfficiency[0])) + .addInfo("Can consume excited liquid to increase the output power and fuel usage:") + .addInfo(String.format("Molten Caesium | %dx power | 180 L/s ", ExcitedLiquidCoe[4])) + .addInfo(String.format("Molten Uranium-235 | %dx power | 180 L/s", ExcitedLiquidCoe[3])) + .addInfo(String.format("Molten Naquadah | %dx power | 20 L/s", ExcitedLiquidCoe[2])) + .addInfo(String.format("Molten Atomic Separation Catalyst | %dx power | 20 L/s", ExcitedLiquidCoe[1])) + .addInfo(String.format("Spatially Enlarged Fluid | %dx power | 20 L/s", ExcitedLiquidCoe[0])) + .addInfo("The structure is too complex!") + .addInfo(BLUE_PRINT_INFO) + .addSeparator() + .beginStructureBlock(7, 8, 7, true) + .addController("Front bottom") + .addDynamoHatch("Any bottom layer casing, only accept ONE!") + .addInputHatch("Any bottom layer casing") + .addOutputHatch("Any bottom layer casing") + .addMaintenanceHatch("Any bottom layer casing") + .toolTipFinisher("Good Generator"); return tt; } @Override @SuppressWarnings("ALL") public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing, - int colorIndex, boolean aActive, boolean aRedstone) { + int colorIndex, boolean aActive, boolean aRedstone) { if (side == facing) { 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() }; + 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) }; + new GT_RenderedTexture(Textures.BlockIcons.NAQUADAH_REACTOR_SOLID_FRONT) }; } return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(44) }; } |