diff options
author | Connor-Colenso <52056774+Connor-Colenso@users.noreply.github.com> | 2023-03-03 23:43:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-03 23:43:14 +0000 |
commit | 82ff18b69f652ba9ac143fdc33ca0216004c6f47 (patch) | |
tree | c19bbadee3e9f71c1fdd596068fea5f4b42e34d7 /src/main/java/com | |
parent | 52f47cce93034c2e11641d4dcd41595f8b79d578 (diff) | |
parent | 797f599a178a8fd5880214f5001f1b50275444c3 (diff) | |
download | GT5-Unofficial-82ff18b69f652ba9ac143fdc33ca0216004c6f47.tar.gz GT5-Unofficial-82ff18b69f652ba9ac143fdc33ca0216004c6f47.tar.bz2 GT5-Unofficial-82ff18b69f652ba9ac143fdc33ca0216004c6f47.zip |
Merge pull request #170 from GTNewHorizons/EOHFixes
Thanks
Diffstat (limited to 'src/main/java/com')
2 files changed, 21 insertions, 16 deletions
diff --git a/src/main/java/com/github/technus/tectech/recipe/EyeOfHarmonyRecipe.java b/src/main/java/com/github/technus/tectech/recipe/EyeOfHarmonyRecipe.java index f19cb2daee..d7c0fd1e5e 100644 --- a/src/main/java/com/github/technus/tectech/recipe/EyeOfHarmonyRecipe.java +++ b/src/main/java/com/github/technus/tectech/recipe/EyeOfHarmonyRecipe.java @@ -32,12 +32,12 @@ import gregtech.api.util.GT_OreDictUnificator; @SuppressWarnings("SpellCheckingInspection") public class EyeOfHarmonyRecipe { - static final FluidStack[] SPECIAL_FLUIDS = new FluidStack[] { Materials.WhiteDwarfMatter.getMolten(576), - Materials.WhiteDwarfMatter.getMolten(576), Materials.WhiteDwarfMatter.getMolten(2_304), - Materials.WhiteDwarfMatter.getMolten(9_216), Materials.BlackDwarfMatter.getMolten(576), - Materials.BlackDwarfMatter.getMolten(2_304), Materials.BlackDwarfMatter.getMolten(9_216), - Materials.Universium.getMolten(576), Materials.Universium.getMolten(2_304), - Materials.Universium.getMolten(9_216) }; + static final FluidStack[] SPECIAL_FLUIDS = new FluidStack[] { Materials.WhiteDwarfMatter.getMolten(1152), + Materials.WhiteDwarfMatter.getMolten(1152), Materials.WhiteDwarfMatter.getMolten(4_608), + Materials.WhiteDwarfMatter.getMolten(18_432), Materials.BlackDwarfMatter.getMolten(1152), + Materials.BlackDwarfMatter.getMolten(4_608), Materials.BlackDwarfMatter.getMolten(18_432), + Materials.Universium.getMolten(1152), Materials.Universium.getMolten(4_608), + Materials.Universium.getMolten(18_432) }; HashingStrategy<ItemStack> itemStackHashingStrategy = new HashingStrategy<ItemStack>() { 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 3a1dd00c67..4453a8a1ac 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 @@ -79,6 +79,8 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl // % Increase in recipe chance and % decrease in yield per tier. private static final double STABILITY_INCREASE_PROBABILITY_DECREASE_YIELD_PER_TIER = 0.05; + private static final int TOTAL_CASING_TIERS_WITH_POWER_PENALTY = 8; + private String userUUID = ""; private long euOutput = 0; @@ -773,7 +775,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl final long spacetimeCasingDifference = (recipeSpacetimeCasingRequired - spacetimeCompressionFieldMetadata); final double recipeTimeDiscounted = recipeTime * pow(2.0, -timeAccelerationFieldMetadata) - * pow(1 - SPACETIME_CASING_DIFFERENCE_DISCOUNT_PERCENTAGE, spacetimeCasingDifference) + * pow(1 - SPACETIME_CASING_DIFFERENCE_DISCOUNT_PERCENTAGE, -spacetimeCasingDifference) / max(1, pow(2, currentCircuitMultiplier)); return (int) Math.max(recipeTimeDiscounted, 1.0); } @@ -903,7 +905,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl + " per tier (additive)") .addInfo(BLUE + "Stabilisation Field Generator:") .addInfo( - "- Increases the probability of a recipe succeeding by " + RED + "- Increases the power output and probability of a recipe succeeding by " + RED + formatNumbers(STABILITY_INCREASE_PROBABILITY_DECREASE_YIELD_PER_TIER * 100) + "%" + GRAY @@ -924,7 +926,8 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl .addInfo(TOOLTIP_BAR) .addInfo("It should be noted that base recipe chance is determined per recipe and yield always starts") .addInfo("at 1 and subtracts depending on penalities. All fluid/item outputs are multiplied by the") - .addInfo("yield. Failure fluid is exempt.").addInfo(TOOLTIP_BAR) + .addInfo("yield. Failure fluid is exempt. All power outputs start at 60% of what the recipes display.") + .addInfo(TOOLTIP_BAR) .addInfo("This multiblock can only output to ME output busses/hatches. If no space in the network") .addInfo( "is avaliable the items/fluids will be " + UNDERLINE + DARK_RED + "voided" + RESET + GRAY + ".") @@ -1227,15 +1230,17 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl destroyRenderBlock(); + // Output power with stabilization factor (5% loss per tier below gallifreyan) + addEUToGlobalEnergyMap( + userUUID, + (long) (euOutput * (1 - ((TOTAL_CASING_TIERS_WITH_POWER_PENALTY - stabilisationFieldMetadata) + * STABILITY_INCREASE_PROBABILITY_DECREASE_YIELD_PER_TIER)))); + euOutput = 0; + if (successChance < random()) { outputFailedChance(); outputItems = new ArrayList<>(); - addEUToGlobalEnergyMap( - userUUID, - (long) (currentRecipe.getEUStartCost() * pow(4, currentCircuitMultiplier) / 2L)); - } else { - addEUToGlobalEnergyMap(userUUID, euOutput); - euOutput = 0; + return; } for (ItemStackLong itemStack : outputItems) { @@ -1306,7 +1311,7 @@ public class GT_MetaTileEntity_EM_EyeOfHarmony extends GT_MetaTileEntity_Multibl if (recipeRunning) { str.add(GOLD + "---------------------- Other Stats ---------------"); str.add("Recipe Success Chance: " + RED + formatNumbers(100 * successChance) + RESET + "%"); - str.add("Recipe Yield: " + RED + formatNumbers(100 * successChance) + RESET + "%"); + str.add("Recipe Yield: " + RED + formatNumbers(100 * recipeYieldCalculator()) + RESET + "%"); str.add("EU Output: " + RED + formatNumbers(euOutput) + RESET + " EU"); if (mOutputFluids.length > 0) { // Star matter is always the last element in the array. |