diff --git a/src/main/scala/li/cil/oc/common/block/Cable.scala b/src/main/scala/li/cil/oc/common/block/Cable.scala index 62d3ca8a0..0ff2ebbb2 100644 --- a/src/main/scala/li/cil/oc/common/block/Cable.scala +++ b/src/main/scala/li/cil/oc/common/block/Cable.scala @@ -130,13 +130,14 @@ object Cable { tileEntity match { /* TODO FMP case host: TileMultipart => - !host.partList.exists { + host.partList.forall { case part: JNormalOcclusion if !part.isInstanceOf[CablePart] => import scala.collection.convert.WrapAsScala._ val ownBounds = Iterable(new Cuboid6(cachedBounds(side.flag))) val otherBounds = part.getOcclusionBoxes - !NormalOcclusionTest(ownBounds, otherBounds) - case _ => false + NormalOcclusionTest(ownBounds, otherBounds) + case part: TFacePart => !part.solid(side.ordinal) || (part.getSlotMask & codechicken.multipart.PartMap.face(side.ordinal).mask) == 0 + case _ => true } */ case _ => true diff --git a/src/main/scala/li/cil/oc/server/network/Network.scala b/src/main/scala/li/cil/oc/server/network/Network.scala index 1c9e54a9a..ffcc5dff2 100644 --- a/src/main/scala/li/cil/oc/server/network/Network.scala +++ b/src/main/scala/li/cil/oc/server/network/Network.scala @@ -9,7 +9,7 @@ import li.cil.oc.server.network.{Node => MutableNode} import li.cil.oc.{Settings, api} import net.minecraft.tileentity.TileEntity import net.minecraftforge.common.util.ForgeDirection -import net.minecraftforge.event.world.{ChunkEvent, WorldEvent} +import net.minecraftforge.event.world.WorldEvent import scala.collection.JavaConverters._ import scala.collection.mutable import scala.collection.mutable.ArrayBuffer @@ -414,13 +414,14 @@ object Network extends api.detail.NetworkAPI { tileEntity match { /* TODO FMP case host: TileMultipart => - !host.partList.exists { + host.partList.forall { case part: JNormalOcclusion if !part.isInstanceOf[CablePart] => import scala.collection.convert.WrapAsScala._ val ownBounds = Iterable(new Cuboid6(Cable.cachedBounds(side.flag))) val otherBounds = part.getOcclusionBoxes - !NormalOcclusionTest(ownBounds, otherBounds) - case _ => false + NormalOcclusionTest(ownBounds, otherBounds) + case part: TFacePart => !part.solid(side.ordinal) || (part.getSlotMask & codechicken.multipart.PartMap.face(side.ordinal).mask) == 0 + case _ => true } */ case _ => true