aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java17
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java3
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java17
3 files changed, 28 insertions, 9 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
index 8f035a94ad..fc9e6bfdc0 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
@@ -31,6 +31,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_ElectricBlastFurnace;
@@ -40,10 +41,7 @@ import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
+import java.util.*;
import static gregtech.api.enums.GT_Values.V;
@@ -87,8 +85,11 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBlastRecipes.findRecipe(this.getBaseMetaTileEntity(), false, V[tTier], tFluids, tInputs);
boolean found_Recipe = false;
int processed = 0;
+
+ long nominalV = BW_Util.getnominalVoltage(this);
+
while (this.getStoredInputs().size() > 0 && processed < ConfigHandler.megaMachinesMax) {
- if (tRecipe != null && this.mHeatingCapacity >= tRecipe.mSpecialValue && tRecipe.isRecipeInputEqual(true, tFluids, tInputs)) {
+ if (tRecipe != null && this.mHeatingCapacity >= tRecipe.mSpecialValue && tRecipe.isRecipeInputEqual(true, tFluids, tInputs) && (tRecipe.mEUt*processed) < nominalV ) {
found_Recipe = true;
for (int i = 0; i < tRecipe.mOutputs.length; i++) {
outputItems.add(tRecipe.getOutput(i));
@@ -115,7 +116,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
}
overclockCount = calculateOverclockednessEBF((int) (actualEUT / (divider * 2)), tRecipe.mDuration * (divider * 2), tVoltage);
} else
- overclockCount = calculateOverclockednessEBF(tRecipe.mEUt * 64, tRecipe.mDuration, tVoltage);
+ overclockCount = calculateOverclockednessEBF(actualEUT, tRecipe.mDuration, tVoltage);
//In case recipe is too OP for that machine
if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
return false;
@@ -148,7 +149,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
* @param aEUt - recipe EUt
* @param aDuration - recipe Duration
*/
- protected byte calculateOverclockednessEBF(int aEUt, int aDuration, long maxInputVoltage) {
+ protected byte calculateOverclockednessEBF(long aEUt, int aDuration, long maxInputVoltage) {
byte mTier = (byte) Math.max(0, GT_Utility.getTier(maxInputVoltage)), timesOverclocked = 0;
if (mTier == 0) {
//Long time calculation
@@ -158,7 +159,7 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_MetaTileEntity_ElectricBl
mEUt = Integer.MAX_VALUE - 1;
mMaxProgresstime = Integer.MAX_VALUE - 1;
} else {
- mEUt = aEUt >> 2;
+ mEUt = (int) (aEUt >> 2);
mMaxProgresstime = (int) xMaxProgresstime;
}
//return 0;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
index 5b8ce4459b..b6ee743027 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
@@ -76,8 +76,9 @@ public class GT_TileEntity_MegaVacuumFreezer extends GT_MetaTileEntity_VacuumFre
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sVacuumRecipes.findRecipe(this.getBaseMetaTileEntity(), false, V[tTier], null, tInputs);
boolean found_Recipe = false;
int processed = 0;
+ long nominalV = BW_Util.getnominalVoltage(this);
while (this.getStoredInputs().size() > 0 && processed < ConfigHandler.megaMachinesMax) {
- if (tRecipe != null && tRecipe.isRecipeInputEqual(true, null, tInputs)) {
+ if (tRecipe != null && tRecipe.isRecipeInputEqual(true, null, tInputs) && (tRecipe.mEUt*processed) < nominalV ) {
found_Recipe = true;
for (int i = 0; i < tRecipe.mOutputs.length; i++) {
outputItems.add(tRecipe.getOutput(i));
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
index 1392184d13..51572b0543 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java
@@ -25,6 +25,7 @@ package com.github.bartimaeusnek.bartworks.util;
import com.github.bartimaeusnek.bartworks.API.BioVatLogicAdder;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
@@ -232,6 +233,22 @@ public class BW_Util {
}
}
+ public static long getnominalVoltage(GT_MetaTileEntity_MultiBlockBase base){
+ long rVoltage = 0L;
+ long rAmperage = 0L;
+ Iterator var3 = base.mEnergyHatches.iterator();
+
+ while(var3.hasNext()) {
+ GT_MetaTileEntity_Hatch_Energy tHatch = (GT_MetaTileEntity_Hatch_Energy)var3.next();
+ if (base.isValidMetaTileEntity(tHatch)) {
+ rVoltage += tHatch.getBaseMetaTileEntity().getInputVoltage();
+ rAmperage += tHatch.getBaseMetaTileEntity().getInputAmperage();
+ }
+ }
+
+ return rVoltage * rAmperage;
+ }
+
public static EnumRarity getRarityFromByte(byte b) {
switch (b) {
case 1: