use of mezz.jei.api.runtime.IRecipesGui in project Botania by VazkiiMods.
the class JEIBotaniaPlugin method onRuntimeAvailable.
@Override
public void onRuntimeAvailable(IJeiRuntime jeiRuntime) {
IRecipeManager recipeRegistry = jeiRuntime.getRecipeManager();
// Hide the return recipes (iron ingot/diamond/ender pearl returns, not lexicon)
for (IElvenTradeRecipe recipe : TileAlfPortal.elvenTradeRecipes(Minecraft.getInstance().level)) {
if (recipe instanceof LexiconElvenTradeRecipe) {
continue;
}
List<Ingredient> inputs = recipe.getIngredients();
List<ItemStack> outputs = recipe.getOutputs();
if (inputs.size() == 1 && outputs.size() == 1 && recipe.containsItem(outputs.get(0))) {
recipeRegistry.hideRecipe(recipe, ElvenTradeRecipeCategory.UID);
}
}
RecipeManager recipeManager = Minecraft.getInstance().level.getRecipeManager();
recipeManager.byKey(prefix("petal_apothecary/daybloom_motif")).ifPresent(r -> recipeRegistry.hideRecipe(r, PetalApothecaryRecipeCategory.UID));
recipeManager.byKey(prefix("petal_apothecary/nightshade_motif")).ifPresent(r -> recipeRegistry.hideRecipe(r, PetalApothecaryRecipeCategory.UID));
CorporeaInputHandler.jeiPanelSupplier = () -> {
ItemStack stack = jeiRuntime.getIngredientListOverlay().getIngredientUnderMouse(VanillaTypes.ITEM);
if (stack == null && Minecraft.getInstance().screen == jeiRuntime.getRecipesGui()) {
stack = jeiRuntime.getRecipesGui().getIngredientUnderMouse(VanillaTypes.ITEM);
}
if (stack == null) {
stack = jeiRuntime.getBookmarkOverlay().getIngredientUnderMouse(VanillaTypes.ITEM);
}
if (stack != null) {
return stack;
}
return ItemStack.EMPTY;
};
CorporeaInputHandler.supportedGuiFilter = gui -> gui instanceof AbstractContainerScreen<?> || gui instanceof IRecipesGui;
}
use of mezz.jei.api.runtime.IRecipesGui in project RoughlyEnoughItems by shedaniel.
the class IGuiClickableArea method createBasic.
/**
* Helper function to create the most basic type of {@link IGuiClickableArea},
* which displays a recipe category on click.
*
* @since 9.5.0
*/
static IGuiClickableArea createBasic(int xPos, int yPos, int width, int height, RecipeType<?>... recipeTypes) {
Rect2i area = new Rect2i(xPos, yPos, width, height);
List<RecipeType<?>> recipeTypesList = Arrays.asList(recipeTypes);
return new IGuiClickableArea() {
@Override
public Rect2i getArea() {
return area;
}
@Override
public void onClick(IFocusFactory focusFactory, IRecipesGui recipesGui) {
recipesGui.showTypes(recipeTypesList);
}
};
}
use of mezz.jei.api.runtime.IRecipesGui in project PackagedAuto by TheLMiffy1111.
the class EncoderGuiHandler method getGuiClickableAreas.
@Override
public Collection<IGuiClickableArea> getGuiClickableAreas(EncoderScreen containerScreen, double mouseX, double mouseY) {
Rect2i area = new Rect2i(172, 129, 22, 16);
IGuiClickableArea clickableArea = new IGuiClickableArea() {
@Override
public Rect2i getArea() {
return area;
}
@Override
public void onClick(IFocusFactory focusFactory, IRecipesGui recipesGui) {
List<ResourceLocation> categories = containerScreen.menu.patternItemHandler.recipeType.getJEICategories();
if (categories.isEmpty()) {
categories = PackagedAutoJEIPlugin.getAllRecipeCategories();
}
List<ResourceLocation> categories2 = categories;
List<RecipeType<?>> types = PackagedAutoJEIPlugin.jeiRuntime.getRecipeManager().createRecipeCategoryLookup().get().<RecipeType<?>>map(c -> c.getRecipeType()).filter(t -> categories2.contains(t.getUid())).toList();
if (!types.isEmpty()) {
recipesGui.showTypes(types);
}
}
};
return Collections.singleton(clickableArea);
}
use of mezz.jei.api.runtime.IRecipesGui in project RoughlyEnoughItems by shedaniel.
the class IGuiClickableArea method createBasic.
/**
* Helper function to create the most basic type of {@link IGuiClickableArea},
* which displays a recipe category on click.
*
* @deprecated use {@link #createBasic(int, int, int, int, RecipeType[])} instead.
*/
@Deprecated(forRemoval = true, since = "9.5.0")
static IGuiClickableArea createBasic(int xPos, int yPos, int width, int height, ResourceLocation... recipeCategoryUids) {
Rect2i area = new Rect2i(xPos, yPos, width, height);
List<ResourceLocation> recipeCategoryUidList = new ArrayList<>();
Collections.addAll(recipeCategoryUidList, recipeCategoryUids);
return new IGuiClickableArea() {
@Override
public Rect2i getArea() {
return area;
}
@Override
public void onClick(IFocusFactory focusFactory, IRecipesGui recipesGui) {
recipesGui.showCategories(recipeCategoryUidList);
}
};
}
Aggregations