From 90ab39416b4edfa77ff82e5d2b8b448594e0b0ce Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:28:59 -0400 Subject: [PATCH 1/4] Use EMI on both sides --- Common/build.gradle | 7 +++++++ .../hexcasting}/interop/emi/BrainsweepeeEmiStack.java | 2 +- .../hexcasting}/interop/emi/EmiBrainsweepRecipe.java | 2 +- .../at/petrak/hexcasting}/interop/emi/EmiEdifyRecipe.java | 2 +- .../at/petrak/hexcasting}/interop/emi/EmiPhialRecipe.java | 2 +- .../at/petrak/hexcasting}/interop/emi/HexEMIPlugin.java | 4 +++- .../petrak/hexcasting}/interop/emi/PatternRendererEMI.java | 2 +- .../hexcasting}/interop/emi/TheCoolerSlotWidget.java | 2 +- Fabric/src/main/resources/fabric.mod.json | 2 +- Forge/build.gradle | 7 +++++++ gradle.properties | 1 + 11 files changed, 25 insertions(+), 8 deletions(-) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/BrainsweepeeEmiStack.java (98%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/EmiBrainsweepRecipe.java (97%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/EmiEdifyRecipe.java (98%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/EmiPhialRecipe.java (98%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/HexEMIPlugin.java (96%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/PatternRendererEMI.java (98%) rename {Fabric/src/main/java/at/petrak/hexcasting/fabric => Common/src/main/java/at/petrak/hexcasting}/interop/emi/TheCoolerSlotWidget.java (97%) diff --git a/Common/build.gradle b/Common/build.gradle index aca1334466..9a659a6641 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -23,6 +23,12 @@ repositories { name = "ModMaven" url = "https://modmaven.dev" } + maven { + // maven for EMI + // temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors + name = "Gnomecraft maven" + url = "https://maven.gnomecraft.net/releases" + } maven { url "https://maven.shedaniel.me/" } @@ -33,6 +39,7 @@ dependencies { implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' compileOnly "at.petra-k.paucal:paucal-common-$minecraftVersion:$paucalVersion" + compileOnly "dev.emi:emi-xplat-mojmap:$emiVersion+$minecraftVersion" compileOnly "vazkii.patchouli:Patchouli-xplat:$minecraftVersion-$patchouliVersion-SNAPSHOT" compileOnly "com.samsthenerd.inline:inline-forge:$minecraftVersion-$inlineVersion" diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/BrainsweepeeEmiStack.java similarity index 98% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/BrainsweepeeEmiStack.java index 43f23f9442..96d2a0a26a 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/BrainsweepeeEmiStack.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/BrainsweepeeEmiStack.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import at.petrak.hexcasting.client.ClientTickCounter; import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredient; diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiBrainsweepRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java similarity index 97% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiBrainsweepRecipe.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java index 441a7e12ff..335f58793e 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiBrainsweepRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import dev.emi.emi.api.recipe.EmiRecipe; import dev.emi.emi.api.recipe.EmiRecipeCategory; diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiEdifyRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java similarity index 98% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiEdifyRecipe.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java index 4c3f8d4c4d..7dd321a593 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiEdifyRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import at.petrak.hexcasting.common.lib.HexBlocks; import dev.emi.emi.api.recipe.EmiRecipe; diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java similarity index 98% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java index 2e74629169..70198dc3bd 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/EmiPhialRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java similarity index 96% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java index 3c10fb9d4f..f58e9ae631 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/HexEMIPlugin.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java @@ -1,9 +1,10 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import at.petrak.hexcasting.api.mod.HexTags; import at.petrak.hexcasting.common.recipe.BrainsweepRecipe; import at.petrak.hexcasting.common.recipe.HexRecipeStuffRegistry; import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; +import dev.emi.emi.api.EmiEntrypoint; import dev.emi.emi.api.EmiPlugin; import dev.emi.emi.api.EmiRegistry; import dev.emi.emi.api.recipe.EmiRecipeCategory; @@ -14,6 +15,7 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; +@EmiEntrypoint public class HexEMIPlugin implements EmiPlugin { private static final ResourceLocation BRAINSWEEP_ID = modLoc("brainsweep"); public static final ResourceLocation PHIAL_ID = modLoc("craft/battery"); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/PatternRendererEMI.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/PatternRendererEMI.java similarity index 98% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/PatternRendererEMI.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/PatternRendererEMI.java index da699de7a9..211d30dff8 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/PatternRendererEMI.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/PatternRendererEMI.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import at.petrak.hexcasting.api.casting.math.HexPattern; import at.petrak.hexcasting.api.mod.HexTags; diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/TheCoolerSlotWidget.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/TheCoolerSlotWidget.java similarity index 97% rename from Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/TheCoolerSlotWidget.java rename to Common/src/main/java/at/petrak/hexcasting/interop/emi/TheCoolerSlotWidget.java index 2f936f78bf..4af19d9751 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/interop/emi/TheCoolerSlotWidget.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/TheCoolerSlotWidget.java @@ -1,4 +1,4 @@ -package at.petrak.hexcasting.fabric.interop.emi; +package at.petrak.hexcasting.interop.emi; import com.mojang.blaze3d.systems.RenderSystem; import dev.emi.emi.api.render.EmiRender; diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 38174656fe..b5e5a372ae 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -34,7 +34,7 @@ "at.petrak.hexcasting.fabric.cc.HexCardinalComponents" ], "emi": [ - "at.petrak.hexcasting.fabric.interop.emi.HexEMIPlugin" + "at.petrak.hexcasting.interop.emi.HexEMIPlugin" ], "modmenu": [ "at.petrak.hexcasting.fabric.interop.ModMenuInterop" diff --git a/Forge/build.gradle b/Forge/build.gradle index 43831992c4..0a461349a1 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -59,6 +59,12 @@ repositories { name = "ModMaven" url = "https://modmaven.dev" } + maven { + // maven for EMI + // temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors + name = "Gnomecraft maven" + url = "https://maven.gnomecraft.net/releases" + } // caelus elytra maven { url = "https://maven.theillusivec4.top" } // pehkui @@ -102,6 +108,7 @@ dependencies { compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-common-api:$jeiVersion") compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge-api:$jeiVersion") runtimeOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge:$jeiVersion") + compileOnly fg.deobf("dev.emi:emi-forge:$emiVersion+$minecraftVersion") compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:$curiosVersion+$minecraftVersion:api") runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:$curiosVersion+$minecraftVersion") diff --git a/gradle.properties b/gradle.properties index 4bc43541a6..10a627ebe8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,6 +17,7 @@ paucalVersion=0.6.0-pre-118 patchouliVersion=83 jeiVersion=15.0.0.12 +emiVersion=1.0.4 pehkuiVersion=3.8.2 inlineVersion=1.2.2 From b3bd04a198034cee303ceadea58a2e349b6368b1 Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:37:59 -0400 Subject: [PATCH 2/4] Remove JEI stuff, tweak mavens --- Common/build.gradle | 10 -- Fabric/build.gradle | 4 +- Forge/build.gradle | 23 +--- .../interop/jei/BrainsweepRecipeCategory.java | 111 ------------------ .../interop/jei/EdifyRecipeCategory.java | 78 ------------ .../forge/interop/jei/HexJEIPlugin.java | 89 -------------- .../forge/interop/jei/PatternDrawable.java | 73 ------------ .../interop/jei/PhialRecipeCategory.java | 74 ------------ gradle.properties | 1 - 9 files changed, 6 insertions(+), 457 deletions(-) delete mode 100644 Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java delete mode 100644 Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java delete mode 100644 Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java delete mode 100644 Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java delete mode 100644 Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java diff --git a/Common/build.gradle b/Common/build.gradle index 9a659a6641..34d0583de7 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -13,16 +13,6 @@ repositories { maven { url 'https://maven.blamejared.com' } - maven { - // location of the maven that hosts JEI files - name = "Progwml6 maven" - url = "https://dvs1.progwml6.com/files/maven/" - } - maven { - // location of a maven mirror for JEI files, as a fallback - name = "ModMaven" - url = "https://modmaven.dev" - } maven { // maven for EMI // temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 9cc6b1b0e1..7c6d3471a1 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -58,7 +58,7 @@ loom { repositories { mavenCentral() - // paucal and patchi + // paucal, patchi, inline maven { url = 'https://maven.blamejared.com' } // modmenu and clothconfig maven { url "https://maven.shedaniel.me/" } @@ -66,7 +66,7 @@ repositories { // Entity reach maven { url "https://maven.jamieswhiteshirt.com/libs-release/" } maven { url "https://mvn.devos.one/snapshots/" } - // temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors + // EMI (temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors) maven { url = "https://maven.gnomecraft.net/releases" } exclusiveContent { forRepository { diff --git a/Forge/build.gradle b/Forge/build.gradle index 0a461349a1..d0841f63c4 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -49,22 +49,10 @@ repositories { dir 'libs' } - maven { - // location of the maven that hosts JEI files - name = "Progwml6 maven" - url = "https://dvs1.progwml6.com/files/maven/" - } - maven { - // location of a maven mirror for JEI files, as a fallback - name = "ModMaven" - url = "https://modmaven.dev" - } - maven { - // maven for EMI - // temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors - name = "Gnomecraft maven" - url = "https://maven.gnomecraft.net/releases" - } + // paucal, patchi, inline + maven { url = 'https://maven.blamejared.com' } + // EMI (temporarily changed from https://maven.terraformersmc.com/releases/ due to intermittent errors) + maven {url = "https://maven.gnomecraft.net/releases"} // caelus elytra maven { url = "https://maven.theillusivec4.top" } // pehkui @@ -105,9 +93,6 @@ dependencies { // Optional interop - compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-common-api:$jeiVersion") - compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge-api:$jeiVersion") - runtimeOnly fg.deobf("mezz.jei:jei-$minecraftVersion-forge:$jeiVersion") compileOnly fg.deobf("dev.emi:emi-forge:$emiVersion+$minecraftVersion") compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:$curiosVersion+$minecraftVersion:api") diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java deleted file mode 100644 index 5dab50b0c0..0000000000 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/BrainsweepRecipeCategory.java +++ /dev/null @@ -1,111 +0,0 @@ -package at.petrak.hexcasting.forge.interop.jei; - -import at.petrak.hexcasting.client.ClientTickCounter; -import at.petrak.hexcasting.common.recipe.BrainsweepRecipe; -import com.mojang.blaze3d.systems.RenderSystem; -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.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; -import static at.petrak.hexcasting.client.render.RenderLib.renderEntity; - -public class BrainsweepRecipeCategory implements IRecipeCategory { - public static final ResourceLocation UID = modLoc("brainsweep"); - - private final IDrawableStatic background; - private final IDrawable icon; - private final Component localizedName; - - public BrainsweepRecipeCategory(IGuiHelper guiHelper) { - ResourceLocation location = modLoc("textures/gui/brainsweep_jei.png"); - background = guiHelper.drawableBuilder(location, 0, 0, 118, 86).setTextureSize(128, 128).build(); - var brainsweep = modLoc("brainsweep"); - localizedName = Component.translatable("hexcasting.action." + brainsweep); - icon = new PatternDrawable(brainsweep, 16, 16); - } - - @Override - @OnlyIn(Dist.CLIENT) - public @NotNull - Component getTitle() { - return localizedName; - } - - @Override - public @NotNull - IDrawable getBackground() { - return background; - } - - @Override - public @NotNull - IDrawable getIcon() { - return icon; - } - - @Override - public @NotNull - List getTooltipStrings(@NotNull BrainsweepRecipe recipe, - @NotNull IRecipeSlotsView recipeSlotsView, double mouseX, double mouseY) { - if (37 <= mouseX && mouseX <= 37 + 26 && 19 <= mouseY && mouseY <= 19 + 48) { - Minecraft mc = Minecraft.getInstance(); - return recipe.entityIn().getTooltip(mc.options.advancedItemTooltips); - } - - return Collections.emptyList(); - } - - @Override - public void draw(@NotNull BrainsweepRecipe recipe, @NotNull IRecipeSlotsView recipeSlotsView, @NotNull GuiGraphics graphics, double mouseX, double mouseY) { - ClientLevel level = Minecraft.getInstance().level; - if (level != null) { - var examples = recipe.entityIn().exampleEntities(level); - Entity example = null; - if (!examples.isEmpty()) { - long seconds = System.currentTimeMillis() / 1000; - example = examples.get((int) (seconds % examples.size())); - } - if (example == null) - return; - - RenderSystem.enableBlend(); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - renderEntity(graphics, example, level, 50, 62.5f, ClientTickCounter.getTotal(), 20, 0); - } - } - - @Override - public void setRecipe(@NotNull IRecipeLayoutBuilder builder, @NotNull BrainsweepRecipe recipe, - @NotNull IFocusGroup focuses) { - builder.addSlot(RecipeIngredientRole.INPUT, 12, 35) - .addItemStacks(recipe.blockIn().getDisplayedStacks()); - builder.addSlot(RecipeIngredientRole.OUTPUT, 87, 35) - .addItemStack(new ItemStack(recipe.result().getBlock())); - } - - @Override - public @NotNull - RecipeType getRecipeType() { - return HexJEIPlugin.BRAINSWEEPING; - } -} diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java deleted file mode 100644 index 84ab9bab31..0000000000 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/EdifyRecipeCategory.java +++ /dev/null @@ -1,78 +0,0 @@ -package at.petrak.hexcasting.forge.interop.jei; - -import at.petrak.hexcasting.common.casting.actions.spells.OpEdifySapling; -import at.petrak.hexcasting.common.lib.HexBlocks; -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.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.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.ItemTags; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import org.jetbrains.annotations.NotNull; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -public class EdifyRecipeCategory implements IRecipeCategory { - public static final ResourceLocation UID = modLoc("edify_tree"); - - private final IDrawableStatic background; - private final IDrawable icon; - private final Component localizedName; - - public EdifyRecipeCategory(IGuiHelper guiHelper) { - ResourceLocation location = modLoc("textures/gui/edify_jei.png"); - background = guiHelper.drawableBuilder(location, 0, 0, 79, 61).setTextureSize(128, 128).build(); - var edify = modLoc("edify"); - localizedName = Component.translatable("hexcasting.action." + edify); - icon = new PatternDrawable(edify, 16, 16).strokeOrder(false); - } - - @Override - @OnlyIn(Dist.CLIENT) - public @NotNull Component getTitle() { - return localizedName; - } - - @Override - public @NotNull IDrawable getBackground() { - return background; - } - - @Override - public @NotNull IDrawable getIcon() { - return icon; - } - - @Override - public void setRecipe(@NotNull IRecipeLayoutBuilder builder, @NotNull OpEdifySapling recipe, - @NotNull IFocusGroup focuses) { - builder.addSlot(RecipeIngredientRole.INPUT, 12, 22) - .addIngredients(Ingredient.of(ItemTags.SAPLINGS)); - - builder.addSlot(RecipeIngredientRole.OUTPUT, 51, 10) - .addItemStack(new ItemStack(HexBlocks.AMETHYST_EDIFIED_LEAVES)) - .addItemStack(new ItemStack(HexBlocks.AVENTURINE_EDIFIED_LEAVES)) - .addItemStack(new ItemStack(HexBlocks.CITRINE_EDIFIED_LEAVES)); - builder.addSlot(RecipeIngredientRole.OUTPUT, 51, 35) - .addItemStack(new ItemStack(HexBlocks.EDIFIED_LOG)) - .addItemStack(new ItemStack(HexBlocks.EDIFIED_LOG_AMETHYST)) - .addItemStack(new ItemStack(HexBlocks.EDIFIED_LOG_AVENTURINE)) - .addItemStack(new ItemStack(HexBlocks.EDIFIED_LOG_CITRINE)); -// .addItemStack(new ItemStack(HexBlocks.EDIFIED_LOG_PURPLE)); - - } - - @Override - public @NotNull RecipeType getRecipeType() { - return HexJEIPlugin.EDIFY; - } -} diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java deleted file mode 100644 index 32572ba10c..0000000000 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/HexJEIPlugin.java +++ /dev/null @@ -1,89 +0,0 @@ -package at.petrak.hexcasting.forge.interop.jei; - -import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.common.casting.actions.spells.OpEdifySapling; -import at.petrak.hexcasting.common.casting.actions.spells.OpMakeBattery; -import at.petrak.hexcasting.common.items.ItemStaff; -import at.petrak.hexcasting.common.lib.HexItems; -import at.petrak.hexcasting.common.recipe.BrainsweepRecipe; -import at.petrak.hexcasting.common.recipe.HexRecipeStuffRegistry; -import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; -import mezz.jei.api.IModPlugin; -import mezz.jei.api.JeiPlugin; -import mezz.jei.api.recipe.RecipeType; -import mezz.jei.api.registration.IRecipeCatalystRegistration; -import mezz.jei.api.registration.IRecipeCategoryRegistration; -import mezz.jei.api.registration.IRecipeRegistration; -import net.minecraft.client.Minecraft; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -@JeiPlugin -public class HexJEIPlugin implements IModPlugin { - private static final ResourceLocation UID = modLoc(HexAPI.MOD_ID); - - public static final RecipeType BRAINSWEEPING = - RecipeType.create(HexAPI.MOD_ID, "brainsweeping", BrainsweepRecipe.class); - - // Only one entry, might as well use the op class - public static final RecipeType PHIAL = - RecipeType.create(HexAPI.MOD_ID, "craft_phial", OpMakeBattery.class); - public static final RecipeType EDIFY = - RecipeType.create(HexAPI.MOD_ID, "edify_tree", OpEdifySapling.class); - - @NotNull - @Override - public ResourceLocation getPluginUid() { - return UID; - } - - @Override - public void registerCategories(IRecipeCategoryRegistration registration) { - var guiHelper = registration.getJeiHelpers().getGuiHelper(); - registration.addRecipeCategories( - new BrainsweepRecipeCategory(guiHelper), - new PhialRecipeCategory(guiHelper), - new EdifyRecipeCategory(guiHelper)); - } - - @Override - public void registerRecipes(@NotNull IRecipeRegistration registration) { - Level level = Minecraft.getInstance().level; - if (level != null) { - registration.addRecipes(BRAINSWEEPING, - level.getRecipeManager().getAllRecipesFor(HexRecipeStuffRegistry.BRAINSWEEP_TYPE)); - } - - if (PhialRecipeStackBuilder.shouldAddRecipe()) { - registration.addRecipes(PHIAL, List.of(OpMakeBattery.INSTANCE)); - } - - registration.addRecipes(EDIFY, List.of(OpEdifySapling.INSTANCE)); - } - - @Override - public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) { - for (ItemStaff staff : new ItemStaff[]{ - HexItems.STAFF_OAK, - HexItems.STAFF_SPRUCE, - HexItems.STAFF_BIRCH, - HexItems.STAFF_JUNGLE, - HexItems.STAFF_ACACIA, - HexItems.STAFF_DARK_OAK, - HexItems.STAFF_CRIMSON, - HexItems.STAFF_WARPED, - HexItems.STAFF_MANGROVE, - HexItems.STAFF_CHERRY, - HexItems.STAFF_BAMBOO, - HexItems.STAFF_EDIFIED, - }) { - registration.addRecipeCatalyst(new ItemStack(staff), BRAINSWEEPING, PHIAL, EDIFY); - } - } -} diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java deleted file mode 100644 index bf96781a00..0000000000 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PatternDrawable.java +++ /dev/null @@ -1,73 +0,0 @@ -package at.petrak.hexcasting.forge.interop.jei; - -import at.petrak.hexcasting.api.casting.math.HexPattern; -import at.petrak.hexcasting.api.mod.HexTags; -import at.petrak.hexcasting.api.utils.HexUtils; -import at.petrak.hexcasting.client.render.PatternColors; -import at.petrak.hexcasting.client.render.PatternRenderer; -import at.petrak.hexcasting.client.render.PatternSettings; -import at.petrak.hexcasting.client.render.PatternSettings.PositionSettings; -import at.petrak.hexcasting.client.render.PatternSettings.StrokeSettings; -import at.petrak.hexcasting.client.render.PatternSettings.ZappySettings; -import at.petrak.hexcasting.xplat.IXplatAbstractions; -import mezz.jei.api.gui.drawable.IDrawable; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.resources.ResourceLocation; - -public class PatternDrawable implements IDrawable { - private final int width; - private final int height; - - private boolean strokeOrder; - private final HexPattern pat; - - private PatternSettings patSets; - - public PatternDrawable(ResourceLocation pattern, int w, int h) { - var regi = IXplatAbstractions.INSTANCE.getActionRegistry(); - var entry = regi.get(pattern); - this.strokeOrder = !HexUtils.isOfTag(regi, pattern, HexTags.Actions.PER_WORLD_PATTERN); - this.pat = entry.prototype(); - this.width = w; - this.height = h; - this.patSets = new PatternSettings("pattern_drawable_" + w + "_" + h, - new PositionSettings(width, height, 0, 0, - PatternSettings.AxisAlignment.CENTER_FIT, PatternSettings.AxisAlignment.CENTER_FIT, Math.max(width, height), 0, 0), - StrokeSettings.fromStroke(0.075 * Math.min(width, height)), - ZappySettings.READABLE); - } - - @Override - public int getWidth() { - return width; - } - - @Override - public int getHeight() { - return height; - } - - public PatternDrawable strokeOrder(boolean order) { - if(order != strokeOrder){ - patSets = new PatternSettings("pattern_drawable_" + width + "_" + height + (order ? "" : "nostroke"), - patSets.posSets, - patSets.strokeSets, - order ? ZappySettings.READABLE : ZappySettings.STATIC - ); - } - strokeOrder = order; - return this; - } - - @Override - public void draw(GuiGraphics graphics, int x, int y) { - var ps = graphics.pose(); - ps.pushPose(); - ps.translate(x, y + 1, 0); - PatternRenderer.renderPattern(pat, graphics.pose(), patSets, - new PatternColors(0xc8_0c0a0c, 0xff_333030).withDotColors(0x80_666363, 0), - 0, 10 - ); - ps.popPose(); - } -} diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java b/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java deleted file mode 100644 index 23a4272a4e..0000000000 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/interop/jei/PhialRecipeCategory.java +++ /dev/null @@ -1,74 +0,0 @@ -package at.petrak.hexcasting.forge.interop.jei; - -import at.petrak.hexcasting.api.mod.HexTags; -import at.petrak.hexcasting.common.casting.actions.spells.OpMakeBattery; -import at.petrak.hexcasting.interop.utils.PhialRecipeStackBuilder; -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.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.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import org.jetbrains.annotations.NotNull; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -public class PhialRecipeCategory implements IRecipeCategory { - public static final ResourceLocation UID = modLoc("craft_phial"); - - private final IDrawableStatic background; - private final IDrawable icon; - private final Component localizedName; - - public PhialRecipeCategory(IGuiHelper guiHelper) { - ResourceLocation location = modLoc("textures/gui/phial_jei.png"); - background = guiHelper.drawableBuilder(location, 0, 0, 113, 40).setTextureSize(128, 128).build(); - var craftPhial = modLoc("craft/battery"); - localizedName = Component.translatable("hexcasting.action." + craftPhial); - icon = new PatternDrawable(craftPhial, 12, 12); - } - - @Override - @OnlyIn(Dist.CLIENT) - public @NotNull Component getTitle() { - return localizedName; - } - - @Override - public @NotNull IDrawable getBackground() { - return background; - } - - @Override - public @NotNull IDrawable getIcon() { - return icon; - } - - @Override - public void setRecipe(@NotNull IRecipeLayoutBuilder builder, @NotNull OpMakeBattery recipe, - @NotNull IFocusGroup focuses) { - var stacks = PhialRecipeStackBuilder.createStacks(); - - var inputSlot = builder.addSlot(RecipeIngredientRole.INPUT, 12, 12) - .addItemStacks(stacks.getFirst()); - builder.addSlot(RecipeIngredientRole.INPUT, 47, 12) - .addIngredients(Ingredient.of(HexTags.Items.PHIAL_BASE)); - - var outputSlot = builder.addSlot(RecipeIngredientRole.OUTPUT, 85, 12) - .addItemStacks(stacks.getSecond()); - - builder.createFocusLink(inputSlot, outputSlot); - } - - @Override - public @NotNull RecipeType getRecipeType() { - return HexJEIPlugin.PHIAL; - } -} diff --git a/gradle.properties b/gradle.properties index 10a627ebe8..0444cc459e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,6 @@ modVersion=0.11.3 paucalVersion=0.6.0-pre-118 patchouliVersion=83 -jeiVersion=15.0.0.12 emiVersion=1.0.4 pehkuiVersion=3.8.2 From 7bc9025949d2d819747b451b6f7c158115620a4f Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:57:30 -0400 Subject: [PATCH 3/4] Update recipe GUI filenames --- .../common/recipe/ingredient/StateIngredient.java | 2 +- .../hexcasting/interop/emi/EmiBrainsweepRecipe.java | 2 +- .../hexcasting/interop/emi/EmiEdifyRecipe.java | 2 +- .../hexcasting/interop/emi/EmiPhialRecipe.java | 2 +- .../petrak/hexcasting/interop/emi/HexEMIPlugin.java | 6 +++--- .../thehexbook/en_us/templates/brainsweep.json | 2 +- .../{brainsweep_jei.png => brainsweep_recipe.png} | Bin ...rainsweep_emi.png => brainsweep_recipe_icon.png} | Bin .../{brainsweep.png => brainsweep_recipe_nobg.png} | Bin .../gui/{edify_jei.png => edify_recipe.png} | Bin .../gui/{edify_emi.png => edify_recipe_icon.png} | Bin .../gui/{edify.png => edify_recipe_nobg.png} | Bin .../gui/{phial_jei.png => phial_recipe.png} | Bin .../gui/{phial_emi.png => phial_recipe_icon.png} | Bin .../gui/{phial.png => phial_recipe_nobg.png} | Bin 15 files changed, 8 insertions(+), 8 deletions(-) rename Common/src/main/resources/assets/hexcasting/textures/gui/{brainsweep_jei.png => brainsweep_recipe.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{brainsweep_emi.png => brainsweep_recipe_icon.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{brainsweep.png => brainsweep_recipe_nobg.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{edify_jei.png => edify_recipe.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{edify_emi.png => edify_recipe_icon.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{edify.png => edify_recipe_nobg.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{phial_jei.png => phial_recipe.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{phial_emi.png => phial_recipe_icon.png} (100%) rename Common/src/main/resources/assets/hexcasting/textures/gui/{phial.png => phial_recipe_nobg.png} (100%) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java index cd2cca2268..ce5f0689f6 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/recipe/ingredient/StateIngredient.java @@ -27,7 +27,7 @@ public interface StateIngredient extends Predicate { List getDisplayedStacks(); /** - * A description tooltip to display in areas like JEI recipes. + * A description tooltip to display in recipe viewers. */ default List descriptionTooltip() { return Collections.emptyList(); diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java index 335f58793e..94c878c7d5 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiBrainsweepRecipe.java @@ -16,7 +16,7 @@ public record EmiBrainsweepRecipe(EmiIngredient blockInput, EmiIngredient villagerInput, EmiStack output, ResourceLocation id) implements EmiRecipe { - private static final ResourceLocation OVERLAY = modLoc("textures/gui/brainsweep_jei.png"); + private static final ResourceLocation OVERLAY = modLoc("textures/gui/brainsweep_recipe.png"); @Override public EmiRecipeCategory getCategory() { diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java index 7dd321a593..d4df2ba904 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiEdifyRecipe.java @@ -17,7 +17,7 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public class EmiEdifyRecipe implements EmiRecipe { - private static final ResourceLocation OVERLAY = modLoc("textures/gui/edify_jei.png"); + private static final ResourceLocation OVERLAY = modLoc("textures/gui/edify_recipe.png"); private final EmiIngredient saplings; private final EmiIngredient leaves; diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java index 70198dc3bd..f1aa38ab3a 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/EmiPhialRecipe.java @@ -17,7 +17,7 @@ import static at.petrak.hexcasting.api.HexAPI.modLoc; public class EmiPhialRecipe implements EmiRecipe { - private static final ResourceLocation OVERLAY = modLoc("textures/gui/phial_jei.png"); + private static final ResourceLocation OVERLAY = modLoc("textures/gui/phial_recipe.png"); private final EmiIngredient inputs; private final EmiIngredient bottle; diff --git a/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java b/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java index f58e9ae631..82ddff5b9d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java +++ b/Common/src/main/java/at/petrak/hexcasting/interop/emi/HexEMIPlugin.java @@ -21,9 +21,9 @@ public class HexEMIPlugin implements EmiPlugin { public static final ResourceLocation PHIAL_ID = modLoc("craft/battery"); public static final ResourceLocation EDIFY_ID = modLoc("edify"); - private static final ResourceLocation SIMPLIFIED_ICON_BRAINSWEEP = modLoc("textures/gui/brainsweep_emi.png"); - private static final ResourceLocation SIMPLIFIED_ICON_PHIAL = modLoc("textures/gui/phial_emi.png"); - private static final ResourceLocation SIMPLIFIED_ICON_EDIFY = modLoc("textures/gui/edify_emi.png"); + private static final ResourceLocation SIMPLIFIED_ICON_BRAINSWEEP = modLoc("textures/gui/brainsweep_recipe_icon.png"); + private static final ResourceLocation SIMPLIFIED_ICON_PHIAL = modLoc("textures/gui/phial_recipe_icon.png"); + private static final ResourceLocation SIMPLIFIED_ICON_EDIFY = modLoc("textures/gui/edify_recipe_icon.png"); public static final EmiRecipeCategory BRAINSWEEP = new EmiRecipeCategory(BRAINSWEEP_ID, new PatternRendererEMI(BRAINSWEEP_ID, 16, 16), diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/templates/brainsweep.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/templates/brainsweep.json index c7081d0b5b..1b0dc3b004 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/templates/brainsweep.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/templates/brainsweep.json @@ -3,7 +3,7 @@ "components": [ { "type": "patchouli:image", - "image": "hexcasting:textures/gui/brainsweep.png", + "image": "hexcasting:textures/gui/brainsweep_recipe_nobg.png", "width": 128, "height": 128, "texture_width": 128, diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_jei.png b/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_jei.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_emi.png b/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe_icon.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_emi.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe_icon.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep.png b/Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe_nobg.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/brainsweep_recipe_nobg.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/edify_jei.png b/Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/edify_jei.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/edify_emi.png b/Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe_icon.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/edify_emi.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe_icon.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/edify.png b/Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe_nobg.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/edify.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/edify_recipe_nobg.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/phial_jei.png b/Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/phial_jei.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/phial_emi.png b/Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe_icon.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/phial_emi.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe_icon.png diff --git a/Common/src/main/resources/assets/hexcasting/textures/gui/phial.png b/Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe_nobg.png similarity index 100% rename from Common/src/main/resources/assets/hexcasting/textures/gui/phial.png rename to Common/src/main/resources/assets/hexcasting/textures/gui/phial_recipe_nobg.png From 4d1b8817668b319a2a3973d244bba7f661caf7dc Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:42:02 -0400 Subject: [PATCH 4/4] Update changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdfa517f9c..ece2436516 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight ([#1040](https://github.com/FallingColors/HexMod/pull/1040)) @Robotgiggle - Changed the pattern limit to also include execution of non-pattern iotas like jumps ([#1035](https://github.com/FallingColors/HexMod/pull/1035)) @pythonmcpi - Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle -- Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag ([#1023](https://github.com/FallingColors/HexMod/pull/1023)) @YukkuriC +- All custom recipe displays are now handled via EMI on both sides rather than EMI on Fabric and JEI on Forge ([#1206](https://github.com/FallingColors/HexMod/pull/1206)) @Robotgiggle +- Updated the Flay Mind recipe display to cycle through all valid entities if the input is an entity tag ([#1023](https://github.com/FallingColors/HexMod/pull/1023)) @YukkuriC - Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](https://github.com/FallingColors/HexMod/pull/996)) @YukkuriC - Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](https://github.com/FallingColors/HexMod/pull/1025)) @Robotgiggle - Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](https://github.com/FallingColors/HexMod/pull/1080)) @Robotgiggle