diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-01-27 13:08:31 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-01-27 13:08:57 +0800 |
| commit | ef23b11140085651287ce35deca87723daf34e78 (patch) | |
| tree | 4e90b017debb7d90d9a760b6747639e42aababdf /default-plugin/src/main/java | |
| parent | bf6c426cbdcd89a8dd6dec43a07444f25fa6525f (diff) | |
| download | RoughlyEnoughItems-ef23b11140085651287ce35deca87723daf34e78.tar.gz RoughlyEnoughItems-ef23b11140085651287ce35deca87723daf34e78.tar.bz2 RoughlyEnoughItems-ef23b11140085651287ce35deca87723daf34e78.zip | |
Fix #738
Diffstat (limited to 'default-plugin/src/main/java')
3 files changed, 17 insertions, 4 deletions
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 53601861d..a921b82b1 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 @@ -59,7 +59,11 @@ public abstract class DefaultCraftingDisplay<C extends Recipe<?>> extends BasicD protected Optional<C> recipe; public DefaultCraftingDisplay(List<EntryIngredient> inputs, List<EntryIngredient> outputs, Optional<C> recipe) { - super(inputs, outputs, Optional.empty()); + 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); this.recipe = recipe; } 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 6d0676fdb..8f3b35dc8 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 @@ -38,7 +38,11 @@ public class DefaultCustomDisplay extends DefaultCraftingDisplay<Recipe<?>> { private int height; public DefaultCustomDisplay(@Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output) { - super(input, output, Optional.ofNullable(possibleRecipe)); + 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)); BitSet row = new BitSet(3); BitSet column = new BitSet(3); for (int i = 0; i < 9; i++) @@ -56,7 +60,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)) .orElse(null); - return new DefaultCustomDisplay(optionalRecipe, input, output); + return new DefaultCustomDisplay(location.orElse(null), optionalRecipe, input, output); } @Override 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 8ef10b757..a8bb9f9b9 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 @@ -24,6 +24,7 @@ package me.shedaniel.rei.plugin.common.displays.crafting; import me.shedaniel.rei.api.common.entry.EntryIngredient; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; import org.jetbrains.annotations.Nullable; @@ -35,7 +36,11 @@ public class DefaultCustomShapedDisplay extends DefaultCraftingDisplay<Recipe<?> private int height; public DefaultCustomShapedDisplay(@Nullable Recipe<?> possibleRecipe, List<EntryIngredient> input, List<EntryIngredient> output, int width, int height) { - super(input, output, Optional.ofNullable(possibleRecipe)); + 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)); this.width = width; this.height = height; } |
