/* * Roughly Enough Items by Danielshe. * Licensed under the MIT License. */ package me.shedaniel.rei.plugin.brewing; import com.google.common.collect.Lists; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class DefaultBrewingDisplay implements RecipeDisplay { private EntryStack input, output; private List reactant; public DefaultBrewingDisplay(ItemStack input, Ingredient reactant, ItemStack output) { this.input = EntryStack.create(input).setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, stack -> Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.input"))); this.reactant = new ArrayList<>(); for (ItemStack stack : reactant.getMatchingStacksClient()) { EntryStack entryStack = EntryStack.create(stack); entryStack.setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, s -> Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.reactant"))); this.reactant.add(entryStack); } this.output = EntryStack.create(output).setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, stack -> Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"))); } @Override public List> getInputEntries() { return Lists.newArrayList(Collections.singletonList(input), reactant); } @Override public List getOutputEntries() { return Collections.singletonList(output); } @Override public Identifier getRecipeCategory() { return DefaultPlugin.BREWING; } public List getOutput(int slot) { List stack = new ArrayList<>(); for (int i = 0; i < slot * 2; i++) stack.add(EntryStack.empty()); for (int i = 0; i < 6 - slot * 2; i++) stack.addAll(getOutputEntries()); return stack; } @Override public List> getRequiredEntries() { return getInputEntries(); } }