/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.integration.jei.engraver; import java.awt.Color; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.google.common.collect.Lists; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; public class EngravingRecipeWrapper extends BlankRecipeWrapper { @Nonnull private final List<List<ItemStack>> input; private final ItemStack engraving; @Nonnull private final List<ItemStack> output; @Nullable private final String experienceString; public EngravingRecipeWrapper(@Nonnull List<ItemStack> input, @Nonnull ItemStack engraving, @Nonnull ItemStack output, float experience) { this.input = Collections.singletonList(input); this.engraving = engraving; this.output = Collections.singletonList(output); if (experience > 0.0) experienceString = I18n.translateToLocalFormatted("gui.jei.category.smelting.experience", experience); else experienceString = null; } @Nonnull public List<List<ItemStack>> getInputs() { return input; } @Nonnull public ItemStack getEngraving(){ return engraving; } @Nonnull public List<ItemStack> getOutputs() { return output; } @Override public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) { if (experienceString != null) { FontRenderer fontRendererObj = minecraft.fontRendererObj; fontRendererObj.drawString(experienceString, 69 - fontRendererObj.getStringWidth(experienceString) / 2, 0, Color.gray.getRGB()); } } @Override public void getIngredients(IIngredients ingredients) { List<List<ItemStack>> inputs = Lists.newArrayList(input); inputs.add(Collections.singletonList(engraving)); ingredients.setInputLists(ItemStack.class, inputs); ingredients.setOutputs(ItemStack.class, output); } }