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 a31526a80..288d7cf48 100644 --- a/src/main/scala/li/cil/oc/common/block/Cable.scala +++ b/src/main/scala/li/cil/oc/common/block/Cable.scala @@ -134,7 +134,7 @@ object Cable { private def canConnectFromSideIM(tileEntity: TileEntity, side: ForgeDirection) = tileEntity match { - case cable: tileentity.Cable => cable.ImmibisMicroblocks_isSideOpen(side.ordinal) + case im: tileentity.traits.ImmibisMicroblock => im.ImmibisMicroblocks_isSideOpen(side.ordinal) case _ => true } } \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/common/tileentity/Cable.scala b/src/main/scala/li/cil/oc/common/tileentity/Cable.scala index 7e2f19a09..7896eac14 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Cable.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Cable.scala @@ -3,21 +3,10 @@ package li.cil.oc.common.tileentity import li.cil.oc.api.network.Visibility import li.cil.oc.{api, common} -class Cable extends traits.Environment with traits.NotAnalyzable { +class Cable extends traits.Environment with traits.NotAnalyzable with traits.ImmibisMicroblock { val node = api.Network.newNode(this, Visibility.None).create() override def canUpdate = false override def getRenderBoundingBox = common.block.Cable.bounds(world, x, y, z).offset(x, y, z) - - // ----------------------------------------------------------------------- // - // Immibis Microblock support. - - val ImmibisMicroblocks_TransformableTileEntityMarker = null - - def ImmibisMicroblocks_isSideOpen(side: Int) = true - - def ImmibisMicroblocks_onMicroblocksChanged() { - api.Network.joinOrCreateNetwork(this) - } } diff --git a/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala b/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala index 047b717c5..6884a6d14 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/Keyboard.scala @@ -8,7 +8,7 @@ import net.minecraft.entity.player.EntityPlayer import net.minecraft.nbt.NBTTagCompound import net.minecraftforge.common.ForgeDirection -class Keyboard extends traits.Environment with traits.Rotatable with SidedEnvironment with Analyzable { +class Keyboard extends traits.Environment with traits.Rotatable with traits.ImmibisMicroblock with SidedEnvironment with Analyzable { override def validFacings = ForgeDirection.VALID_DIRECTIONS val keyboard = { diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/ImmibisMicroblock.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/ImmibisMicroblock.scala new file mode 100644 index 000000000..48bcae2f7 --- /dev/null +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/ImmibisMicroblock.scala @@ -0,0 +1,13 @@ +package li.cil.oc.common.tileentity.traits + +import li.cil.oc.api + +trait ImmibisMicroblock extends TileEntity { + val ImmibisMicroblocks_TransformableTileEntityMarker = null + + def ImmibisMicroblocks_isSideOpen(side: Int) = true + + def ImmibisMicroblocks_onMicroblocksChanged() { + api.Network.joinOrCreateNetwork(this) + } +} 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 b49370621..b26da6cbf 100644 --- a/src/main/scala/li/cil/oc/server/network/Network.scala +++ b/src/main/scala/li/cil/oc/server/network/Network.scala @@ -440,7 +440,7 @@ object Network extends api.detail.NetworkAPI { private def canConnectFromSideIM(tileEntity: TileEntity, side: ForgeDirection) = tileEntity match { - case cable: tileentity.Cable => cable.ImmibisMicroblocks_isSideOpen(side.ordinal) + case im: tileentity.traits.ImmibisMicroblock => im.ImmibisMicroblocks_isSideOpen(side.ordinal) case _ => true }