diff options
author | GDCloud <93287602+GDCloudstrike@users.noreply.github.com> | 2024-03-21 20:17:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-21 20:17:22 +0100 |
commit | f646413541e248528ec8baf5b5b2253451380925 (patch) | |
tree | ab677ac63903bbe56f9cb7980d5b342b2d9f67ef | |
parent | 931c21814d2c2533fe2fb8d5a37e02ee35343930 (diff) | |
download | GT5-Unofficial-f646413541e248528ec8baf5b5b2253451380925.tar.gz GT5-Unofficial-f646413541e248528ec8baf5b5b2253451380925.tar.bz2 GT5-Unofficial-f646413541e248528ec8baf5b5b2253451380925.zip |
fix predetermined eoh outputs showing on scanner output (#276)
-rw-r--r-- | src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java | 54 |
1 files changed, 43 insertions, 11 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java index eabfbbe520..d52d7855a0 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java @@ -1144,6 +1144,8 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl private long successfulParallelAmount = 0; private double yield = 0; private BigInteger usedEU = BigInteger.ZERO; + private FluidStackLong stellarPlasma; + private FluidStackLong starMatter; @Override @NotNull @@ -1303,6 +1305,12 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl outputFluids = recipeObject.getOutputFluids(); outputItems = recipeObject.getOutputItems(); + // Star matter is always the last element in the array. + starMatter = new FluidStackLong(outputFluids.get(outputFluids.size() - 1)); + + // And stellar plasma is the second last. + stellarPlasma = new FluidStackLong(outputFluids.get(outputFluids.size() - 2)); + successfulParallelAmount = (long) calculateChancedOutputMultiplier( (int) (10000 * successChance), (int) parallelAmount); @@ -1553,30 +1561,33 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl str.add("EU Input: " + RED + toStandardForm(usedEU.abs()) + RESET + " EU"); int currentMaxProgresstime = Math.max(maxProgresstime(), 1); if (outputFluids.size() > 0) { - // Star matter is always the last element in the array. - FluidStackLong starMatter = outputFluids.get(outputFluids.size() - 1); + FluidStackLong starMatterOutput = new FluidStackLong( + starMatter.fluidStack, + (long) (starMatter.amount * yield * successChance * parallelAmount)); str.add( - "Estimated " + starMatter.fluidStack.getLocalizedName() + "Average " + starMatterOutput.fluidStack.getLocalizedName() + " Output: " + RED - + formatNumbers(starMatter.amount) + + formatNumbers(starMatterOutput.amount) + RESET + " L, " + YELLOW - + formatNumbers(starMatter.amount * 20.0 / currentMaxProgresstime) + + formatNumbers(starMatterOutput.amount * 20.0 / currentMaxProgresstime) + RESET + " L/s"); - // And stellar plasma is the second last. - FluidStackLong stellarPlasma = outputFluids.get(outputFluids.size() - 2); + + FluidStackLong stellarPlasmaOutput = new FluidStackLong( + stellarPlasma.fluidStack, + (long) (stellarPlasma.amount * yield * successChance * parallelAmount)); str.add( - "Estimated " + stellarPlasma.fluidStack.getLocalizedName() + "Average " + stellarPlasmaOutput.fluidStack.getLocalizedName() + " Output: " + RED - + formatNumbers(stellarPlasma.amount) + + formatNumbers(stellarPlasmaOutput.amount) + RESET + " L, " + YELLOW - + formatNumbers(stellarPlasma.amount * 20.0 / currentMaxProgresstime) + + formatNumbers(stellarPlasmaOutput.amount * 20.0 / currentMaxProgresstime) + RESET + " L/s"); } @@ -1601,6 +1612,9 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl private static final String ITEM_OUTPUT_NBT_TAG = EYE_OF_HARMONY + "itemOutput"; private static final String FLUID_OUTPUT_NBT_TAG = EYE_OF_HARMONY + "fluidOutput"; private static final String RECIPE_RUNNING_NBT_TAG = EYE_OF_HARMONY + "recipeRunning"; + private static final String CURRENT_RECIPE_STAR_MATTER_TAG = EYE_OF_HARMONY + "recipeStarMatter"; + private static final String CURRENT_RECIPE_STELLAR_PLASMA_TAG = EYE_OF_HARMONY + "recipeStellarPlasma"; + private static final String CURRENT_RECIPE_FIXED_OUTPUTS_TAG = EYE_OF_HARMONY + "recipeFixedOutputs"; private static final String RECIPE_SUCCESS_CHANCE_NBT_TAG = EYE_OF_HARMONY + "recipeSuccessChance"; private static final String ROCKET_TIER_NBT_TAG = EYE_OF_HARMONY + "rocketTier"; private static final String CURRENT_CIRCUIT_MULTIPLIER_TAG = EYE_OF_HARMONY + "currentCircuitMultiplier"; @@ -1652,7 +1666,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl aNBT.setTag(ITEM_OUTPUT_NBT_TAG, itemStackListNBTTag); - // Store damage values/stack sizes of GT fluida being outputted. + // Store damage values/stack sizes of GT fluids being outputted. NBTTagCompound fluidStackListNBTTag = new NBTTagCompound(); fluidStackListNBTTag.setLong(NUMBER_OF_FLUIDS_NBT_TAG, outputFluids.size()); @@ -1669,6 +1683,16 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl aNBT.setTag(FLUID_OUTPUT_NBT_TAG, fluidStackListNBTTag); + NBTTagCompound fixedRecipeOutputs = new NBTTagCompound(); + + fixedRecipeOutputs.setLong(0 + FLUID_AMOUNT, starMatter.amount); + aNBT.setTag(CURRENT_RECIPE_STAR_MATTER_TAG, starMatter.fluidStack.writeToNBT(new NBTTagCompound())); + + fixedRecipeOutputs.setLong(1 + FLUID_AMOUNT, stellarPlasma.amount); + aNBT.setTag(CURRENT_RECIPE_STELLAR_PLASMA_TAG, stellarPlasma.fluidStack.writeToNBT(new NBTTagCompound())); + + aNBT.setTag(CURRENT_RECIPE_FIXED_OUTPUTS_TAG, fixedRecipeOutputs); + super.saveNBTData(aNBT); } @@ -1723,6 +1747,14 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl outputFluids.add(new FluidStackLong(fluidStack, fluidAmount)); } + tempFluidTag = aNBT.getCompoundTag(CURRENT_RECIPE_FIXED_OUTPUTS_TAG); + starMatter = new FluidStackLong( + FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag(CURRENT_RECIPE_STAR_MATTER_TAG)), + tempFluidTag.getLong(0 + FLUID_AMOUNT)); + stellarPlasma = new FluidStackLong( + FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag(CURRENT_RECIPE_STELLAR_PLASMA_TAG)), + tempFluidTag.getLong(1 + FLUID_AMOUNT)); + super.loadNBTData(aNBT); } } |