aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/compatibility/emi/SkyblockEmiRecipe.java
blob: c0e69d632ee044600a2ab8488fa54c3c163aa00e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package de.hysky.skyblocker.compatibility.emi;

import dev.emi.emi.api.recipe.EmiCraftingRecipe;
import dev.emi.emi.api.recipe.EmiRecipeCategory;
import dev.emi.emi.api.stack.Comparison;
import dev.emi.emi.api.stack.EmiIngredient;
import dev.emi.emi.api.stack.EmiStack;
import dev.emi.emi.api.widget.WidgetHolder;
import de.hysky.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe;
import de.hysky.skyblocker.utils.ItemUtils;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;

public class SkyblockEmiRecipe extends EmiCraftingRecipe {
    private final String craftText;

    public SkyblockEmiRecipe(SkyblockCraftingRecipe recipe) {
        super(recipe.getGrid().stream().map(EmiStack::of).map(EmiIngredient.class::cast).toList(), EmiStack.of(recipe.getResult()).comparison(Comparison.compareNbt()), Identifier.of("skyblock", ItemUtils.getItemId(recipe.getResult()).toLowerCase().replace(';', '_')));
        this.craftText = recipe.getCraftText();
    }

    @Override
    public EmiRecipeCategory getCategory() {
        return SkyblockerEMIPlugin.SKYBLOCK;
    }

    @Override
    public int getDisplayHeight() {
        return super.getDisplayHeight() + (craftText.isEmpty() ? 0 : 10);
    }

    @Override
    public void addWidgets(WidgetHolder widgets) {
        super.addWidgets(widgets);
        widgets.addText(Text.of(craftText), 59 - MinecraftClient.getInstance().textRenderer.getWidth(craftText) / 2, 55, 0xFFFFFF, true);
    }
}