package com.thebrokenrail.energonrelics.client.rei.infuser; import com.thebrokenrail.energonrelics.registry.infuser.data.InfuserOutputItem; import com.thebrokenrail.energonrelics.client.rei.EnergonRelicsPlugin; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeDisplay; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import java.util.Collections; import java.util.List; @Environment(EnvType.CLIENT) public class InfuserDisplay implements RecipeDisplay { private final EntryStack input; public final EntryStack output; public final boolean outputsItem; public final double successChance; public final long cost; public InfuserDisplay(ItemStack input, InfuserOutputItem output, double successChance, long cost) { this.input = EntryStack.create(input); this.output = EntryStack.create(output.stack.copy()); outputsItem = output.outputsItem; this.successChance = successChance; this.cost = cost; } @Override public List> getInputEntries() { return Collections.singletonList(Collections.singletonList(input)); } @Override public List> getResultingEntries() { if (outputsItem) { return Collections.singletonList(Collections.singletonList(output)); } else { return Collections.emptyList(); } } @Override public Identifier getRecipeCategory() { return EnergonRelicsPlugin.INFUSING; } @Override public List> getRequiredEntries() { return getInputEntries(); } }