package joshie.harvest.cooking.item; import joshie.harvest.api.cooking.Recipe; import joshie.harvest.cooking.CookingAPI; import joshie.harvest.core.HFTab; import joshie.harvest.core.HFTrackers; import joshie.harvest.core.base.item.ItemHFRegistry; import joshie.harvest.core.helpers.ChatHelper; import joshie.harvest.core.helpers.TextHelper; import joshie.harvest.core.lib.HFSounds; import joshie.harvest.core.util.interfaces.ICreativeSorted; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.*; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import javax.annotation.Nonnull; import static joshie.harvest.core.lib.HFModInfo.MODID; //TODO in 0.7+ Remove ItemHFFML public class ItemRecipe extends ItemHFRegistry<ItemRecipe, Recipe> implements ICreativeSorted { public ItemRecipe() { super("Recipe", CookingAPI.REGISTRY, Recipe.REGISTRY, HFTab.COOKING); } @Override public String getItemStackDisplayName(ItemStack stack) { return TextHelper.format(MODID + ".recipe.format", getObjectFromStack(stack).getDisplayName()); } @Override @Nonnull public ActionResult<ItemStack> onItemRightClick(@Nonnull ItemStack stack, World world, EntityPlayer player, EnumHand hand) { Recipe recipe = getObjectFromStack(stack); if (recipe != null && HFTrackers.getPlayerTrackerFromPlayer(player).getTracking().learnRecipe(recipe)) { if (!player.capabilities.isCreativeMode) stack.stackSize--; //Decrease the stack world.playSound(player.posX, player.posY, player.posZ, HFSounds.RECIPE, SoundCategory.NEUTRAL, 0.8F, 1F, true); if (world.isRemote) ChatHelper.displayChat(TextHelper.translate("meal.learnt") + " " + TextFormatting.YELLOW + recipe.getDisplayName()); return new ActionResult<>(EnumActionResult.SUCCESS, stack); } return new ActionResult<>(EnumActionResult.PASS, stack); } @Override public Recipe getDefaultValue() { return Recipe.REGISTRY.get(new ResourceLocation("pancake_savoury")); } @Override public int getSortValue(ItemStack stack) { return 5000; } }