aboutsummaryrefslogtreecommitdiff
path: root/default-plugin/src/main/java/me/shedaniel/rei
diff options
context:
space:
mode:
Diffstat (limited to 'default-plugin/src/main/java/me/shedaniel/rei')
-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.java4
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ReferenceTagNodeWidget.java4
-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
20 files changed, 102 insertions, 84 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 ff2b22547..5fc2affee 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
@@ -38,6 +38,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;
import java.util.Optional;
@@ -71,7 +72,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))
@@ -86,7 +87,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 1ddc6d6eb..2764ca379 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
@@ -309,8 +309,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 -> {
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java
index 38de0e376..d9c6c7c35 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java
@@ -161,9 +161,9 @@ public class DefaultInformationCategory implements DisplayCategory<DefaultInform
}
@Override
- public boolean mouseScrolled(double mouseX, double mouseY, double amount) {
- if (containsMouse(mouseX, mouseY)) {
- scrolling.offset(ClothConfigInitializer.getScrollStep() * -amount, true);
+ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) {
+ if (containsMouse(mouseX, mouseY) && amountY != 0) {
+ scrolling.offset(ClothConfigInitializer.getScrollStep() * -amountY, true);
return true;
}
return false;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java
index 0c068776d..78b683e79 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java
@@ -122,9 +122,9 @@ public class DefaultBeaconBaseCategory implements DisplayCategory<DefaultBeaconB
}
@Override
- public boolean mouseScrolled(double double_1, double double_2, double double_3) {
- if (containsMouse(double_1, double_2)) {
- scrolling.offset(ClothConfigInitializer.getScrollStep() * -double_3, true);
+ public boolean mouseScrolled(double double_1, double double_2, double amountX, double amountY) {
+ if (containsMouse(double_1, double_2) && amountY != 0) {
+ scrolling.offset(ClothConfigInitializer.getScrollStep() * -amountY, true);
return true;
}
return false;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java
index c70d6e3bc..2172e3046 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java
@@ -122,9 +122,9 @@ public class DefaultBeaconPaymentCategory implements DisplayCategory<DefaultBeac
}
@Override
- public boolean mouseScrolled(double double_1, double double_2, double double_3) {
- if (containsMouse(double_1, double_2)) {
- scrolling.offset(ClothConfigInitializer.getScrollStep() * -double_3, true);
+ public boolean mouseScrolled(double double_1, double double_2, double amountX, double amountY) {
+ if (containsMouse(double_1, double_2) && amountY != 0) {
+ scrolling.offset(ClothConfigInitializer.getScrollStep() * -amountY, true);
return true;
}
return false;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ReferenceTagNodeWidget.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ReferenceTagNodeWidget.java
index 128300f11..04ddb52bf 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ReferenceTagNodeWidget.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ReferenceTagNodeWidget.java
@@ -71,7 +71,9 @@ public class ReferenceTagNodeWidget<S, T> extends TagNodeWidget<S, T> {
public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
if (this.overflowBounds.intersects(MatrixUtils.transform(graphics.pose().last().pose(), getBounds()))) {
RenderSystem.setShader(GameRenderer::getPositionTexShader);
- graphics.blit(new ResourceLocation("textures/gui/advancements/widgets.png"), bounds.x, bounds.y, 1, 128 + 27, 24, 24);
+ graphics.innerBlit(new ResourceLocation("textures/gui/sprites/advancements/task_frame_unobtained.png"),
+ bounds.x - 1, bounds.x - 1 + 26, bounds.y - 1, bounds.y - 1 + 26, 0,
+ 0, 1, 0, 1);
this.slot.getBounds().setLocation(bounds.getCenterX() - this.slot.getBounds().getWidth() / 2, bounds.y + (bounds.height - this.slot.getBounds().getHeight()) / 2 + 1);
this.slot.render(graphics, mouseX, mouseY, delta);
if (this.containsMouse(mouseX, mouseY)) {
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 a6bd71996..57fa27cca 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
@@ -44,24 +44,17 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
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;
}
@@ -90,24 +83,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()))));
}
@@ -119,13 +113,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;
i