package com.thebrokenrail.energonrelics.client.rei.reactor; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.registry.reactor.ReactorFuelRegistry; import com.thebrokenrail.energonrelics.client.rei.EnergonRelicsPlugin; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.EntryStack; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.widget.Widget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import java.util.ArrayList; import java.util.List; import java.util.Map; @Environment(EnvType.CLIENT) public class ReactorFuelCategory implements RecipeCategory { @Override public List setupDisplay(ReactorFuelDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); List widgets = new ArrayList<>(); widgets.add(Widgets.createRecipeBase(bounds)); widgets.add(Widgets.createSlot(new Point(bounds.x + 9, startPoint.y + 5)).entries(display.getInputEntries().get(0)).markInput()); Text text = new TranslatableText("category.rei." + EnergonRelics.NAMESPACE + ".reactor_fuel.multiplier", String.valueOf(display.multiplier)); widgets.add(Widgets.createLabel(new Point(bounds.x + 31, startPoint.y + 8), text).noShadow().leftAligned().color(0xFF404040, 0xFFBBBBBB)); return widgets; } @Override public int getDisplayHeight() { return 36; } @Override public Identifier getIdentifier() { return EnergonRelicsPlugin.REACTOR_FUEL; } @Override public EntryStack getLogo() { return EntryStack.create(EnergonRelics.REACTOR_INPUT_BLOCK); } @Override public String getCategoryName() { return I18n.translate("category.rei." + EnergonRelics.NAMESPACE + ".reactor_fuel.name"); } public static void register(RecipeHelper recipeHelper) { for (Map.Entry entry : ReactorFuelRegistry.entrySet()) { recipeHelper.registerDisplay(new ReactorFuelDisplay(new ItemStack(entry.getKey()), entry.getValue())); } } }