aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/github/technus/tectech/recipe/EyeOfHarmonyRecipe.java12
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_EyeOfHarmony.java25
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.