diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-12-15 12:14:47 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-15 12:14:47 +1000 |
commit | 0b65e63e3705fc9ead2ddcb71e9da4ad808a2959 (patch) | |
tree | 80ed822de0fe5cb4514bd556d87d3d47bfd51488 /src/Java/gtPlusPlus/xmod/gregtech/api | |
parent | 0812789124d018247c614a6a6a360881f34be545 (diff) | |
download | GT5-Unofficial-0b65e63e3705fc9ead2ddcb71e9da4ad808a2959.tar.gz GT5-Unofficial-0b65e63e3705fc9ead2ddcb71e9da4ad808a2959.tar.bz2 GT5-Unofficial-0b65e63e3705fc9ead2ddcb71e9da4ad808a2959.zip |
Add TecTech support (#166)
+ Added check for TecTech mod.
+ Added TecTech support to my Base Multiblock.
+ Added TecTech support to my Power-Substation.
+ Added TecTech support to my Generator Array.
% Made GT++ load after a few more mods that were recently added.
$ Fixed else statement for computronics load message during startup.
$ By now supporting Multi-amp Dynamos, this closes #161.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java | 109 |
1 files changed, 103 insertions, 6 deletions
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 1fe2426ced..5d8e2dd933 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 @@ -1,5 +1,7 @@ package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Iterator; @@ -12,6 +14,7 @@ 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.util.GT_Recipe; +import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_MultiMachine; @@ -223,13 +226,23 @@ GT_MetaTileEntity_MultiBlockBase { } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBattery) { + updateTexture(aBaseCasingIndex); return this.mChargeHatches.add( (GT_MetaTileEntity_Hatch_InputBattery) aMetaTileEntity); } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBattery) { + updateTexture(aBaseCasingIndex); return this.mDischargeHatches.add( (GT_MetaTileEntity_Hatch_OutputBattery) aMetaTileEntity); } + if (LoadedMods.TecTech){ + if (isThisHatchMultiDynamo()) { + updateTexture(aBaseCasingIndex); + return this.mMultiDynamoHatches.add( + (GT_MetaTileEntity_Hatch) aMetaTileEntity); + } + + } return super.addToMachineList(aTileEntity, aBaseCasingIndex); } @@ -243,8 +256,7 @@ GT_MetaTileEntity_MultiBlockBase { return false; } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBattery) { - //((GT_MetaTileEntity_Hatch) aMetaTileEntity); - //.updateTexture(aBaseCasingIndex); + updateTexture(aBaseCasingIndex); return this.mChargeHatches.add( (GT_MetaTileEntity_Hatch_InputBattery) aMetaTileEntity); } @@ -261,8 +273,7 @@ GT_MetaTileEntity_MultiBlockBase { return false; } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBattery) { - //((GT_MetaTileEntity_Hatch) aMetaTileEntity) - //.updateTexture(aBaseCasingIndex); + updateTexture(aBaseCasingIndex); return this.mDischargeHatches.add( (GT_MetaTileEntity_Hatch_OutputBattery) aMetaTileEntity); } @@ -279,7 +290,7 @@ GT_MetaTileEntity_MultiBlockBase { return false; } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - //((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + updateTexture(aBaseCasingIndex); ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = this.getRecipeMap(); return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); } @@ -295,10 +306,96 @@ GT_MetaTileEntity_MultiBlockBase { return false; } if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - //((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + updateTexture(aBaseCasingIndex); return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); } return false; } + + /** + * Enable Texture Casing Support if found in GT 5.09 + */ + + public boolean updateTexture(int aCasingID){ + try { + Method mProper = Class.forName("gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch").getDeclaredMethod("updateTexture", int.class); + if (mProper != null){ + mProper.setAccessible(true); + mProper.invoke(this, aCasingID); + } + else { + return false; + } + } + catch (NoSuchMethodException | SecurityException | ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + return false; + } + + + + + + + + + + /** + * TecTech Support + */ + + + /** + * This is the array Used to Store the Tectech Multi-Amp hatches. + */ + + public ArrayList<GT_MetaTileEntity_Hatch> mMultiDynamoHatches = new ArrayList(); + + /** + * TecTech Multi-Amp Dynamo Support + * @param aTileEntity - The Dynamo Hatch + * @param aBaseCasingIndex - Casing Texture + * @return + */ + + public boolean addMultiAmpDynamoToMachineList(final IGregTechTileEntity aTileEntity, final int aBaseCasingIndex){ + //GT_MetaTileEntity_Hatch_DynamoMulti + if (aTileEntity == null) { + return false; + } + final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } + if (isThisHatchMultiDynamo()) { + updateTexture(aBaseCasingIndex); + return this.mMultiDynamoHatches.add((GT_MetaTileEntity_Hatch) aMetaTileEntity); + } + return false; + } + + public boolean isThisHatchMultiDynamo(){ + Class mDynamoClass; + try { + mDynamoClass = Class.forName("com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti"); + if (mDynamoClass != null){ + if (mDynamoClass.isInstance(this)){ + return true; + } + } + } + catch (ClassNotFoundException e) {} + return false; + } + + @Override + public boolean addDynamoToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (LoadedMods.TecTech){ + if (isThisHatchMultiDynamo()) { + addMultiAmpDynamoToMachineList(aTileEntity, aBaseCasingIndex); + } + + } + return super.addDynamoToMachineList(aTileEntity, aBaseCasingIndex); + } } |