aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 01:04:30 +0100
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-10-26 01:04:30 +0100
commitb9ad7d46f1f1993add94ad7b561e1fea94a4e0d1 (patch)
treeff509e8d7226ad3bd789cc38dd9bb9d8ca0a4553 /src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base
parent7e09b5381593a23aeff0a0bab03926a8c1e2b87d (diff)
downloadGT5-Unofficial-b9ad7d46f1f1993add94ad7b561e1fea94a4e0d1.tar.gz
GT5-Unofficial-b9ad7d46f1f1993add94ad7b561e1fea94a4e0d1.tar.bz2
GT5-Unofficial-b9ad7d46f1f1993add94ad7b561e1fea94a4e0d1.zip
% Updated 5.08 compatibility.
> Created StaticFields59.java to hold static copies of fields gotten from gt 5.09 classes. ^ Version bump.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GT_MetaTileEntity_Hatch_CustomFluidBase.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java51
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java1
3 files changed, 45 insertions, 11 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GT_MetaTileEntity_Hatch_CustomFluidBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GT_MetaTileEntity_Hatch_CustomFluidBase.java
index c664936a0b..839fb3a14a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GT_MetaTileEntity_Hatch_CustomFluidBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GT_MetaTileEntity_Hatch_CustomFluidBase.java
@@ -35,7 +35,7 @@ public class GT_MetaTileEntity_Hatch_CustomFluidBase extends GT_MetaTileEntity_H
}
public GT_MetaTileEntity_Hatch_CustomFluidBase(Fluid aFluid, int aAmount, final String aName, final String[] aDescription, final ITexture[][][] aTextures) {
- super(aName, 6, aDescription, aTextures);
+ super(aName, 6, aDescription[0], aTextures);
this.mRecipeMap = null;
this.mLockedFluid = aFluid;
this.mFluidCapacity = aAmount;
@@ -112,6 +112,6 @@ public class GT_MetaTileEntity_Hatch_CustomFluidBase extends GT_MetaTileEntity_H
}
public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
- return (MetaTileEntity) new GT_MetaTileEntity_Hatch_CustomFluidBase(this.mLockedFluid, this.mFluidCapacity, this.mName, this.mDescriptionArray, this.mTextures);
+ return (MetaTileEntity) new GT_MetaTileEntity_Hatch_CustomFluidBase(this.mLockedFluid, this.mFluidCapacity, this.mName, this.mDescription, this.mTextures);
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index ba348f3aab..7c099f49ef 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -32,7 +32,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Outpu
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_ItemStack;
-import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
@@ -43,6 +42,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_MultiMachine;
import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine;
import gtPlusPlus.xmod.gregtech.api.gui.GUI_Multi_Basic_Slotted;
@@ -62,6 +62,24 @@ public abstract class GregtechMeta_MultiBlockBase
extends
GT_MetaTileEntity_MultiBlockBase {
+
+
+
+ static {
+
+ Method a08 = findRecipe08 = ReflectionUtils.getMethod(GT_Recipe_Map.class, "findRecipe", IHasWorldObjectAndCoords.class, GT_Recipe.class, boolean.class, long.class, FluidStack[].class, ItemStack.class, ItemStack[].class);
+ Method a09 = findRecipe09 = ReflectionUtils.getMethod(GT_Recipe_Map.class, "findRecipe", IHasWorldObjectAndCoords.class, GT_Recipe.class, boolean.class, boolean.class, long.class, FluidStack[].class, ItemStack.class, ItemStack[].class);
+ Logger.INFO("Found .08 findRecipe method? "+(a08 != null));
+ Logger.INFO("Found .09 findRecipe method? "+(a09 != null));
+
+ //gregtech.api.util.GT_Recipe.GT_Recipe_Map.findRecipe(IHasWorldObjectAndCoords, GT_Recipe, boolean, long, FluidStack[], ItemStack, ItemStack...)
+
+ }
+
+ //Find Recipe Methods
+ private static final Method findRecipe08;
+ private static final Method findRecipe09;
+
public GT_Recipe mLastRecipe;
private boolean mInternalCircuit = false;
protected long mTotalRunTime = 0;
@@ -329,7 +347,7 @@ GT_MetaTileEntity_MultiBlockBase {
//Control Core to control the Multiblocks behaviour.
int aControlCoreTier = getControlCoreTier();
-
+
//If no core, return false;
if (aControlCoreTier == 0) {
return false;
@@ -350,7 +368,7 @@ GT_MetaTileEntity_MultiBlockBase {
if (tTier > aControlCoreTier) {
return false;
}
-
+
GT_Recipe tRecipe = findRecipe(
getBaseMetaTileEntity(), mLastRecipe, false,
@@ -410,11 +428,11 @@ GT_MetaTileEntity_MultiBlockBase {
this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
-
+
//Only Overclock as high as the control circuit.
byte tTierOld = tTier;
tTier = (byte) aControlCoreTier;
-
+
// Overclock
if (this.mEUt <= 16) {
this.mEUt = (this.mEUt * (1 << tTier - 1) * (1 << tTier - 1));
@@ -713,7 +731,7 @@ GT_MetaTileEntity_MultiBlockBase {
}
return false;
}
-
+
public int getControlCoreTier() {
if (mControlCoreBus.size() == 0) {
return 0;
@@ -1229,17 +1247,34 @@ GT_MetaTileEntity_MultiBlockBase {
catch (Throwable t) {
log("Invalid recipe lookup.");
}
+
+
if (mRecipeResult == null) {
- return this.getRecipeMap().findRecipe(aTileEntity, aRecipe, aNotUnificated, aDontCheckStackSizes, aVoltage, aFluids, aSpecialSlot, aInputs);
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ try {
+ return (GT_Recipe) findRecipe08.invoke(getRecipeMap(), aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return null;
+ }
+ }
+ else {
+ try {
+ return (GT_Recipe) findRecipe09.invoke(getRecipeMap(), aTileEntity, aRecipe, aNotUnificated, aDontCheckStackSizes, aVoltage, aFluids, aSpecialSlot, aInputs);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return null;
+ }
+ }
}
else {
return mRecipeResult;
}
- }
+ }
+
+
/**
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
index bef16c0bf7..c1915fb14a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
@@ -14,7 +14,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
-import gregtech.common.GT_Pollution;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;