aboutsummaryrefslogtreecommitdiff
path: root/default-plugin/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2023-09-01 17:37:03 +0800
committershedaniel <daniel@shedaniel.me>2023-09-01 17:37:03 +0800
commit5296049d81a7d201eeb1f535b4223bd0ba21febb (patch)
treedb95b66817c05136ec27f9112103555822740318 /default-plugin/src
parent8a68acf83e7c45b381893d1abeb35040c245ace4 (diff)
downloadRoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.tar.gz
RoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.tar.bz2
RoughlyEnoughItems-5296049d81a7d201eeb1f535b4223bd0ba21febb.zip
Update to 23w35a
Diffstat (limited to 'default-plugin/src')
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/recipebook/DefaultRecipeBookHandler.java5
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java7
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java32
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java7
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java17
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmokingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/CraftingRecipeSizeProvider.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java32
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java9
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapedDisplay.java9
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomShapelessDisplay.java9
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java11
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java7
16 files changed, 91 insertions, 75 deletions
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<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);