/// <summary> /// enchants the item on the table using the specified slot; also deducts XP from player /// </summary> public override bool EnchantItem(EntityPlayer par1EntityPlayer, int par2) { ItemStack itemstack = TableInventory.GetStackInSlot(0); if (EnchantLevels[par2] > 0 && itemstack != null && (par1EntityPlayer.ExperienceLevel >= EnchantLevels[par2] || par1EntityPlayer.Capabilities.IsCreativeMode)) { if (!WorldPointer.IsRemote) { List <EnchantmentData> list = EnchantmentHelper.BuildEnchantmentList(Rand, itemstack, EnchantLevels[par2]); if (list != null) { par1EntityPlayer.RemoveExperience(EnchantLevels[par2]); EnchantmentData enchantmentdata; for (IEnumerator <EnchantmentData> iterator = list.GetEnumerator(); iterator.MoveNext(); itemstack.AddEnchantment(enchantmentdata.Enchantmentobj, enchantmentdata.EnchantmentLevel)) { enchantmentdata = iterator.Current; } OnCraftMatrixChanged(TableInventory); } } return(true); } else { return(false); } }