Esempio n. 1
0
 @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;
 }
Esempio n. 2
0
 @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());
       }
     }
   }
 }