From 5296049d81a7d201eeb1f535b4223bd0ba21febb Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 1 Sep 2023 17:37:03 +0800 Subject: Update to 23w35a --- .../recipebook/DefaultRecipeBookHandler.java | 5 ++-- .../rei/plugin/client/DefaultClientPlugin.java | 6 ++-- .../common/displays/DefaultCampfireDisplay.java | 7 +++-- .../common/displays/DefaultSmithingDisplay.java | 32 ++++++++++++---------- .../displays/DefaultStoneCuttingDisplay.java | 7 +++-- .../displays/cooking/DefaultBlastingDisplay.java | 3 +- .../displays/cooking/DefaultCookingDisplay.java | 17 ++++++------ .../displays/cooking/DefaultSmeltingDisplay.java | 3 +- .../displays/cooking/DefaultSmokingDisplay.java | 3 +- .../crafting/CraftingRecipeSizeProvider.java | 6 ++++ .../displays/crafting/DefaultCraftingDisplay.java | 32 +++++++++------------- .../displays/crafting/DefaultCustomDisplay.java | 9 +++--- .../crafting/DefaultCustomShapedDisplay.java | 9 +++--- .../crafting/DefaultCustomShapelessDisplay.java | 9 +++--- .../displays/crafting/DefaultShapedDisplay.java | 11 ++++---- .../displays/crafting/DefaultShapelessDisplay.java | 7 +++-- 16 files changed, 91 insertions(+), 75 deletions(-) (limited to 'default-plugin/src/main/java/me') diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/recipebook/DefaultRecipeBookHandler.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/recipebook/DefaultRecipeBookHandler.java index d475a4b28..05a877f75 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/recipebook/DefaultRecipeBookHandler.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/recipebook/DefaultRecipeBookHandler.java @@ -37,6 +37,7 @@ import net.minecraft.world.inventory.CraftingMenu; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.inventory.RecipeBookMenu; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; @Environment(EnvType.CLIENT) public class DefaultRecipeBookHandler implements TransferHandler { @@ -61,7 +62,7 @@ public class DefaultRecipeBookHandler implements TransferHandler { } if (h == -1 || w == -1) return Result.createNotApplicable(); - Recipe recipe = craftingDisplay.getOptionalRecipe().get(); + RecipeHolder recipe = craftingDisplay.getOptionalRecipe().get(); if (craftingDisplay.getHeight() > h || craftingDisplay.getWidth() > w) return Result.createFailed(Component.translatable("error.rei.transfer.too_small", h, w)); if (!context.getMinecraft().player.getRecipeBook().contains(recipe)) @@ -76,7 +77,7 @@ public class DefaultRecipeBookHandler implements TransferHandler { } } else if (display instanceof DefaultCookingDisplay defaultDisplay) { if (defaultDisplay.getOptionalRecipe().isPresent()) { - Recipe recipe = (defaultDisplay).getOptionalRecipe().get(); + RecipeHolder recipe = (defaultDisplay).getOptionalRecipe().get(); if (!context.getMinecraft().player.getRecipeBook().contains(recipe)) return Result.createNotApplicable(); if (!context.isActuallyCrafting()) diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java index 38c9b1696..f96bf9011 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java @@ -265,8 +265,8 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin registry.registerRecipeFiller(BlastingRecipe.class, RecipeType.BLASTING, DefaultBlastingDisplay::new); registry.registerRecipeFiller(CampfireCookingRecipe.class, RecipeType.CAMPFIRE_COOKING, DefaultCampfireDisplay::new); registry.registerRecipeFiller(StonecutterRecipe.class, RecipeType.STONECUTTING, DefaultStoneCuttingDisplay::new); - registry.registerRecipeFiller(SmithingTransformRecipe.class, RecipeType.SMITHING, DefaultSmithingDisplay::new); - registry.registerRecipeFiller(SmithingTrimRecipe.class, RecipeType.SMITHING, DefaultSmithingDisplay::new); + registry.registerRecipeFiller(SmithingTransformRecipe.class, RecipeType.SMITHING, DefaultSmithingDisplay::ofTransforming); + registry.registerRecipeFiller(SmithingTrimRecipe.class, RecipeType.SMITHING, DefaultSmithingDisplay::ofTrimming); registry.registerFiller(AnvilRecipe.class, DefaultAnvilDisplay::new); registry.registerFiller(BrewingRecipe.class, DefaultBrewingDisplay::new); registry.registerFiller(TagKey.class, tagKey -> { @@ -369,7 +369,7 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin } protected void registerForgePotions(DisplayRegistry registry, BuiltinClientPlugin clientPlugin) { - + } @Override diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java index 3119c8f85..c5352b3d2 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java @@ -31,6 +31,7 @@ import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.CampfireCookingRecipe; +import net.minecraft.world.item.crafting.RecipeHolder; import java.util.Collections; import java.util.List; @@ -39,9 +40,9 @@ import java.util.Optional; public class DefaultCampfireDisplay extends BasicDisplay { private double cookTime; - public DefaultCampfireDisplay(CampfireCookingRecipe recipe) { - this(EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), - Optional.ofNullable(recipe).map(CampfireCookingRecipe::getId), recipe.getCookingTime()); + public DefaultCampfireDisplay(RecipeHolder recipe) { + this(EntryIngredients.ofIngredients(recipe.value().getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), + Optional.ofNullable(recipe.id()), recipe.value().getCookingTime()); } public DefaultCampfireDisplay(List inputs, List outputs, Optional location, CompoundTag tag) { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java index 7a4b445f8..961946780 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java @@ -29,35 +29,39 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.util.EntryIngredients; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.SmithingRecipe; import net.minecraft.world.item.crafting.SmithingTransformRecipe; import net.minecraft.world.item.crafting.SmithingTrimRecipe; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Optional; public class DefaultSmithingDisplay extends BasicDisplay { @ApiStatus.Experimental - public DefaultSmithingDisplay(SmithingTransformRecipe recipe) { - this( - recipe, + public static DefaultSmithingDisplay ofTransforming(RecipeHolder recipe) { + return new DefaultSmithingDisplay( + recipe.value(), + recipe.id(), List.of( - EntryIngredients.ofIngredient(recipe.template), - EntryIngredients.ofIngredient(recipe.base), - EntryIngredients.ofIngredient(recipe.addition) + EntryIngredients.ofIngredient(recipe.value().template), + EntryIngredients.ofIngredient(recipe.value().base), + EntryIngredients.ofIngredient(recipe.value().addition) ) ); } @ApiStatus.Experimental - public DefaultSmithingDisplay(SmithingTrimRecipe recipe) { - this( - recipe, + public static DefaultSmithingDisplay ofTrimming(RecipeHolder recipe) { + return new DefaultSmithingDisplay( + recipe.value(), + recipe.id(), List.of( - EntryIngredients.ofIngredient(recipe.template), - EntryIngredients.ofIngredient(recipe.base), - EntryIngredients.ofIngredient(recipe.addition) + EntryIngredients.ofIngredient(recipe.value().template), + EntryIngredients.ofIngredient(recipe.value().base), + EntryIngredients.ofIngredient(recipe.value().addition) ) ); } @@ -101,11 +105,11 @@ public class DefaultSmithingDisplay extends BasicDisplay { // ); // } - public DefaultSmithingDisplay(SmithingRecipe recipe, List inputs) { + public DefaultSmithingDisplay(SmithingRecipe recipe, @Nullable ResourceLocation id, List inputs) { this( inputs, List.of(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), - Optional.ofNullable(recipe.getId()) + Optional.ofNullable(id) ); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java index 9359d6d0e..dd5ed55d2 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java @@ -29,6 +29,7 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.util.EntryIngredients; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.StonecutterRecipe; import java.util.Collections; @@ -36,9 +37,9 @@ import java.util.List; import java.util.Optional; public class DefaultStoneCuttingDisplay extends BasicDisplay { - public DefaultStoneCuttingDisplay(StonecutterRecipe recipe) { - this(EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), - Optional.ofNullable(recipe.getId())); + public DefaultStoneCuttingDisplay(RecipeHolder recipe) { + this(EntryIngredients.ofIngredients(recipe.value().getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), + Optional.ofNullable(recipe.id())); } public DefaultStoneCuttingDisplay(List inputs, List outputs, Optional location) { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java index 059511111..5022bbb35 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java @@ -28,11 +28,12 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.crafting.BlastingRecipe; +import net.minecraft.world.item.crafting.RecipeHolder; import java.util.List; public class DefaultBlastingDisplay extends DefaultCookingDisplay { - public DefaultBlastingDisplay(BlastingRecipe recipe) { + public DefaultBlastingDisplay(RecipeHolder recipe) { super(recipe); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java index a69f49a61..7366a91f0 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java @@ -30,21 +30,22 @@ import me.shedaniel.rei.api.common.registry.RecipeManagerContext; import me.shedaniel.rei.api.common.util.EntryIngredients; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.crafting.AbstractCookingRecipe; -import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; import java.util.Optional; public abstract class DefaultCookingDisplay extends BasicDisplay implements SimpleGridMenuDisplay { - private Recipe recipe; + private RecipeHolder recipe; private float xp; private double cookTime; - public DefaultCookingDisplay(AbstractCookingRecipe recipe) { - this(EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), - recipe, recipe.getExperience(), recipe.getCookingTime()); + public DefaultCookingDisplay(RecipeHolder recipe) { + this(EntryIngredients.ofIngredients(recipe.value().getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), + recipe, recipe.value().getExperience(), recipe.value().getCookingTime()); } public DefaultCookingDisplay(List input, List output, CompoundTag tag) { @@ -52,8 +53,8 @@ public abstract class DefaultCookingDisplay extends BasicDisplay implements Simp tag.getFloat("xp"), tag.getDouble("cookTime")); } - public DefaultCookingDisplay(List input, List output, Recipe recipe, float xp, double cookTime) { - super(input, output, Optional.ofNullable(recipe).map(Recipe::getId)); + public DefaultCookingDisplay(List input, List output, @Nullable RecipeHolder recipe, float xp, double cookTime) { + super(input, output, Optional.ofNullable(recipe).map(RecipeHolder::id)); this.recipe = recipe; this.xp = xp; this.cookTime = cookTime; @@ -68,7 +69,7 @@ public abstract class DefaultCookingDisplay extends BasicDisplay implements Simp } @ApiStatus.Internal - public Optional> getOptionalRecipe() { + public Optional> getOptionalRecipe() { return Optional.ofNullable(recipe); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java index ff8ba1387..f89fbad75 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java @@ -27,12 +27,13 @@ import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.SmeltingRecipe; import java.util.List; public class DefaultSmeltingDisplay extends DefaultCookingDisplay { - public DefaultSmeltingDisplay(SmeltingRecipe recipe) { + public DefaultSmeltingDisplay(RecipeHolder recipe) { super(recipe); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmokingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmokingDisplay.java index c769eb3e4..e77ec3465 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmokingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmokingDisplay.java @@ -27,12 +27,13 @@ import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.SmokingRecipe; import java.util.List; public class DefaultSmokingDisplay extends DefaultCookingDisplay { - public DefaultSmokingDisplay(SmokingRecipe recipe) { + public DefaultSmokingDisplay(RecipeHolder recipe) { super(recipe); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/CraftingRecipeSizeProvider.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/CraftingRecipeSizeProvider.java index 79ba2f856..4fb13af7c 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/CraftingRecipeSizeProvider.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/CraftingRecipeSizeProvider.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.plugin.common.displays.crafting; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -73,4 +74,9 @@ public interface CraftingRecipeSizeProvider> { @Nullable Size getSize(R recipe); + + @Nullable + default Size getSize(RecipeHolder recipeHolder) { + return getSize(recipeHolder.value()); + } } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java index 03243114a..543f487ab 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java @@ -43,24 +43,17 @@ import net.minecraft.core.NonNullList; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.item.crafting.ShapedRecipe; -import net.minecraft.world.item.crafting.ShapelessRecipe; +import net.minecraft.world.item.crafting.*; import org.jetbrains.annotations.Nullable; import java.lang.reflect.InvocationTargetException; import java.util.*; public abstract class DefaultCraftingDisplay> extends BasicDisplay implements SimpleGridMenuDisplay { - protected Optional recipe; + protected Optional> recipe; - public DefaultCraftingDisplay(List inputs, List outputs, Optional recipe) { - this(inputs, outputs, recipe.map(Recipe::getId), recipe); - } - - public DefaultCraftingDisplay(List inputs, List outputs, Optional location, Optional recipe) { - super(inputs, outputs, location); + public DefaultCraftingDisplay(List inputs, List outputs, Optional> recipe) { + super(inputs, outputs, recipe.map(RecipeHolder::id)); this.recipe = recipe; } @@ -89,24 +82,25 @@ public abstract class DefaultCraftingDisplay> extends BasicD } @Nullable - public static DefaultCraftingDisplay of(Recipe recipe) { + public static DefaultCraftingDisplay of(RecipeHolder> holder) { + Recipe recipe = holder.value(); if (recipe instanceof ShapelessRecipe) { - return new DefaultShapelessDisplay((ShapelessRecipe) recipe); + return new DefaultShapelessDisplay((RecipeHolder) holder); } else if (recipe instanceof ShapedRecipe) { - return new DefaultShapedDisplay((ShapedRecipe) recipe); + return new DefaultShapedDisplay((RecipeHolder) holder); } else if (!recipe.isSpecial()) { NonNullList ingredients = recipe.getIngredients(); for (CraftingRecipeSizeProvider pair : SIZE_PROVIDER) { - CraftingRecipeSizeProvider.Size size = ((CraftingRecipeSizeProvider>) pair).getSize(recipe); + CraftingRecipeSizeProvider.Size size = ((CraftingRecipeSizeProvider>) pair).getSize((RecipeHolder>) holder); if (size != null) { - return new DefaultCustomShapedDisplay(recipe, EntryIngredients.ofIngredients(recipe.getIngredients()), + return new DefaultCustomShapedDisplay(holder, EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), size.getWidth(), size.getHeight()); } } - return new DefaultCustomDisplay(recipe, EntryIngredients.ofIngredients(recipe.getIngredients()), + return new DefaultCustomDisplay(holder, EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess())))); } @@ -118,13 +112,13 @@ public abstract class DefaultCraftingDisplay> extends BasicD return BuiltinPlugin.CRAFTING; } - public Optional getOptionalRecipe() { + public Optional> getOptionalRecipe() { return recipe; } @Override public Optional getDisplayLocation() { - return getOptionalRecipe().map(Recipe::getId); + return getOptionalRecipe().map(RecipeHolder::id); } public List> getOrganisedInputEntries(SimpleGridMenuInfo> menuInfo, T container) { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java index 8907a5c04..07e374cd9 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java @@ -27,6 +27,7 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.registry.RecipeManagerContext; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.Nullable; import java.util.BitSet; @@ -37,12 +38,12 @@ public class DefaultCustomDisplay extends DefaultCraftingDisplay> { private int width; private int height; - public DefaultCustomDisplay(@Nullable Recipe possibleRecipe, List input, List output) { + public DefaultCustomDisplay(@Nullable RecipeHolder possibleRecipe, List input, List output) { this(null, possibleRecipe, input, output); } - public DefaultCustomDisplay(@Nullable ResourceLocation location, @Nullable Recipe possibleRecipe, List input, List output) { - super(input, output, Optional.ofNullable(location == null && possibleRecipe != null ? possibleRecipe.getId() : location), Optional.ofNullable(possibleRecipe)); + public DefaultCustomDisplay(@Nullable ResourceLocation location, @Nullable RecipeHolder possibleRecipe, List input, List output) { + super(input, output, Optional.ofNullable((RecipeHolder>) possibleRecipe)); BitSet row = new BitSet(3); BitSet column = new BitSet(3); for (int i = 0; i < 9; i++) @@ -58,7 +59,7 @@ public class DefaultCustomDisplay extends DefaultCraftingDisplay> { } public static DefaultCustomDisplay simple(List input, List output, Optional location) { - Recipe optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) + RecipeHolder optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) .orElse(null); return new DefaultCustomDisplay(location.orElse(null), optionalRecipe, input, output); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapedDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapedDisplay.java index 9015734a7..a7dbdbae7 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapedDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapedDisplay.java @@ -27,6 +27,7 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.registry.RecipeManagerContext; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -36,18 +37,18 @@ public class DefaultCustomShapedDisplay extends DefaultCraftingDisplay private int width; private int height; - public DefaultCustomShapedDisplay(@Nullable Recipe possibleRecipe, List input, List output, int width, int height) { + public DefaultCustomShapedDisplay(@Nullable RecipeHolder possibleRecipe, List input, List output, int width, int height) { this(null, possibleRecipe, input, output, width, height); } - public DefaultCustomShapedDisplay(@Nullable ResourceLocation location, @Nullable Recipe possibleRecipe, List input, List output, int width, int height) { - super(input, output, Optional.ofNullable(location == null && possibleRecipe != null ? possibleRecipe.getId() : location), Optional.ofNullable(possibleRecipe)); + public DefaultCustomShapedDisplay(@Nullable ResourceLocation location, @Nullable RecipeHolder possibleRecipe, List input, List output, int width, int height) { + super(input, output, Optional.ofNullable((RecipeHolder>) possibleRecipe)); this.width = width; this.height = height; } public static DefaultCustomShapedDisplay simple(List input, List output, int width, int height, Optional location) { - Recipe optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) + RecipeHolder optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) .orElse(null); return new DefaultCustomShapedDisplay(location.orElse(null), optionalRecipe, input, output, width, height); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapelessDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapelessDisplay.java index bbdb43488..34a0d30e8 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapelessDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapelessDisplay.java @@ -27,22 +27,23 @@ import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.registry.RecipeManagerContext; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Optional; public class DefaultCustomShapelessDisplay extends DefaultCraftingDisplay> { - public DefaultCustomShapelessDisplay(@Nullable Recipe possibleRecipe, List input, List output) { + public DefaultCustomShapelessDisplay(@Nullable RecipeHolder possibleRecipe, List input, List output) { this(null, possibleRecipe, input, output); } - public DefaultCustomShapelessDisplay(@Nullable ResourceLocation location, @Nullable Recipe possibleRecipe, List input, List output) { - super(input, output, Optional.ofNullable(location == null && possibleRecipe != null ? possibleRecipe.getId() : location), Optional.ofNullable(possibleRecipe)); + public DefaultCustomShapelessDisplay(@Nullable ResourceLocation location, @Nullable RecipeHolder possibleRecipe, List input, List output) { + super(input, output, Optional.ofNullable((RecipeHolder>) possibleRecipe)); } public static DefaultCustomShapelessDisplay simple(List input, List output, Optional location) { - Recipe optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) + RecipeHolder optionalRecipe = location.flatMap(resourceLocation -> RecipeManagerContext.getInstance().getRecipeManager().byKey(resourceLocation)) .orElse(null); return new DefaultCustomShapelessDisplay(location.orElse(null), optionalRecipe, input, output); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java index fcfa5db47..341a8ccd0 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java @@ -25,16 +25,17 @@ package me.shedaniel.rei.plugin.common.displays.crafting; import me.shedaniel.rei.api.common.display.basic.BasicDisplay; import me.shedaniel.rei.api.common.util.EntryIngredients; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.ShapedRecipe; import java.util.Collections; import java.util.Optional; public class DefaultShapedDisplay extends DefaultCraftingDisplay { - public DefaultShapedDisplay(ShapedRecipe recipe) { + public DefaultShapedDisplay(RecipeHolder recipe) { super( - EntryIngredients.ofIngredients(recipe.getIngredients()), - Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), + EntryIngredients.ofIngredients(recipe.value().getIngredients()), + Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), Optional.of(recipe) ); } @@ -42,12 +43,12 @@ public class DefaultShapedDisplay extends DefaultCraftingDisplay { @SuppressWarnings("OptionalGetWithoutIsPresent") @Override public int getWidth() { - return recipe.get().getWidth(); + return recipe.get().value().getWidth(); } @SuppressWarnings("OptionalGetWithoutIsPresent") @Override public int getHeight() { - return recipe.get().getHeight(); + return recipe.get().value().getHeight(); } } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java index e03356b03..22c3c6ecd 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java @@ -25,16 +25,17 @@ package me.shedaniel.rei.plugin.common.displays.crafting; import me.shedaniel.rei.api.common.display.basic.BasicDisplay; import me.shedaniel.rei.api.common.util.EntryIngredients; +import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.ShapelessRecipe; import java.util.Collections; import java.util.Optional; public class DefaultShapelessDisplay extends DefaultCraftingDisplay { - public DefaultShapelessDisplay(ShapelessRecipe recipe) { + public DefaultShapelessDisplay(RecipeHolder recipe) { super( - EntryIngredients.ofIngredients(recipe.getIngredients()), - Collections.singletonList(EntryIngredients.of(recipe.getResultItem(BasicDisplay.registryAccess()))), + EntryIngredients.ofIngredients(recipe.value().getIngredients()), + Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), Optional.of(recipe) ); } -- cgit