diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java index 2017d22a48d..59647058a80 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java @@ -207,7 +207,6 @@ protected static TraceabilityPredicate doorPredicate() { return new TraceabilityPredicate(blockWorldState -> blockWorldState.getBlockState().getBlock() instanceof BlockDoor); } - // protected to allow easy addition of addon "cleanrooms" @Nonnull protected TraceabilityPredicate innerPredicate() { return new TraceabilityPredicate(blockWorldState -> { @@ -218,16 +217,13 @@ protected TraceabilityPredicate innerPredicate() { MetaTileEntity metaTileEntity = ((MetaTileEntityHolder) tileEntity).getMetaTileEntity(); - // blacklisted machines: mufflers, all generators, other cleanrooms - if (metaTileEntity instanceof IMufflerHatch) - return false; - if (metaTileEntity instanceof SimpleGeneratorMetaTileEntity) - return false; - if (metaTileEntity instanceof FuelMultiblockController) - return false; + // always ban other cleanrooms, can cause problems otherwise if (metaTileEntity instanceof ICleanroomProvider) return false; + if (isMachineBanned(metaTileEntity)) + return false; + // the machine does not need a cleanroom, so do nothing more if (!(metaTileEntity instanceof ICleanroomReceiver)) return true; @@ -240,6 +236,18 @@ protected TraceabilityPredicate innerPredicate() { }); } + protected boolean isMachineBanned(MetaTileEntity metaTileEntity) { + // blacklisted machines: mufflers and all generators + if (metaTileEntity instanceof IMufflerHatch) + return true; + if (metaTileEntity instanceof SimpleGeneratorMetaTileEntity) + return true; + if (metaTileEntity instanceof FuelMultiblockController) + return true; + + return false; + } + @Override protected void addDisplayText(List textList) { super.addDisplayText(textList);