@Override
  public boolean canInteractWith(EntityPlayer entityplayer) {
    if (isBlock) {
      return tileEntity.isUseableByPlayer(entityplayer);
    }

    return true;
  }
  @Override
  public void onCraftGuiClosed(EntityPlayer entityplayer) {
    super.onCraftGuiClosed(entityplayer);

    if (isBlock) {
      tileEntity.closeChest();
      tileEntity.playersUsing.remove(entityplayer);
    } else {
      itemInventory.closeChest();
    }
  }
  public ContainerElectricChest(
      InventoryPlayer inventory, TileEntityElectricChest tentity, IInventory inv, boolean b) {
    tileEntity = tentity;
    itemInventory = inv;
    isBlock = b;

    if (isBlock) {
      tileEntity.openChest();
      tileEntity.playersUsing.add(inventory.player);
    } else {
      itemInventory.openChest();
    }

    for (int slotY = 0; slotY < 6; slotY++) {
      for (int slotX = 0; slotX < 9; slotX++) {
        addSlotToContainer(
            new SlotElectricChest(getInv(), slotX + slotY * 9, 8 + slotX * 18, 26 + slotY * 18));
      }
    }

    addSlotToContainer(new SlotDischarge(getInv(), 54, 180, 11));

    int slotX;

    for (slotX = 0; slotX < 3; ++slotX) {
      for (int slotY = 0; slotY < 9; ++slotY) {
        addSlotToContainer(
            new SlotElectricChest(
                inventory, slotY + slotX * 9 + 9, 8 + slotY * 18, 148 + slotX * 18));
      }
    }

    for (slotX = 0; slotX < 9; ++slotX) {
      addSlotToContainer(new SlotElectricChest(inventory, slotX, 8 + slotX * 18, 206));
    }
  }