diff options
| author | shedaniel <daniel@shedaniel.me> | 2023-09-01 17:37:03 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2023-09-01 17:37:03 +0800 |
| commit | 5296049d81a7d201eeb1f535b4223bd0ba21febb (patch) | |
| tree | db95b66817c05136ec27f9112103555822740318 /default-plugin/src/main/java/me/shedaniel/rei/plugin/common | |
| parent | 8a68acf83e7c45b381893d1abeb35040c245ace4 (diff) | |
| download | RoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.tar.gz RoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.tar.bz2 RoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.zip | |
Update to 23w35a
Diffstat (limited to 'default-plugin/src/main/java/me/shedaniel/rei/plugin/common')
14 files changed, 85 insertions, 70 deletions
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<CampfireCookingRecipe> 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<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<ResourceLocation> 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<SmithingTransformRecipe> 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<SmithingTrimRecipe> 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<EntryIngredient> inputs) { + public DefaultSmithingDisplay(SmithingRecipe recipe, @Nullable ResourceLocation id, List<EntryIngredient> 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<StonecutterRecipe> recipe) { + this(EntryIngredients.ofIngredients(recipe.value().getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.value().getResultItem(BasicDisplay.registryAccess()))), + Optional.ofNullable(recipe.id())); } public DefaultStoneCuttingDisplay(List<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<ResourceLocation> 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<BlastingRecipe> 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<? extends AbstractCookingRecipe> 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<EntryIngredient> input, List<EntryIngredient> output, CompoundTag tag) { @@ -52,8 +53,8 @@ public abstract class DefaultCookingDisplay extends BasicDisplay implements Simp tag.getFloat("xp"), tag.getDouble("cookTime")); } - public DefaultCookingDisplay(List<EntryIngredient> input, List<EntryIngredient> output, Recipe<?> recipe, float xp, double cookTime) { - super(input, output, Optional.ofNullable(recipe).map(Recipe::getId)); + public DefaultCookingDisplay(List<EntryIngredient> input, List<EntryIngredient> 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<Recipe<?>> getOptionalRecipe() { + public Optional<RecipeHolder<?>> 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<SmeltingRecipe> 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<SmokingRecipe> 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<R extends Recipe<?>> { @Nullable Size getSize(R recipe); + + @Nullable + default Size getSize(RecipeHolder<R> 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<C extends Recipe<?>> extends BasicDisplay implements SimpleGridMenuDisplay { - protected Optional<C> recipe; + protected Optional<RecipeHolder<C>> recipe; - public DefaultCraftingDisplay(List<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<C> recipe) { - this(inputs, outputs, recipe.map(Recipe::getId), recipe); - } - - public DefaultCraftingDisplay(List<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<ResourceLocation> location, Optional<C> recipe) { - super(inputs, outputs, location); + public DefaultCraftingDisplay(List<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<RecipeHolder<C>> recipe) { + super(inputs, outputs, recipe.map(RecipeHolder::id)); this.recipe = recipe; } @@ -89,24 +82,25 @@ public abstract class DefaultCraftingDisplay<C extends Recipe<?>> extends BasicD } @Nullable - public static DefaultCraftingDisplay<?> of(Recipe<?> recipe) { + public static DefaultCraftingDisplay<?> of(RecipeHolder<? extends Recipe<?>> holder) { + Recipe<?> recipe = holder.value(); if (recipe instanceof ShapelessRecipe) { - return new DefaultShapelessDisplay((ShapelessRecipe) recipe); + return new DefaultShapelessDisplay((RecipeHolder<ShapelessRecipe>) holder); } else if (recipe instanceof ShapedRecipe) { - return new DefaultShapedDisplay((ShapedRecipe) recipe); + return new DefaultShapedDisplay((RecipeHolder<ShapedRecipe>) holder); } else if (!recipe.isSpecial()) { NonNullList<Ingredient> ingredients = recipe.getIngredients(); for (CraftingRecipeSizeProvider<?> pair : SIZE_PROVIDER) { - CraftingRecipeSizeProvider.Size size = ((CraftingRecipeSizeProvider<Recipe<?>>) pair).getSize(recipe); + CraftingRecipeSizeProvider.Size size = ((CraftingRecipeSizeProvider<Recipe<?>>) pair).getSize((RecipeHolder<Recipe<?>>) 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<C extends Recipe<?>> extends BasicD return BuiltinPlugin.CRAFTING; } - public Optional<C> getOptionalRecipe() { + public Optional<RecipeHolder<C>> getOptionalRecipe() { return recipe; } @Override public Optional<ResourceLocation> getDisplayLocation() { - return getOptionalRecipe().map(Recipe::getId); + return getOptionalRecipe().map(RecipeHolder::id); } public <T extends AbstractContainerMenu> List<List<ItemStack>> getOrganisedInputEntries(SimpleGridMenuInfo<T, DefaultCraftingDisplay<?>> 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<Recipe<?>> { private int width; private int height; - public DefaultCustomDisplay(@Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output) { + public DefaultCustomDisplay(@Nullable RecipeHolder<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output) { this(null, possibleRecipe, input, output); } - public DefaultCustomDisplay(@Nullable ResourceLocation location, @Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> 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<EntryIngredient> input, List<EntryIngredient> output) { + super(input, output, Optional.ofNullable((RecipeHolder<Recipe<?>>) 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<Recipe<?>> { } public static DefaultCustomDisplay simple(List<EntryIngredient> input, List<EntryIngredient> output, Optional<ResourceLocation> 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<Recipe<?> private int width; private int height; - public DefaultCustomShapedDisplay(@Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output, int width, int height) { + public DefaultCustomShapedDisplay(@Nullable RecipeHolder<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output, int width, int height) { this(null, possibleRecipe, input, output, width, height); } - public DefaultCustomShapedDisplay(@Nullable ResourceLocation location, @Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> 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<EntryIngredient> input, List<EntryIngredient> output, int width, int height) { + super(input, output, Optional.ofNullable((RecipeHolder<Recipe<?>>) possibleRecipe)); this.width = width; this.height = height; } public static DefaultCustomShapedDisplay simple(List<EntryIngredient> input, List<EntryIngredient> output, int width, int height, Optional<ResourceLocation> 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<Recipe<?>> { - public DefaultCustomShapelessDisplay(@Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output) { + public DefaultCustomShapelessDisplay(@Nullable RecipeHolder<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output) { this(null, possibleRecipe, input, output); } - public DefaultCustomShapelessDisplay(@Nullable ResourceLocation location, @Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> 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<EntryIngredient> input, List<EntryIngredient> output) { + super(input, output, Optional.ofNullable((RecipeHolder<Recipe<?>>) possibleRecipe)); } public static DefaultCustomShapelessDisplay simple(List<EntryIngredient> input, List<EntryIngredient> output, Optional<ResourceLocation> 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<ShapedRecipe> { - public DefaultShapedDisplay(ShapedRecipe recipe) { + public DefaultShapedDisplay(RecipeHolder<ShapedRecipe> 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<ShapedRecipe> { @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<ShapelessRecipe> { - public DefaultShapelessDisplay(ShapelessRecipe recipe) { + public DefaultShapelessDisplay(RecipeHolder<ShapelessRecipe> recipe) { super( - EntryIngredients.ofIngredients(recipe.getIngredients()), - |
