Skip to content

Commit cf662df

Browse files
authored
Fix unnecessary craftable checks for Emi in AE2 screens (#8540)
1 parent 7900249 commit cf662df

3 files changed

Lines changed: 20 additions & 1 deletion

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ neoForge.parchment.mappingsVersion=2024.07.07
2424
guideme_version=21.1.1
2525
top_minecraft_release=1.20
2626
top_version=1.20.4_neo-11.0.1-2
27-
emi_version=1.1.19+1.21.1
27+
emi_version=1.1.22+1.21.1
2828
# please learn how to use semver...
2929
top_version_range=[1.20.0,)
3030
jade_version_range=[15.0.0,)

src/main/java/appeng/integration/modules/emi/EmiEncodePatternHandler.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.world.item.crafting.RecipeHolder;
99

1010
import dev.emi.emi.api.recipe.EmiRecipe;
11+
import dev.emi.emi.api.recipe.handler.EmiCraftContext;
1112

1213
import appeng.api.stacks.AEItemKey;
1314
import appeng.api.stacks.AEKey;
@@ -27,6 +28,17 @@ public EmiEncodePatternHandler(Class<T> containerClass) {
2728
super(containerClass);
2829
}
2930

31+
@Override
32+
public boolean canCraft(EmiRecipe recipe, EmiCraftContext<T> context) {
33+
if (context.getType() == EmiCraftContext.Type.FILL_BUTTON) {
34+
return transferRecipe(recipe, context, false).canCraft();
35+
} else {
36+
// Do not unnecessarily check if a recipe can be crafted
37+
// when we're only capable of encoding patterns
38+
return false;
39+
}
40+
}
41+
3042
@Override
3143
protected Result transferRecipe(T menu, RecipeHolder<?> holder, EmiRecipe emiRecipe, boolean doTransfer) {
3244

src/main/java/appeng/integration/modules/emi/EmiUseCraftingRecipeHandler.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import net.minecraft.world.item.crafting.ShapedRecipePattern;
1616

1717
import dev.emi.emi.api.recipe.EmiRecipe;
18+
import dev.emi.emi.api.recipe.VanillaEmiRecipeCategories;
1819
import dev.emi.emi.api.stack.EmiStack;
1920

2021
import appeng.core.localization.ItemModText;
@@ -41,6 +42,12 @@ public EmiUseCraftingRecipeHandler(Class<T> containerClass) {
4142
super(containerClass);
4243
}
4344

45+
@Override
46+
public boolean supportsRecipe(EmiRecipe recipe) {
47+
// For actual crafting, we only support normal crafting recipes
48+
return recipe.getCategory().equals(VanillaEmiRecipeCategories.CRAFTING);
49+
}
50+
4451
@Override
4552
protected Result transferRecipe(T menu, RecipeHolder<?> holder, EmiRecipe emiRecipe, boolean doTransfer) {
4653

0 commit comments

Comments
 (0)