package com.thebrokenrail.energonrelics.client.rei; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserEntry; import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserOutputItem; import com.thebrokenrail.energonrelics.block.entity.infuser.InfuserRegistry; import com.thebrokenrail.energonrelics.util.BooleanIterator; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.api.plugins.REIPluginV0; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import java.util.List; import java.util.Map; @Environment(EnvType.CLIENT) public class EnergonRelicsPlugin implements REIPluginV0 { public static final Identifier INFUSER = new Identifier(EnergonRelics.NAMESPACE, "plugin/infuser"); @Override public Identifier getPluginIdentifier() { return new Identifier(EnergonRelics.NAMESPACE, "plugin"); } @Override public void registerOthers(RecipeHelper recipeHelper) { recipeHelper.registerWorkingStations(INFUSER, EntryStack.create(EnergonRelics.INFUSER_BLOCK.asItem())); } @Override public void registerRecipeDisplays(RecipeHelper recipeHelper) { for (Map.Entry entry : InfuserRegistry.entrySet()) { BooleanIterator.run(isFail -> { List list = entry.getValue().getOutputItems(isFail); for (InfuserOutputItem item : list) { recipeHelper.registerDisplay(new InfuserDisplay(new ItemStack(entry.getKey()), item, entry.getValue().getSingleChance(isFail), entry.getValue().cost)); } }); } } @Override public void registerPluginCategories(RecipeHelper recipeHelper) { recipeHelper.registerCategories(new InfuserCategory()); } }