From 7c495e8f38795ced3d8156cea253cea63a0bc46a Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Mon, 19 Oct 2020 03:53:55 +0200 Subject: allow to pull items from input bus --- .../implementations/GT_MetaTileEntity_Hatch_InputBus.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 8c36c2af65..0111d932ae 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -160,7 +160,7 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; + return true; } @Override -- cgit From 2914c59e4261c91994ca329105c986d959e5d47b Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Mon, 19 Oct 2020 04:05:15 +0200 Subject: allow only from input side --- .../implementations/GT_MetaTileEntity_Hatch_InputBus.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 0111d932ae..dfac210915 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -160,7 +160,7 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch { @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return true; + return aSide == getBaseMetaTileEntity().getFrontFacing(); } @Override -- cgit From 2763104566be435df158ca11a96f51503857e11f Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Mon, 19 Oct 2020 12:56:06 +0200 Subject: Unf****d build.gradle Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- build.gradle | 98 +++++++++++----------- .../implementations/GT_MetaPipeEntity_Fluid.java | 38 ++++++--- 2 files changed, 73 insertions(+), 63 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/build.gradle b/build.gradle index 2f28009a4c..4ed676b8c4 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,7 @@ buildscript { apply plugin: 'forge' apply plugin: 'idea' +apply plugin: 'java' apply plugin: 'signing' file "build.properties" withReader { @@ -29,30 +30,21 @@ version = "${config.gt.version}" group= "gregtech" archivesBaseName = "gregtech" - sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +compileJava.options.encoding("UTF-8") minecraft { version = "${config.minecraft.version}-${config.forge.version}" - runDir = "eclipse" - + runDir = "run" } -idea { module { inheritOutputDirs = true } } - -configurations { - provided - embedded - compile.extendsFrom provided, embedded -} +idea.module.inheritOutputDirs = true repositories { maven { - name 'Forge' - url 'http://files.minecraftforge.net/maven' + name = 'Forge' + url = 'http://files.minecraftforge.net/maven' } maven { name = "chickenbones" @@ -63,58 +55,58 @@ repositories { url = "http://maven.ic2.player.to/" } maven { // EnderIO & EnderCore - name 'tterrag Repo' - url "http://maven.tterrag.com" + name = 'tterrag Repo' + url = "http://maven.tterrag.com" } maven { // TConstruct - name 'DVS1 Maven FS' - url 'http://dvs1.progwml6.com/files/maven' + name = 'DVS1 Maven FS' + url = 'http://dvs1.progwml6.com/files/maven' } maven { // AppleCore - url "http://www.ryanliptak.com/maven/" + url = "http://www.ryanliptak.com/maven/" } maven { // GalacticGreg, YAMCore,.. - name 'UsrvDE' - url "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/" + name = 'UsrvDE' + url = "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases/" } ivy { - name 'gtnh_download_source_stupid_underscore_typo' - artifactPattern "http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]_[revision].[ext]" + name = 'gtnh_download_source_stupid_underscore_typo' + artifactPattern("http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]_[revision].[ext]") } ivy { - name 'gtnh_download_source' - artifactPattern "http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]-[revision].[ext]" + name = 'gtnh_download_source' + artifactPattern("http://downloads.gtnewhorizons.com/Mods_for_Jenkins/[module]-[revision].[ext]") } } dependencies { - compile "eu.usrv:YAMCore:${config.minecraft.version}-${config.yamcore.version}:deobf" - compile "tconstruct:TConstruct:${config.minecraft.version}-${config.tconstruct.version}:deobf" - compile "mantle:Mantle:${config.minecraft.version}-${config.mantle.version}:deobf" - provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") { + compileOnly "eu.usrv:YAMCore:${config.minecraft.version}-${config.yamcore.version}:deobf" + compileOnly "tconstruct:TConstruct:${config.minecraft.version}-${config.tconstruct.version}:deobf" + //compile "mantle:Mantle:${config.minecraft.version}-${config.mantle.version}:deobf" + compileOnly ("appeng:appliedenergistics2:${config.ae2.version}:dev") { exclude module: '*' } - provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" - provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev" - provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" - provided "codechicken:Translocator:${config.minecraft.version}-${config.translocators.version}:dev" - provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" - provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev" - provided "applecore:AppleCore:${config.applecore.version}:api" - provided "com.enderio.core:EnderCore:${config.enderiocore.version}:dev" - provided ("com.enderio:EnderIO:${config.enderio.version}:dev") { + compileOnly "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev" + compileOnly "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev" + compileOnly "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev" + compileOnly "codechicken:Translocator:${config.minecraft.version}-${config.translocators.version}:dev" + compile "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev" + compileOnly "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev" + compileOnly "applecore:AppleCore:${config.applecore.version}:api" + compileOnly "com.enderio.core:EnderCore:${config.enderiocore.version}:dev" + compileOnly ("com.enderio:EnderIO:${config.enderio.version}:dev") { transitive = false } - compile files("libs/Galacticraft-API-1.7-${config.gc.version}.jar") - compile files("libs/GalacticraftCore-Dev-${config.gc.version}.jar") - provided name: "Galacticraft-API", version: config.gc.version, ext: 'jar' - provided name: "GalacticraftCore-Dev", version: config.gc.version, ext: 'jar' - provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar' - provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' - provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar' - provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar' + compileOnly files("libs/Galacticraft-API-1.7-${config.gc.version}.jar") + compileOnly files("libs/GalacticraftCore-Dev-${config.gc.version}.jar") + compileOnly name: "Galacticraft-API", version: config.gc.version, ext: 'jar' + compileOnly name: "GalacticraftCore-Dev", version: config.gc.version, ext: 'jar' + compileOnly name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar' + //compileOnly name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar' + compileOnly name: 'Railcraft', version: config.railcraft.version, ext: 'jar' + compileOnly name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar' //provided name: 'ImmersiveEngineering', version: config.immeng.version, ext: 'jar' //provided name: 'magneticraft', version: config.magneticraft.version, ext: 'jar' @@ -149,14 +141,18 @@ task sourceJar(type: Jar) { task devJar(type: Jar) { from sourceSets.main.output classifier = 'dev' - manifest { - //attributes 'FMLCorePlugin': 'WhateverLoaderClass' - //attributes 'FMLCorePluginContainsFMLMod': 'true' - } +} + +task apiJar(type: Jar) { + from sourceSets.main.allSource + include("gregtech/api/**") + classifier = 'api' } artifacts { - archives devJar + archives(devJar) + archives(sourceJar) + archives(apiJar) } task signJar(dependsOn: 'reobf'){ diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 23afaa84f7..1d1b1a9ea0 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -1,8 +1,12 @@ package gregtech.api.metatileentity.implementations; +import cpw.mods.fml.common.Optional; import gregtech.GT_Mod; import gregtech.api.GregTech_API; -import gregtech.api.enums.*; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; @@ -389,36 +393,46 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { @Override public boolean canConnect(byte aSide, TileEntity tTileEntity) { - if (tTileEntity == null) return false; + if (tTileEntity == null) + return false; final byte tSide = (byte)ForgeDirection.getOrientation(aSide).getOpposite().ordinal(); final IGregTechTileEntity baseMetaTile = getBaseMetaTileEntity(); - if (baseMetaTile == null) return false; + if (baseMetaTile == null) + return false; final GT_CoverBehavior coverBehavior = baseMetaTile.getCoverBehaviorAtSide(aSide); final IGregTechTileEntity gTileEntity = (tTileEntity instanceof IGregTechTileEntity) ? (IGregTechTileEntity) tTileEntity : null; - if (coverBehavior instanceof GT_Cover_Drain) return true; - - // Tinker Construct Faucets return a null tank info, so check the class - if (GregTech_API.mTConstruct && tTileEntity instanceof tconstruct.smeltery.logic.FaucetLogic) return true; + if (coverBehavior instanceof GT_Cover_Drain || isTConstructFaucet(tTileEntity)) + return true; final IFluidHandler fTileEntity = (tTileEntity instanceof IFluidHandler) ? (IFluidHandler) tTileEntity : null; if (fTileEntity != null) { FluidTankInfo[] tInfo = fTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide)); if (tInfo != null) { - if (tInfo.length > 0) return true; - - // Translocators return a TankInfo, but it's of 0 length - so check the class if we see this pattern - if (GregTech_API.mTranslocator && tTileEntity instanceof codechicken.translocator.TileLiquidTranslocator) return true; - if (gTileEntity != null && gTileEntity.getCoverBehaviorAtSide(tSide) instanceof GT_Cover_FluidRegulator) return true; + return tInfo.length > 0 + || isTranslocator(tTileEntity) + || gTileEntity != null && gTileEntity.getCoverBehaviorAtSide(tSide) instanceof GT_Cover_FluidRegulator; } } return false; } + @Optional.Method(modid = "TConstruct") + private boolean isTConstructFaucet(TileEntity tTileEntity){ + // Tinker Construct Faucets return a null tank info, so check the class + return GregTech_API.mTConstruct && tTileEntity instanceof tconstruct.smeltery.logic.FaucetLogic; + } + + @Optional.Method(modid = "Translocator") + private boolean isTranslocator(TileEntity tTileEntity){ + // Translocators return a TankInfo, but it's of 0 length - so check the class if we see this pattern + return GregTech_API.mTranslocator && tTileEntity instanceof codechicken.translocator.TileLiquidTranslocator; + } + @Override public boolean getGT6StyleConnection() { // Yes if GT6 pipes are enabled -- cgit From 1661004faa9a3e1839b544b6cf4ac1479ea60a67 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Mon, 19 Oct 2020 14:02:28 +0200 Subject: Lift checks out of Stripped Methodes to prevent NoSuchMethodErrors Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> --- .../metatileentity/implementations/GT_MetaPipeEntity_Fluid.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 1d1b1a9ea0..8a28301fdf 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -404,7 +404,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { final GT_CoverBehavior coverBehavior = baseMetaTile.getCoverBehaviorAtSide(aSide); final IGregTechTileEntity gTileEntity = (tTileEntity instanceof IGregTechTileEntity) ? (IGregTechTileEntity) tTileEntity : null; - if (coverBehavior instanceof GT_Cover_Drain || isTConstructFaucet(tTileEntity)) + if (coverBehavior instanceof GT_Cover_Drain || (GregTech_API.mTConstruct && isTConstructFaucet(tTileEntity))) return true; final IFluidHandler fTileEntity = (tTileEntity instanceof IFluidHandler) ? (IFluidHandler) tTileEntity : null; @@ -413,7 +413,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { FluidTankInfo[] tInfo = fTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide)); if (tInfo != null) { return tInfo.length > 0 - || isTranslocator(tTileEntity) + || (GregTech_API.mTranslocator && isTranslocator(tTileEntity)) || gTileEntity != null && gTileEntity.getCoverBehaviorAtSide(tSide) instanceof GT_Cover_FluidRegulator; } @@ -424,13 +424,13 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { @Optional.Method(modid = "TConstruct") private boolean isTConstructFaucet(TileEntity tTileEntity){ // Tinker Construct Faucets return a null tank info, so check the class - return GregTech_API.mTConstruct && tTileEntity instanceof tconstruct.smeltery.logic.FaucetLogic; + return tTileEntity instanceof tconstruct.smeltery.logic.FaucetLogic; } @Optional.Method(modid = "Translocator") private boolean isTranslocator(TileEntity tTileEntity){ // Translocators return a TankInfo, but it's of 0 length - so check the class if we see this pattern - return GregTech_API.mTranslocator && tTileEntity instanceof codechicken.translocator.TileLiquidTranslocator; + return tTileEntity instanceof codechicken.translocator.TileLiquidTranslocator; } @Override -- cgit From 4b802f15c5af0f69a3275fd5951e65145083acf6 Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Sun, 25 Oct 2020 21:27:07 +0100 Subject: fix acidental perfect OC on all multies (#332) --- .../implementations/GT_MetaTileEntity_MultiBlockBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 6d2110baee..202e542c88 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -628,7 +628,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity { } else { - xEUt <<= ocTimeShift; + xEUt <<= 2; } } if(xEUt > Integer.MAX_VALUE - 1) { -- cgit From 9db3e6c47eb404abffe662573d7b1d7fa5302db6 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Tue, 10 Nov 2020 17:40:35 +0100 Subject: Cleanroom Callback Rework --- .../metatileentity/IMachineCallback.java | 7 +++ .../GT_MetaTileEntity_BasicMachine.java | 49 +++++++++++++++----- .../multi/GT_MetaTileEntity_Cleanroom.java | 53 +++++++++++++--------- 3 files changed, 77 insertions(+), 32 deletions(-) create mode 100644 src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java new file mode 100644 index 0000000000..9306ef28f3 --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMachineCallback.java @@ -0,0 +1,7 @@ +package gregtech.api.interfaces.metatileentity; + +public interface IMachineCallback { + Machinetype getCallbackBase(); + void setCallbackBase(Machinetype callback); + Class getType(); +} \ No newline at end of file diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 1c5b90f7db..97daa6fc71 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -7,6 +7,7 @@ import gregtech.api.enums.Textures; import gregtech.api.gui.GT_Container_BasicMachine; import gregtech.api.gui.GT_GUIContainer_BasicMachine; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMachineCallback; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; @@ -15,6 +16,7 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Utility; +import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -37,7 +39,8 @@ import static gregtech.api.enums.GT_Values.debugCleanroom; * This is the main construct for my Basic Machines such as the Automatic Extractor * Extend this class to make a simple Machine */ -public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_BasicTank { +public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_BasicTank implements IMachineCallback { + /** * return values for checkRecipe() */ @@ -51,8 +54,11 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public boolean mAllowInputFromOutputSide = false, mFluidTransfer = false, mItemTransfer = false, mHasBeenUpdated = false, mStuttering = false, mCharge = false, mDecharge = false; public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; public FluidStack mOutputFluid; - public String mGUIName = "", mNEIName = ""; - public GT_MetaTileEntity_MultiBlockBase mCleanroom; + public String mGUIName, mNEIName; + + + @Deprecated + public GT_MetaTileEntity_Cleanroom mCleanroom; /** * Contains the Recipe which has been previously used, or null if there was no previous Recipe, which could have been buffered */ @@ -125,6 +131,21 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B return true; } + @Override + public GT_MetaTileEntity_Cleanroom getCallbackBase() { + return this.mCleanroom; + } + + @Override + public void setCallbackBase(GT_MetaTileEntity_Cleanroom callback) { + this.mCleanroom = callback; + } + + @Override + public Class getType() { + return GT_MetaTileEntity_Cleanroom.class; + } + @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[14][17][]; @@ -449,7 +470,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B if (getDrainableStack() == null) setDrainableStack(mOutputFluid.copy()); else if (mOutputFluid.isFluidEqual(getDrainableStack())) getDrainableStack().amount += mOutputFluid.amount; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; + Arrays.fill(mOutputItems, null); mOutputFluid = null; mEUt = 0; mProgresstime = 0; @@ -518,7 +539,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B startProcess(); } else { mMaxProgresstime = 0; - for (int i = 0; i < mOutputItems.length; i++) mOutputItems[i] = null; + Arrays.fill(mOutputItems, null); mOutputFluid = null; } } @@ -584,7 +605,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B //Long EUt calculation long xEUt=aEUt; //Isnt too low EUt check? - long tempEUt = xEUt mCleanroom.mEfficiency) + if (mOutputItems[i] != null && getBaseMetaTileEntity().getRandomNumber(10000) > getCallbackBase().mEfficiency) { if (debugCleanroom) { GT_Log.out.println( "BasicMachine: Voiding output due to efficiency failure. mEfficiency = " + - mCleanroom.mEfficiency + getCallbackBase().mEfficiency ); } mOutputItems[i] = null; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java index 6ceebc3877..21a407f6e2 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java @@ -5,10 +5,10 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMachineCallback; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Log; @@ -16,9 +16,9 @@ import gregtech.api.util.GT_Recipe; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import static gregtech.api.enums.GT_Values.debugCleanroom; -import static gregtech.api.enums.GT_Values.V; public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBase { private int mHeight = -1; @@ -207,24 +207,8 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBas if (this.mMaintenanceHatches.size() != 1 || this.mEnergyHatches.size() != 1 || mDoorCount != 2 || mHullCount > 10) { return false; } - for (int dX = -x + 1; dX <= x - 1; dX++) { - for (int dZ = -z + 1; dZ <= z - 1; dZ++) { - for (int dY = -1; dY >= y + 1; dY--) { - IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(dX, dY, dZ); - if (tTileEntity != null) { - IMetaTileEntity aMetaTileEntity = tTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof GT_MetaTileEntity_BasicMachine) { - if (debugCleanroom) { - GT_Log.out.println( - "Cleanroom: Machine detected, adding pointer back to cleanroom" - ); - } - ((GT_MetaTileEntity_BasicMachine) aMetaTileEntity).mCleanroom = this; - } - } - } - } - } + + setCallbacks(x, y, z, aBaseMetaTileEntity); if (doorState) { this.mEfficiency = Math.max(0, this.mEfficiency - 200); @@ -240,7 +224,34 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBas return mPlascreteCount>=20 && mGlassCount < (int) Math.floor(ratio); } - + + private void setCallbacks(int x, int y, int z, IGregTechTileEntity aBaseMetaTileEntity){ + for (int dX = -x + 1; dX <= x - 1; dX++) + for (int dZ = -z + 1; dZ <= z - 1; dZ++) + for (int dY = -1; dY >= y + 1; dY--) { + TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityOffset(dX, dY, dZ); + + if (tTileEntity instanceof IGregTechTileEntity) { + IMetaTileEntity iMetaTileEntity = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity(); + + if (iMetaTileEntity instanceof IMachineCallback) + checkAndSetCallback((IMachineCallback) iMetaTileEntity); + + } else if (tTileEntity instanceof IMachineCallback) + checkAndSetCallback((IMachineCallback) tTileEntity); + } + } + + @SuppressWarnings("unchecked") + private void checkAndSetCallback(IMachineCallback iMachineCallback) { + if (debugCleanroom) + GT_Log.out.println( + "Cleanroom: IMachineCallback detected, checking for cleanroom: " + (iMachineCallback.getType() == this.getClass()) + ); + if (iMachineCallback.getType() == this.getClass()) + ((IMachineCallback) iMachineCallback).setCallbackBase(this); + } + @Override public boolean allowGeneralRedstoneOutput(){ return true; -- cgit