diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index 0e2a18185..b8ff9bf3a 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -19,11 +19,6 @@ repositories { mavenLocal() - maven { - name = "storagedrawers" - url = "https://dl.bintray.com/jaquadro/dev/" - } - maven { name "Mobius" url "http://mobiusstrip.eu/maven" @@ -39,6 +34,11 @@ repositories { url "http://maven.mcmoddev.com" } + maven { + name "Ellpeck" + url "https://maven.ellpeck.de" + } + maven { name = "IC2 repo" url = "http://maven.ic2.player.to" @@ -59,11 +59,6 @@ repositories { url "http://maven.k-4u.nl/" } - maven { // Hwyla - name 'tehnut' - url "http://tehnut.info/maven" - } - maven { // CraftTweaker name 'jared maven' url "http://maven.blamejared.com/" @@ -102,6 +97,7 @@ dependencies { compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}" compileOnly "inventory-tweaks:InventoryTweaks:${inventorytweaks_version}:api" compileOnly "team.chisel.ctm:CTM:${ctm_version}" + compileOnly "de.ellpeck.actuallyadditions:ActuallyAdditions:1.12.2-r152.16:api" // at runtime, use the full JEI jar runtime "mezz.jei:jei_${minecraft_version}:${jei_version}" diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index cf48a99b5..bbc384211 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -29,6 +29,7 @@ import appeng.util.*; import appeng.util.inv.*; import com.google.common.collect.ImmutableSet; +import de.ellpeck.actuallyadditions.api.tile.IPhantomTile; import gregtech.api.block.machines.BlockMachine; import gregtech.api.metatileentity.MetaTileEntity; import net.minecraft.block.Block; @@ -1095,16 +1096,26 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn { if( this.isBlocking() ) { - if( te.getBlockType().getRegistryName().getResourceDomain().equals( "gregtech" ) ) + IPhantomTile phantomTE = null; + if (Loader.isModLoaded( "actuallyadditions" ) && te instanceof IPhantomTile ) { - GTad = GTCEInventoryAdaptor.getAdaptor( te, s.getOpposite() ); - if( GTad != null && !invIsBlockedGTCE( GTad ) ) + phantomTE = ( (IPhantomTile) te ); + if( phantomTE.hasBoundPosition() ) { - visitedFaces.remove( s ); - continue; + TileEntity phantom = w.getTileEntity( phantomTE.getBoundPosition() ); + if( phantom != null && isGTCEblocked( phantom, s ) ) + { + visitedFaces.remove( s ); + continue; + } } } - else if ( invIsBlocked( ad ) ) + if( isGTCEblocked( te, s ) ) + { + visitedFaces.remove( s ); + continue; + } + if( invIsBlocked( ad ) ) { visitedFaces.remove( s ); continue; @@ -1152,19 +1163,33 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn for( final EnumFacing s : possibleDirections ) { final TileEntity te = w.getTileEntity( tile.getPos().offset( s ) ); + IPhantomTile phantomTE = null; final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() ); if( ad != null ) { - if( te.getBlockType().getRegistryName().getResourceDomain().equals( "gregtech" ) ) + if (Loader.isModLoaded( "actuallyadditions" )) { - GTad = GTCEInventoryAdaptor.getAdaptor( te, s.getOpposite() ); - if( GTad != null && !invIsBlockedGTCE( GTad ) ) + if( te instanceof IPhantomTile ) { - allAreBusy = false; - break; + phantomTE = ( (IPhantomTile) te ); + if( phantomTE.hasBoundPosition() && phantomTE.isBoundThingInRange()) + { + TileEntity phantom = w.getTileEntity( phantomTE.getBoundPosition() ); + if( phantom != null && isGTCEblocked( phantom, s ) ) + { + allAreBusy = false; + break; + } + } } } + else if( !isGTCEblocked(te,s) ) + { + allAreBusy = false; + break; + } + else if( !invIsBlocked( ad ) ) { allAreBusy = false; @@ -1177,6 +1202,16 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn return busy; } + boolean isGTCEblocked(TileEntity te, EnumFacing s) + { + if( te.getBlockType().getRegistryName().getResourceDomain().equals( "gregtech" ) ) + { + GTad = GTCEInventoryAdaptor.getAdaptor( te, s.getOpposite() ); + return invIsBlockedGTCE( GTad ); + } + return false; + } + private boolean sameGrid( final IGrid grid ) throws GridAccessException { return grid == this.gridProxy.getGrid();