Re-add JEI support

This commit is contained in:
Mrbysco 2024-03-03 19:02:05 +01:00
parent 7af0f214f0
commit f8c2f53b6a
4 changed files with 255 additions and 272 deletions

View file

@ -1,97 +1,77 @@
///* /*
// * This file ("EmpowererRecipeCategory.java") is part of the Actually Additions mod for Minecraft. * This file ("EmpowererRecipeCategory.java") is part of the Actually Additions mod for Minecraft.
// * It is created and owned by Ellpeck and distributed * It is created and owned by Ellpeck and distributed
// * under the Actually Additions License to be found at * under the Actually Additions License to be found at
// * http://ellpeck.de/actaddlicense * http://ellpeck.de/actaddlicense
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions * View the source code at https://github.com/Ellpeck/ActuallyAdditions
// * *
// * © 2015-2017 Ellpeck * © 2015-2017 Ellpeck
// */ */
//
//package de.ellpeck.actuallyadditions.mod.jei; package de.ellpeck.actuallyadditions.mod.jei;
//
//import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
//import de.ellpeck.actuallyadditions.mod.crafting.EmpowererRecipe; import de.ellpeck.actuallyadditions.mod.crafting.EmpowererRecipe;
//import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
//import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
//import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.drawable.IDrawable;
//import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.gui.drawable.IDrawableStatic;
//import mezz.jei.api.gui.drawable.IDrawableStatic; import mezz.jei.api.helpers.IGuiHelper;
//import mezz.jei.api.helpers.IGuiHelper; import mezz.jei.api.recipe.IFocusGroup;
//import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.RecipeIngredientRole;
//import mezz.jei.api.recipe.category.IRecipeCategory; import mezz.jei.api.recipe.RecipeType;
//import net.minecraft.client.resources.language.I18n; import mezz.jei.api.recipe.category.IRecipeCategory;
//import net.minecraft.resources.ResourceLocation; import net.minecraft.client.Minecraft;
//import net.minecraft.world.item.ItemStack; import net.minecraft.client.multiplayer.ClientLevel;
// import net.minecraft.core.RegistryAccess;
//import java.util.ArrayList; import net.minecraft.network.chat.Component;
//import java.util.Arrays; import net.minecraft.resources.ResourceLocation;
//
//public class EmpowererRecipeCategory implements IRecipeCategory<EmpowererRecipe> { public class EmpowererRecipeCategory implements IRecipeCategory<EmpowererRecipe> {
//
// public static final ResourceLocation ID = new ResourceLocation(ActuallyAdditions.MODID, "empowerer_jei"); public static final ResourceLocation ID = new ResourceLocation(ActuallyAdditions.MODID, "empowerer_jei");
//
// private final IDrawableStatic background; private final IDrawableStatic background;
//
// public EmpowererRecipeCategory(IGuiHelper helper) { public EmpowererRecipeCategory(IGuiHelper helper) {
// this.background = helper.drawableBuilder(AssetUtil.getGuiLocation("gui_nei_empowerer"), 0, 0, 135, 80).setTextureSize(256,256).build(); this.background = helper.drawableBuilder(AssetUtil.getGuiLocation("gui_nei_empowerer"), 0, 0, 135, 80).setTextureSize(256,256).build();
// } }
//
// @Override @Override
// public ResourceLocation getUid() { public RecipeType<EmpowererRecipe> getRecipeType() {
// return ID; return JEIActuallyAdditionsPlugin.EMPOWERER;
// } }
//
// @Override @Override
// public Class<? extends EmpowererRecipe> getRecipeClass() { public Component getTitle() {
// return EmpowererRecipe.class; return Component.translatable("container.actuallyadditions.empowerer");
// } }
//
// @Override @Override
// public String getTitle() { public IDrawable getBackground() {
// return I18n.get("container.actuallyadditions.empowerer"); return background;
// } }
//
// @Override @Override
// public IDrawable getBackground() { public IDrawable getIcon() {
// return background; return null;
// } }
//
// @Override @Override
// public IDrawable getIcon() { public void setRecipe(IRecipeLayoutBuilder builder, EmpowererRecipe recipe, IFocusGroup focuses) {
// return null; Minecraft minecraft = Minecraft.getInstance();
// } ClientLevel level = minecraft.level;
// if (level == null) {
// @Override throw new NullPointerException("level must not be null.");
// public void setIngredients(EmpowererRecipe empowererRecipe, IIngredients ingredients) { }
// ArrayList<ItemStack> input = new ArrayList<>(); RegistryAccess registryAccess = level.registryAccess();
// input.addAll(Arrays.asList(empowererRecipe.getInput().getItems()));
// input.addAll(Arrays.asList(empowererRecipe.getStandOne().getItems())); builder.addSlot(RecipeIngredientRole.INPUT, 32, 32).addIngredients(recipe.getInput());
// input.addAll(Arrays.asList(empowererRecipe.getStandTwo().getItems())); builder.addSlot(RecipeIngredientRole.INPUT, 2, 32).addIngredients(recipe.getStandOne());
// input.addAll(Arrays.asList(empowererRecipe.getStandThree().getItems())); builder.addSlot(RecipeIngredientRole.INPUT, 32, 2).addIngredients(recipe.getStandTwo());
// input.addAll(Arrays.asList(empowererRecipe.getStandFour().getItems())); builder.addSlot(RecipeIngredientRole.INPUT, 62, 32).addIngredients(recipe.getStandThree());
// ingredients.setInputs(VanillaTypes.ITEM, input); builder.addSlot(RecipeIngredientRole.INPUT, 32, 62).addIngredients(recipe.getStandFour());
// ingredients.setOutput(VanillaTypes.ITEM, empowererRecipe.getOutput());
// } builder.addSlot(RecipeIngredientRole.OUTPUT, 113, 32).addItemStack(recipe.getResultItem(registryAccess));
// }
// @Override }
// public void setRecipe(IRecipeLayout recipeLayout, EmpowererRecipe recipe, IIngredients ingredients) {
// recipeLayout.getItemStacks().init(0, true, 31, 31);
// recipeLayout.getItemStacks().set(0, Arrays.asList(recipe.getInput().getItems()));
//
// recipeLayout.getItemStacks().init(1, true, 1, 31);
// recipeLayout.getItemStacks().set(1, Arrays.asList(recipe.getStandOne().getItems()));
//
// recipeLayout.getItemStacks().init(2, true, 31, 1);
// recipeLayout.getItemStacks().set(2, Arrays.asList(recipe.getStandTwo().getItems()));
//
// recipeLayout.getItemStacks().init(3, true, 61, 31);
// recipeLayout.getItemStacks().set(3, Arrays.asList(recipe.getStandThree().getItems()));
//
// recipeLayout.getItemStacks().init(4, true, 31, 61);
// recipeLayout.getItemStacks().set(4, Arrays.asList(recipe.getStandFour().getItems()));
//
// recipeLayout.getItemStacks().init(5, false, 112, 31);
// recipeLayout.getItemStacks().set(5, recipe.getResultItem());
// }
//}

View file

@ -1,84 +1,88 @@
//package de.ellpeck.actuallyadditions.mod.jei; package de.ellpeck.actuallyadditions.mod.jei;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.crafting.FermentingRecipe;
import de.ellpeck.actuallyadditions.mod.inventory.gui.FluidDisplay;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
import mezz.jei.api.gui.drawable.IDrawable;
import mezz.jei.api.gui.drawable.IDrawableStatic;
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
import mezz.jei.api.helpers.IGuiHelper;
import mezz.jei.api.recipe.IFocusGroup;
import mezz.jei.api.recipe.RecipeIngredientRole;
import mezz.jei.api.recipe.RecipeType;
import mezz.jei.api.recipe.category.IRecipeCategory;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
public class FermentingCategory implements IRecipeCategory<FermentingRecipe> {
private final IDrawableStatic background;
private final IDrawableStatic fluidBackground;
public FermentingCategory(IGuiHelper guiHelper) {
background = guiHelper.drawableBuilder(new ResourceLocation(ActuallyAdditions.MODID, "textures/gui/gui_fermenting_barrel.png"), 41, 4, 94, 86).setTextureSize(256,256).build();
fluidBackground = guiHelper.drawableBuilder(AssetUtil.GUI_INVENTORY_LOCATION, 0, 171, 18, 85).build();
}
@Override
public RecipeType<FermentingRecipe> getRecipeType() {
return JEIActuallyAdditionsPlugin.FERMENTING;
}
@Override
public Component getTitle() {
return Component.literal("Fermenting Recipe");
}
@Override
public IDrawable getBackground() {
return background;
}
@Override
public IDrawable getIcon() {
return null;
}
@Override
public void setRecipe(IRecipeLayoutBuilder builder, FermentingRecipe recipe, IFocusGroup focuses) {
// int maxFluid = Math.max(FluidType.BUCKET_VOLUME, Math.max(recipe.getInput().getAmount(), recipe.getOutput().getAmount()));
// recipe.setInputDisplay(new FluidDisplay(19, 1, recipe.getInput(), maxFluid, false));
// recipe.setOutputDisplay(new FluidDisplay(19+38, 1, recipe.getOutput(), maxFluid, false));
FluidStack input = recipe.getInput();
int height = (int)(83D / 1000 * input.getAmount());
int offset = 83 - height;
builder.addSlot(RecipeIngredientRole.INPUT, 20, 1 + offset)
.addFluidStack(input.getFluid(), input.getAmount())
.setFluidRenderer(input.getAmount(), false, 16, height)
.setBackground(fluidBackground, -1, -1 - offset);
FluidStack output = recipe.getOutput();
height = (int)(83D / 1000 * input.getAmount());
offset = 83 - height;;
builder.addSlot(RecipeIngredientRole.OUTPUT, 20+38, 1 + offset)
.addFluidStack(output.getFluid(), output.getAmount())
.setFluidRenderer(output.getAmount(), false, 16, height)
.setBackground(fluidBackground, -1, -1 - offset);
}
@Override
public void draw(FermentingRecipe recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) {
// IRecipeCategory.super.draw(recipe, recipeSlotsView, guiGraphics, mouseX, mouseY);
// recipe.getInputDisplay().ifPresent(display -> {
// display.draw(guiGraphics);
// display.render(guiGraphics, (int) mouseX, (int) mouseY);
// });
// //
//import com.mojang.blaze3d.vertex.PoseStack; // recipe.getOutputDisplay().ifPresent(display -> {
//import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; // display.draw(guiGraphics);
//import de.ellpeck.actuallyadditions.mod.crafting.FermentingRecipe; // display.render(guiGraphics, (int) mouseX, (int) mouseY);
//import de.ellpeck.actuallyadditions.mod.inventory.gui.FluidDisplay; // });
//import mezz.jei.api.constants.VanillaTypes; //TODO draw the progress indicator, scaled to the recipe duration.
//import mezz.jei.api.gui.IRecipeLayout; }
//import mezz.jei.api.gui.drawable.IDrawable; }
//import mezz.jei.api.gui.drawable.IDrawableStatic;
//import mezz.jei.api.helpers.IGuiHelper;
//import mezz.jei.api.ingredients.IIngredients;
//import mezz.jei.api.recipe.category.IRecipeCategory;
//import net.minecraft.resources.ResourceLocation;
//import net.minecraftforge.fluids.FluidAttributes;
//
//import javax.annotation.Nonnull;
//
//public class FermentingCategory implements IRecipeCategory<FermentingRecipe> {
// public static final ResourceLocation ID = new ResourceLocation(ActuallyAdditions.MODID, "fermenting_jei");
//
// private final IDrawableStatic background;
//
// public FermentingCategory(IGuiHelper guiHelper) {
// background = guiHelper.drawableBuilder(new ResourceLocation(ActuallyAdditions.MODID, "textures/gui/gui_fermenting_barrel.png"), 41, 4, 94, 86).setTextureSize(256,256).build();
// }
//
// @Override
// public ResourceLocation getUid() {
// return ID;
// }
//
// @Override
// public Class<? extends FermentingRecipe> getRecipeClass() {
// return FermentingRecipe.class;
// }
//
// @Override
// public String getTitle() {
// return "Fermenting Recipe";
// }
//
// @Override
// public IDrawable getBackground() {
// return background;
// }
//
// @Override
// public IDrawable getIcon() {
// return null;
// }
//
// @Override
// public void setIngredients(@Nonnull FermentingRecipe fermentingRecipe, @Nonnull IIngredients ingredients) {
// ingredients.setInput(VanillaTypes.FLUID, fermentingRecipe.getInput());
// ingredients.setOutput(VanillaTypes.FLUID, fermentingRecipe.getOutput());
// }
//
// @Override
// public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull FermentingRecipe fermentingRecipe, @Nonnull IIngredients ingredients) {
// int maxFluid = Math.max(FluidType.BUCKET_VOLUME, Math.max(fermentingRecipe.getInput().getAmount(), fermentingRecipe.getOutput().getAmount()));
//
// fermentingRecipe.setInputDisplay(new FluidDisplay(19, 1, fermentingRecipe.getInput(), maxFluid, false));
// fermentingRecipe.setOutputDisplay(new FluidDisplay(19+38, 1, fermentingRecipe.getOutput(), maxFluid, false));
// }
//
// @Override
// public void draw(FermentingRecipe recipe, PoseStack matrixStack, double mouseX, double mouseY) {
// IRecipeCategory.super.draw(recipe, matrixStack, mouseX, mouseY);
//
// recipe.getInputDisplay().ifPresent(display -> {
// display.draw(matrixStack);
// display.render(matrixStack, (int) mouseX, (int) mouseY);
// });
//
// recipe.getOutputDisplay().ifPresent(display -> {
// display.draw(matrixStack);
// display.render(matrixStack, (int) mouseX, (int) mouseY);
// });
//
//
// //TODO draw the progress indicator, scaled to the recipe duration.
// }
//}

View file

@ -11,11 +11,17 @@
package de.ellpeck.actuallyadditions.mod.jei; package de.ellpeck.actuallyadditions.mod.jei;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import de.ellpeck.actuallyadditions.mod.crafting.ActuallyRecipes;
import de.ellpeck.actuallyadditions.mod.crafting.EmpowererRecipe;
import de.ellpeck.actuallyadditions.mod.crafting.FermentingRecipe;
import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
import mezz.jei.api.IModPlugin; import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin; import mezz.jei.api.JeiPlugin;
import mezz.jei.api.constants.RecipeTypes; import mezz.jei.api.constants.RecipeTypes;
import mezz.jei.api.helpers.IJeiHelpers; import mezz.jei.api.helpers.IJeiHelpers;
import mezz.jei.api.recipe.RecipeType;
import mezz.jei.api.registration.IRecipeCatalystRegistration; import mezz.jei.api.registration.IRecipeCatalystRegistration;
import mezz.jei.api.registration.IRecipeCategoryRegistration; import mezz.jei.api.registration.IRecipeCategoryRegistration;
import mezz.jei.api.registration.IRecipeRegistration; import mezz.jei.api.registration.IRecipeRegistration;
@ -32,13 +38,17 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
return ID; return ID;
} }
public static final RecipeType<FermentingRecipe> FERMENTING = RecipeType.create(ActuallyAdditions.MODID, "fermenting", FermentingRecipe.class);
public static final RecipeType<LaserRecipe> LASER = RecipeType.create(ActuallyAdditions.MODID, "laser", LaserRecipe.class);
public static final RecipeType<EmpowererRecipe> EMPOWERER = RecipeType.create(ActuallyAdditions.MODID, "empowerer", EmpowererRecipe.class);
@Override @Override
public void registerCategories(IRecipeCategoryRegistration registry) { public void registerCategories(IRecipeCategoryRegistration registry) {
IJeiHelpers helpers = registry.getJeiHelpers(); IJeiHelpers helpers = registry.getJeiHelpers();
// registry.addRecipeCategories(new FermentingCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat registry.addRecipeCategories(new FermentingCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat
// registry.addRecipeCategories(new LaserRecipeCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat registry.addRecipeCategories(new LaserRecipeCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat
// registry.addRecipeCategories(new EmpowererRecipeCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat registry.addRecipeCategories(new EmpowererRecipeCategory(helpers.getGuiHelper())); //TODO: re-enable after refactor jei compat
//registry.addRecipeCategories(new CoffeeMachineRecipeCategory(helpers.getGuiHelper()), new CompostRecipeCategory(helpers.getGuiHelper()), new CrusherRecipeCategory(helpers.getGuiHelper()), new ReconstructorRecipeCategory(helpers.getGuiHelper()), new EmpowererRecipeCategory(helpers.getGuiHelper()), new BookletRecipeCategory(helpers.getGuiHelper())); //registry.addRecipeCategories(new CoffeeMachineRecipeCategory(helpers.getGuiHelper()), new CompostRecipeCategory(helpers.getGuiHelper()), new CrusherRecipeCategory(helpers.getGuiHelper()), new ReconstructorRecipeCategory(helpers.getGuiHelper()), new EmpowererRecipeCategory(helpers.getGuiHelper()), new BookletRecipeCategory(helpers.getGuiHelper()));
} }
@ -46,9 +56,9 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
@Override @Override
public void registerRecipeCatalysts(IRecipeCatalystRegistration registry) { public void registerRecipeCatalysts(IRecipeCatalystRegistration registry) {
registry.addRecipeCatalyst(new ItemStack(ActuallyItems.CRAFTER_ON_A_STICK.get()), RecipeTypes.CRAFTING); registry.addRecipeCatalyst(new ItemStack(ActuallyItems.CRAFTER_ON_A_STICK.get()), RecipeTypes.CRAFTING);
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.FERMENTING_BARREL.getItem()), FermentingCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.FERMENTING_BARREL.getItem()), FERMENTING); //TODO: re-enable after refactor jei compat
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.getItem()), LaserRecipeCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.getItem()), LASER); //TODO: re-enable after refactor jei compat
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.EMPOWERER.getItem()), EmpowererRecipeCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.EMPOWERER.getItem()), EMPOWERER); //TODO: re-enable after refactor jei compat
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockFurnaceDouble.get()), VanillaRecipeCategoryUid.SMELTING); // registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockFurnaceDouble.get()), VanillaRecipeCategoryUid.SMELTING);
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockGrinder.get()), CrusherRecipeCategory.NAME); // registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockGrinder.get()), CrusherRecipeCategory.NAME);
@ -64,9 +74,9 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
public void registerRecipes(IRecipeRegistration registry) { public void registerRecipes(IRecipeRegistration registry) {
Level level = Minecraft.getInstance().level; Level level = Minecraft.getInstance().level;
// registry.addRecipes(level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.FERMENTING), FermentingCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipes(FERMENTING, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.FERMENTING.get())); //TODO: re-enable after refactor jei compat
// registry.addRecipes(level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.LASER), LaserRecipeCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipes(LASER, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.LASER.get())); //TODO: re-enable after refactor jei compat
// registry.addRecipes(level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.EMPOWERING), EmpowererRecipeCategory.ID); //TODO: re-enable after refactor jei compat registry.addRecipes(EMPOWERER, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.EMPOWERING.get())); //TODO: re-enable after refactor jei compat
//registry.addRecipes(ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA, BookletRecipeCategory.NAME); //registry.addRecipes(ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA, BookletRecipeCategory.NAME);

View file

@ -1,83 +1,72 @@
///* /*
// * This file ("ReconstructorRecipeCategory.java") is part of the Actually Additions mod for Minecraft. * This file ("ReconstructorRecipeCategory.java") is part of the Actually Additions mod for Minecraft.
// * It is created and owned by Ellpeck and distributed * It is created and owned by Ellpeck and distributed
// * under the Actually Additions License to be found at * under the Actually Additions License to be found at
// * http://ellpeck.de/actaddlicense * http://ellpeck.de/actaddlicense
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions * View the source code at https://github.com/Ellpeck/ActuallyAdditions
// * *
// * © 2015-2017 Ellpeck * © 2015-2017 Ellpeck
// */ */
//
//package de.ellpeck.actuallyadditions.mod.jei; package de.ellpeck.actuallyadditions.mod.jei;
//
//import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
//import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe;
//import de.ellpeck.actuallyadditions.mod.crafting.LaserRecipe; import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
//import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
//import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.drawable.IDrawable;
//import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.drawable.IDrawableStatic;
//import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.helpers.IGuiHelper;
//import mezz.jei.api.gui.drawable.IDrawableStatic; import mezz.jei.api.recipe.IFocusGroup;
//import mezz.jei.api.helpers.IGuiHelper; import mezz.jei.api.recipe.RecipeIngredientRole;
//import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.RecipeType;
//import mezz.jei.api.recipe.category.IRecipeCategory; import mezz.jei.api.recipe.category.IRecipeCategory;
//import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.client.Minecraft;
//import net.minecraft.resources.ResourceLocation; import net.minecraft.client.multiplayer.ClientLevel;
//import net.minecraft.world.item.ItemStack; import net.minecraft.core.RegistryAccess;
// import net.minecraft.network.chat.Component;
//import javax.annotation.Nonnull; import net.minecraft.world.item.ItemStack;
//import java.util.Arrays;
// public class LaserRecipeCategory implements IRecipeCategory<LaserRecipe> {
//public class LaserRecipeCategory implements IRecipeCategory<LaserRecipe> { private final IDrawableStatic background;
// private final ItemStack RECONSTRUCTOR = new ItemStack(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.getItem());
// public static final ResourceLocation ID = new ResourceLocation(ActuallyAdditions.MODID, "laser_jei");
// private final IDrawableStatic background; public LaserRecipeCategory(IGuiHelper helper) {
// private final ItemStack RECONSTRUCTOR = new ItemStack(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.getItem()); this.background = helper.drawableBuilder(AssetUtil.getGuiLocation("gui_nei_atomic_reconstructor"), 0, 0, 96, 60).setTextureSize(256,256).build();
// }
// public LaserRecipeCategory(IGuiHelper helper) {
// this.background = helper.drawableBuilder(AssetUtil.getGuiLocation("gui_nei_atomic_reconstructor"), 0, 0, 96, 60).setTextureSize(256,256).build(); @Override
// } public RecipeType<LaserRecipe> getRecipeType() {
// return JEIActuallyAdditionsPlugin.LASER;
// @Override }
// public ResourceLocation getUid() {
// return ID; @Override
// } public Component getTitle() {
// return Component.translatable("container.actuallyadditions.reconstructor");
// @Override }
// public Class<? extends LaserRecipe> getRecipeClass() {
// return LaserRecipe.class; @Override
// } public IDrawable getBackground() {
// return this.background;
// @Override }
// public String getTitle() {
// return Component.translatable("container.actuallyadditions.reconstructor").getString(); @Override
// } public IDrawable getIcon() {
// return null;
// @Override }
// public IDrawable getBackground() {
// return this.background; @Override
// } public void setRecipe(IRecipeLayoutBuilder builder, LaserRecipe recipe, IFocusGroup focuses) {
// Minecraft minecraft = Minecraft.getInstance();
// @Override ClientLevel level = minecraft.level;
// public IDrawable getIcon() { if (level == null) {
// return null; throw new NullPointerException("level must not be null.");
// } }
// RegistryAccess registryAccess = level.registryAccess();
// @Override
// public void setIngredients(LaserRecipe laserRecipe, IIngredients ingredients) { builder.addSlot(RecipeIngredientRole.INPUT, 5, 19).addIngredients(recipe.getInput());
// ingredients.setInputs(VanillaTypes.ITEM, Arrays.asList(laserRecipe.getInput().getItems())); builder.addSlot(RecipeIngredientRole.INPUT, 35, 20).addItemStack(RECONSTRUCTOR);
// ingredients.setOutput(VanillaTypes.ITEM, laserRecipe.getResultItem());
// } builder.addSlot(RecipeIngredientRole.OUTPUT, 66, 19).addItemStack(recipe.getResultItem(registryAccess));
// }
// @Override }
// public void setRecipe(@Nonnull IRecipeLayout layout, @Nonnull LaserRecipe laserRecipe, @Nonnull IIngredients iIngredients) {
// layout.getItemStacks().init(0, true, 4, 18);
// layout.getItemStacks().set(0, iIngredients.getInputs(VanillaTypes.ITEM).get(0));
//
// layout.getItemStacks().init(1, false, 34, 19);
// layout.getItemStacks().set(1, RECONSTRUCTOR);
//
// layout.getItemStacks().init(2, false, 66, 18);
// layout.getItemStacks().set(2, iIngredients.getOutputs(VanillaTypes.ITEM).get(0));
// }
//}