@Override
 public void addCraftingToCrafters(ICrafting iCrafting) {
   super.addCraftingToCrafters(iCrafting);
   iCrafting.sendProgressBarUpdate(this, 0, this.tileEntityResearchStation.itemLearnTime);
   if (this.tileEntityResearchStation.isItemKnown) {
     iCrafting.sendProgressBarUpdate(this, 1, 1);
   } else {
     iCrafting.sendProgressBarUpdate(this, 1, 0);
   }
 }
  @Override
  public void detectAndSendChanges() {
    super.detectAndSendChanges();

    for (Object crafter : this.crafters) {
      ICrafting iCrafting = (ICrafting) crafter;

      if (this.lastItemLearnTime != this.tileEntityResearchStation.itemLearnTime) {
        iCrafting.sendProgressBarUpdate(this, 0, this.tileEntityResearchStation.itemLearnTime);
      }

      if (this.isItemStackKnown != this.tileEntityResearchStation.isItemKnown) {
        if (this.tileEntityResearchStation.isItemKnown) {
          iCrafting.sendProgressBarUpdate(this, 1, 1);
        } else {
          iCrafting.sendProgressBarUpdate(this, 1, 0);
        }
      }
    }

    this.lastItemLearnTime = this.tileEntityResearchStation.itemLearnTime;
    this.isItemStackKnown = this.tileEntityResearchStation.isItemKnown;
  }