Skip to content

Commit bdbc095

Browse files
committed
remove IShapedRecipe
1 parent db5f833 commit bdbc095

File tree

9 files changed

+42
-86
lines changed

9 files changed

+42
-86
lines changed

src/datagen/main/java/mekanism/common/recipe/builder/ExtendedShapedRecipeBuilder.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import net.minecraft.tags.TagKey;
1515
import net.minecraft.world.item.Item;
1616
import net.minecraft.world.item.ItemStack;
17+
import net.minecraft.world.item.crafting.CraftingBookCategory;
1718
import net.minecraft.world.item.crafting.Ingredient;
1819
import net.minecraft.world.item.crafting.Recipe;
1920
import net.minecraft.world.item.crafting.ShapedRecipe;
@@ -101,16 +102,16 @@ protected void validate(ResourceLocation id) {
101102

102103
@Override
103104
protected Recipe<?> asRecipe() {
104-
return wrapRecipe(new ShapedRecipe(
105+
return wrapRecipe(
105106
Objects.requireNonNullElse(this.group, ""),
106107
RecipeBuilder.determineBookCategory(this.category),
107108
ShapedRecipePattern.of(this.key, this.pattern),
108109
new ItemStack(this.result, this.count),
109110
this.showNotification
110-
));
111+
);
111112
}
112113

113-
protected Recipe<?> wrapRecipe(ShapedRecipe recipe) {
114-
return recipe;
114+
protected Recipe<?> wrapRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
115+
return new ShapedRecipe(group, category, pattern, result, showNotification);
115116
}
116117
}

src/datagen/main/java/mekanism/common/recipe/builder/MekDataShapedRecipeBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import mekanism.api.annotations.NothingNullByDefault;
44
import mekanism.common.recipe.upgrade.MekanismShapedRecipe;
5+
import net.minecraft.world.item.ItemStack;
6+
import net.minecraft.world.item.crafting.CraftingBookCategory;
57
import net.minecraft.world.item.crafting.Recipe;
6-
import net.minecraft.world.item.crafting.ShapedRecipe;
8+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
79
import net.minecraft.world.level.ItemLike;
810

911
@NothingNullByDefault
@@ -22,7 +24,7 @@ public static MekDataShapedRecipeBuilder shapedRecipe(ItemLike result, int count
2224
}
2325

2426
@Override
25-
protected Recipe<?> wrapRecipe(ShapedRecipe recipe) {
26-
return new MekanismShapedRecipe(recipe);
27+
protected Recipe<?> wrapRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
28+
return new MekanismShapedRecipe(group, category, pattern, result, showNotification);
2729
}
2830
}

src/datagen/tools/java/mekanism/tools/common/recipe/PaxelShapedRecipeBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import mekanism.api.annotations.NothingNullByDefault;
44
import mekanism.common.recipe.builder.ExtendedShapedRecipeBuilder;
55
import net.minecraft.data.recipes.RecipeCategory;
6+
import net.minecraft.world.item.ItemStack;
7+
import net.minecraft.world.item.crafting.CraftingBookCategory;
68
import net.minecraft.world.item.crafting.Recipe;
7-
import net.minecraft.world.item.crafting.ShapedRecipe;
9+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
810
import net.minecraft.world.level.ItemLike;
911

1012
@NothingNullByDefault
@@ -24,7 +26,7 @@ public static PaxelShapedRecipeBuilder shapedRecipe(ItemLike result, int count)
2426
}
2527

2628
@Override
27-
protected Recipe<?> wrapRecipe(ShapedRecipe recipe) {
28-
return new PaxelRecipe(recipe);
29+
protected Recipe<?> wrapRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
30+
return new PaxelRecipe(group, category, pattern, result, showNotification);
2931
}
3032
}

src/main/java/mekanism/common/content/qio/QIOCraftingWindow.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@
3939
import net.minecraft.world.item.crafting.Ingredient;
4040
import net.minecraft.world.item.crafting.RecipeHolder;
4141
import net.minecraft.world.item.crafting.RecipeType;
42+
import net.minecraft.world.item.crafting.ShapedRecipe;
4243
import net.minecraft.world.level.GameRules;
4344
import net.minecraft.world.level.Level;
4445
import net.neoforged.neoforge.common.CommonHooks;
45-
import net.neoforged.neoforge.common.crafting.IShapedRecipe;
4646
import net.neoforged.neoforge.common.util.RecipeMatcher;
4747
import org.jetbrains.annotations.Contract;
4848
import org.jetbrains.annotations.NotNull;
@@ -827,7 +827,7 @@ private void mapRecipe(int index, ItemStack used) {
827827
}
828828
//Ensure our remainder helper has been initialized as we will make use of it in validation
829829
remainderHelper.updateInputsWithReplacement(index, used);
830-
if (lastRecipe.value() instanceof IShapedRecipe<?> shapedRecipe) {
830+
if (lastRecipe.value() instanceof ShapedRecipe shapedRecipe) {
831831
//It is a shaped recipe, make use of this information to attempt to find the proper match
832832
mapShapedRecipe(shapedRecipe, ingredients, index, used);
833833
} else {
@@ -845,7 +845,7 @@ private ItemStack getItem(int i, int index, ItemStack used) {
845845
return ItemStack.EMPTY;
846846
}
847847

848-
private void mapShapedRecipe(IShapedRecipe<?> shapedRecipe, NonNullList<Ingredient> ingredients, int index, ItemStack used) {
848+
private void mapShapedRecipe(ShapedRecipe shapedRecipe, NonNullList<Ingredient> ingredients, int index, ItemStack used) {
849849
int recipeWidth = shapedRecipe.getWidth();
850850
int recipeHeight = shapedRecipe.getHeight();
851851
for (int columnStart = 0; columnStart <= 3 - recipeWidth; columnStart++) {

src/main/java/mekanism/common/recipe/WrappedShapedRecipe.java

Lines changed: 7 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,19 @@
22

33
import mekanism.api.annotations.NothingNullByDefault;
44
import net.minecraft.core.HolderLookup;
5-
import net.minecraft.core.NonNullList;
65
import net.minecraft.world.item.ItemStack;
76
import net.minecraft.world.item.crafting.CraftingBookCategory;
87
import net.minecraft.world.item.crafting.CraftingInput;
98
import net.minecraft.world.item.crafting.CraftingRecipe;
10-
import net.minecraft.world.item.crafting.Ingredient;
119
import net.minecraft.world.item.crafting.ShapedRecipe;
10+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
1211
import net.minecraft.world.level.Level;
13-
import net.neoforged.neoforge.common.crafting.IShapedRecipe;
1412

1513
@NothingNullByDefault
16-
public abstract class WrappedShapedRecipe implements CraftingRecipe, IShapedRecipe<CraftingInput> {
14+
public abstract class WrappedShapedRecipe extends ShapedRecipe implements CraftingRecipe {
1715

18-
private final ShapedRecipe internal;
19-
20-
protected WrappedShapedRecipe(ShapedRecipe internal) {
21-
this.internal = internal;
22-
}
23-
24-
public ShapedRecipe getInternal() {
25-
return internal;
26-
}
27-
28-
@Override
29-
public CraftingBookCategory category() {
30-
return internal.category();
16+
protected WrappedShapedRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
17+
super(group, category, pattern, result, showNotification);
3118
}
3219

3320
@Override
@@ -37,56 +24,10 @@ public CraftingBookCategory category() {
3724
public boolean matches(CraftingInput input, Level world) {
3825
//Note: We do not override the matches method if it matches ignoring NBT,
3926
// to ensure that we return the proper value for if there is a match that gives a proper output
40-
return internal.matches(input, world) && !assemble(input, world.registryAccess()).isEmpty();
41-
}
42-
43-
@Override
44-
public boolean canCraftInDimensions(int width, int height) {
45-
return internal.canCraftInDimensions(width, height);
46-
}
47-
48-
@Override
49-
public ItemStack getResultItem(HolderLookup.Provider provider) {
50-
return internal.getResultItem(provider);
51-
}
52-
53-
@Override
54-
public NonNullList<ItemStack> getRemainingItems(CraftingInput input) {
55-
return internal.getRemainingItems(input);
56-
}
57-
58-
@Override
59-
public NonNullList<Ingredient> getIngredients() {
60-
return internal.getIngredients();
27+
return super.matches(input, world) && !assemble(input, world.registryAccess()).isEmpty();
6128
}
6229

63-
@Override
64-
public boolean isSpecial() {
65-
return internal.isSpecial();
66-
}
67-
68-
@Override
69-
public String getGroup() {
70-
return internal.getGroup();
71-
}
72-
73-
@Override
74-
public ItemStack getToastSymbol() {
75-
return internal.getToastSymbol();
76-
}
77-
78-
@Override
79-
public int getWidth() {
80-
return internal.getWidth();
81-
}
82-
83-
@Override
84-
public int getHeight() {
85-
return internal.getHeight();
86-
}
87-
88-
@Override
89-
public boolean isIncomplete() {
90-
return internal.isIncomplete();
30+
public ShapedRecipePattern getPattern() {
31+
return this.pattern;
9132
}
9233
}

src/main/java/mekanism/common/recipe/serializer/MekanismRecipeSerializer.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.mojang.datafixers.util.Function3;
44
import com.mojang.datafixers.util.Function4;
5+
import com.mojang.datafixers.util.Function5;
56
import com.mojang.datafixers.util.Function7;
67
import com.mojang.serialization.Codec;
78
import com.mojang.serialization.DataResult;
@@ -53,9 +54,11 @@
5354
import net.minecraft.network.codec.StreamCodec;
5455
import net.minecraft.util.ExtraCodecs;
5556
import net.minecraft.world.item.ItemStack;
57+
import net.minecraft.world.item.crafting.CraftingBookCategory;
5658
import net.minecraft.world.item.crafting.Recipe;
5759
import net.minecraft.world.item.crafting.RecipeSerializer;
5860
import net.minecraft.world.item.crafting.ShapedRecipe;
61+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
5962
import net.neoforged.neoforge.fluids.FluidStack;
6063
import net.neoforged.neoforge.network.codec.NeoForgeStreamCodecs;
6164

@@ -64,10 +67,10 @@ public record MekanismRecipeSerializer<RECIPE extends Recipe<?>>(MapCodec<RECIPE
6467

6568
private static final Codec<FloatingLong> FLOAT_LONG_AT_LEAST_ONE = FloatingLong.CODEC.validate(fl -> fl.smallerThan(FloatingLong.ONE) ? DataResult.error(() -> "Expected energyMultiplier to be at least one.") : DataResult.success(fl));
6669

67-
public static <RECIPE extends WrappedShapedRecipe> MekanismRecipeSerializer<RECIPE> wrapped(Function<ShapedRecipe, RECIPE> wrapper) {
70+
public static <RECIPE extends WrappedShapedRecipe> MekanismRecipeSerializer<RECIPE> wrapped(Function5<String, CraftingBookCategory, ShapedRecipePattern, ItemStack, Boolean, RECIPE> wrapper) {
6871
return new MekanismRecipeSerializer<>(
69-
RecipeSerializer.SHAPED_RECIPE.codec().xmap(wrapper, WrappedShapedRecipe::getInternal),
70-
RecipeSerializer.SHAPED_RECIPE.streamCodec().map(wrapper, WrappedShapedRecipe::getInternal)
72+
RecipeSerializer.SHAPED_RECIPE.codec().xmap(shaped -> wrapper.apply(shaped.getGroup(), shaped.category(), shaped.pattern, shaped.result, shaped.showNotification()), Function.identity()),
73+
RecipeSerializer.SHAPED_RECIPE.streamCodec().map(shaped -> wrapper.apply(shaped.getGroup(), shaped.category(), shaped.pattern, shaped.result, shaped.showNotification()), Function.identity())
7174
);
7275
}
7376

src/main/java/mekanism/common/recipe/upgrade/MekanismShapedRecipe.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@
1111
import mekanism.common.registries.MekanismRecipeSerializersInternal;
1212
import net.minecraft.core.HolderLookup;
1313
import net.minecraft.world.item.ItemStack;
14+
import net.minecraft.world.item.crafting.CraftingBookCategory;
1415
import net.minecraft.world.item.crafting.CraftingInput;
1516
import net.minecraft.world.item.crafting.RecipeSerializer;
1617
import net.minecraft.world.item.crafting.ShapedRecipe;
18+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
1719

1820
@NothingNullByDefault
1921
public class MekanismShapedRecipe extends WrappedShapedRecipe {
2022

21-
public MekanismShapedRecipe(ShapedRecipe internal) {
22-
super(internal);
23+
public MekanismShapedRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
24+
super(group, category, pattern, result, showNotification);
2325
}
2426

2527
@Override

src/main/resources/META-INF/accesstransformer.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,6 @@ public net.minecraft.world.level.material.MapColor MATERIAL_COLORS
112112
public net.minecraft.world.level.storage.loot.functions.CopyNbtFunction$Path
113113

114114
public net.minecraft.world.phys.AABB getDirection(Lnet/minecraft/world/phys/AABB;Lnet/minecraft/world/phys/Vec3;[DLnet/minecraft/core/Direction;DDD)Lnet/minecraft/core/Direction;
115+
116+
public net.minecraft.world.item.crafting.ShapedRecipe pattern
117+
public net.minecraft.world.item.crafting.ShapedRecipe result

src/tools/java/mekanism/tools/common/recipe/PaxelRecipe.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,17 @@
66
import mekanism.tools.common.registries.ToolsRecipeSerializers;
77
import net.minecraft.core.HolderLookup;
88
import net.minecraft.world.item.ItemStack;
9+
import net.minecraft.world.item.crafting.CraftingBookCategory;
910
import net.minecraft.world.item.crafting.CraftingInput;
1011
import net.minecraft.world.item.crafting.RecipeSerializer;
1112
import net.minecraft.world.item.crafting.ShapedRecipe;
13+
import net.minecraft.world.item.crafting.ShapedRecipePattern;
1214

1315
@NothingNullByDefault
1416
public class PaxelRecipe extends WrappedShapedRecipe {
1517

16-
public PaxelRecipe(ShapedRecipe internal) {
17-
super(internal);
18+
public PaxelRecipe(String group, CraftingBookCategory category, ShapedRecipePattern pattern, ItemStack result, boolean showNotification) {
19+
super(group, category, pattern, result, showNotification);
1820
}
1921

2022
@Override

0 commit comments

Comments
 (0)