@Override
  public void updateEntity(World world, int x, int y, int z, int meta) {
    super.updateEntity(world, x, y, z, meta);
    // ReikaJavaLibrary.pConsole(FabricationRecipes.recipes().getItemsFabricableWith(ElementTagCompound.getUniformTag(5000)));
    if (!world.isRemote && this.getCooldown() == 0 && checkTimer.checkCap()) {
      this.checkAndRequest();
    }

    // ReikaJavaLibrary.pConsole(recipe.energy+" <"+craftingTick+"> "+energy, Side.SERVER);
    if (recipe != null && energy.containsAtLeast(recipe.energy) && craftingTick > 0) {
      this.onCraftingTick(world, x, y, z);
    }
  }
  @Override
  protected void writeSyncTag(NBTTagCompound NBT) {
    super.writeSyncTag(NBT);

    NBT.setInteger("craft", craftingTick);
  }
  @Override
  protected void readSyncTag(NBTTagCompound NBT) {
    super.readSyncTag(NBT);

    craftingTick = NBT.getInteger("craft");
  }
 @Override
 public void onFirstTick(World world, int x, int y, int z) {
   super.onFirstTick(world, x, y, z);
   this.markDirty();
   // ReikaJavaLibrary.pConsole(craftingTick+":"+inv[0]+">"+recipe+","+entity);
 }
 @Override
 public void markDirty() {
   super.markDirty();
   this.setRecipe(inv[0]);
 }