@Override public boolean onBlockActivated( EntityPlayer player, RaytraceResult res, List<RaytraceResult> all) { if (ToolUtil.isToolEquipped(player)) { if (!getBundle().getEntity().getWorldObj().isRemote) { if (res != null && res.component != null) { ForgeDirection connDir = res.component.dir; ForgeDirection faceHit = ForgeDirection.getOrientation(res.movingObjectPosition.sideHit); if (connDir == ForgeDirection.UNKNOWN || connDir == faceHit) { if (getConnectionMode(faceHit) == ConnectionMode.DISABLED) { setConnectionMode(faceHit, ConnectionMode.IN_OUT); return true; } return ConduitUtil.joinConduits(this, faceHit); } else if (externalConnections.contains(connDir)) { setConnectionMode(connDir, getNextConnectionMode(connDir)); return true; } else if (containsConduitConnection(connDir)) { ConduitUtil.disconectConduits(this, connDir); return true; } } } } return false; }
@Override public void onAddedToBundle() { for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { TileEntity te = getLocation().getLocation(dir).getTileEntity(getBundle().getWorld()); if (te instanceof TileConduitBundle) { IMEConduit cond = ((TileConduitBundle) te).getConduit(IMEConduit.class); if (cond != null) { cond.setConnectionMode(dir.getOpposite(), ConnectionMode.IN_OUT); ConduitUtil.joinConduits(cond, dir.getOpposite()); } } } }