diff options
| author | shedaniel <daniel@shedaniel.me> | 2024-10-26 16:55:52 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2024-10-26 16:55:57 +0800 |
| commit | ddb48e2032d1986709cad973067693eec3118504 (patch) | |
| tree | e7905130008c67767d2ad2a4d72f49ba4df7e6e3 /default-plugin/src/main/java/me/shedaniel | |
| parent | eaf9236e3da2adafcea204778ecc0072e70d0aa5 (diff) | |
| download | RoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.tar.gz RoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.tar.bz2 RoughlyEnoughItems-ddb48e2032d1986709cad973067693eec3118504.zip | |
Update to 1.21.2 (Please read Primer)
https://hackmd.io/@shedaniel/rei17_primer
Diffstat (limited to 'default-plugin/src/main/java/me/shedaniel')
69 files changed, 1739 insertions, 1038 deletions
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/InventoryCraftingTransferHandler.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/InventoryCraftingTransferHandler.java index d57fc1bb6..cf68ef1d4 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/InventoryCraftingTransferHandler.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/InventoryCraftingTransferHandler.java @@ -30,7 +30,7 @@ import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.InputIngredient; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; import me.shedaniel.rei.api.common.util.CollectionUtils; -import me.shedaniel.rei.plugin.common.displays.crafting.DefaultCraftingDisplay; +import me.shedaniel.rei.plugin.common.displays.crafting.CraftingDisplay; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; @@ -48,7 +48,7 @@ public class InventoryCraftingTransferHandler implements TransferHandler, Transf ApplicabilityResult applicable = parent.checkApplicable(context); if (!applicable.isApplicable()) return applicable; - DefaultCraftingDisplay<?> display = (DefaultCraftingDisplay<?>) context.getDisplay(); + CraftingDisplay display = (CraftingDisplay) context.getDisplay(); if (display != null && (display.getWidth() > 2 || display.getHeight() > 2)) { return ApplicabilityResult.createApplicableWithError(Component.translatable("error.rei.transfer.too_small", 2, 2)); } @@ -58,7 +58,7 @@ public class InventoryCraftingTransferHandler implements TransferHandler, Transf @Override public Result handle(Context context) { - List<InputIngredient<EntryStack<?>>> inputs = ((DefaultCraftingDisplay<?>) context.getDisplay()).getInputIngredients(2, 2); + List<InputIngredient<EntryStack<?>>> inputs = ((CraftingDisplay) context.getDisplay()).getInputIngredients(2, 2); return parent.handleSimpleTransfer(context, parent.getMissingInputRenderer(), CollectionUtils.map(inputs, entry -> InputIngredient.withType(entry, VanillaEntryTypes.ITEM)), parent.getInputSlots(context), parent.getInventorySlots(context)); 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 5f42f0303..107ec319e 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 @@ -27,20 +27,16 @@ import me.shedaniel.rei.api.client.ClientHelper; import me.shedaniel.rei.api.client.registry.transfer.TransferHandler; import me.shedaniel.rei.api.common.display.Display; import me.shedaniel.rei.api.common.display.SimpleGridMenuDisplay; -import me.shedaniel.rei.api.common.transfer.info.MenuTransferException; -import me.shedaniel.rei.plugin.common.displays.cooking.DefaultCookingDisplay; -import me.shedaniel.rei.plugin.common.displays.crafting.DefaultCraftingDisplay; +import me.shedaniel.rei.plugin.client.displays.ClientsidedCraftingDisplay; +import me.shedaniel.rei.plugin.client.displays.ClientsidedRecipeBookDisplay; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener; +import net.minecraft.client.gui.screens.inventory.AbstractRecipeBookScreen; import net.minecraft.network.chat.Component; 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; +import net.minecraft.world.item.crafting.display.RecipeDisplayId; @Environment(EnvType.CLIENT) public class DefaultRecipeBookHandler implements TransferHandler { @@ -49,7 +45,7 @@ public class DefaultRecipeBookHandler implements TransferHandler { if (context.getDisplay() instanceof SimpleGridMenuDisplay && ClientHelper.getInstance().canUseMovePackets()) return ApplicabilityResult.createNotApplicable(); Display display = context.getDisplay(); - if (!(context.getMenu() instanceof RecipeBookMenu<?, ?> container)) + if (!(context.getMenu() instanceof RecipeBookMenu container)) return ApplicabilityResult.createNotApplicable(); if (container == null) return ApplicabilityResult.createNotApplicable(); @@ -58,10 +54,10 @@ public class DefaultRecipeBookHandler implements TransferHandler { @Override public Result handle(Context context) { - RecipeBookMenu<?, ?> container = (RecipeBookMenu<?, ?>) context.getMenu(); + RecipeBookMenu container = (RecipeBookMenu) context.getMenu(); Display display = context.getDisplay(); - if (display instanceof DefaultCraftingDisplay<?> craftingDisplay) { - if (craftingDisplay.getOptionalRecipe().isPresent()) { + if (display instanceof ClientsidedCraftingDisplay craftingDisplay) { + if (craftingDisplay.recipeDisplayId().isPresent()) { int h = -1, w = -1; if (container instanceof CraftingMenu) { h = 3; @@ -72,30 +68,26 @@ public class DefaultRecipeBookHandler implements TransferHandler { } if (h == -1 || w == -1) return Result.createNotApplicable(); - RecipeHolder<?> recipe = craftingDisplay.getOptionalRecipe().get(); + RecipeDisplayId id = craftingDisplay.recipeDisplayId().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)) - return Result.createNotApplicable(); if (!context.isActuallyCrafting()) return Result.createSuccessful(); context.getMinecraft().setScreen(context.getContainerScreen()); - if (context.getContainerScreen() instanceof RecipeUpdateListener) - ((RecipeUpdateListener) context.getContainerScreen()).getRecipeBookComponent().ghostRecipe.clear(); - context.getMinecraft().gameMode.handlePlaceRecipe(container.containerId, recipe, context.isStackedCrafting()); + if (context.getContainerScreen() instanceof AbstractRecipeBookScreen<?> screen) + screen.recipeBookComponent.ghostSlots.clear(); + context.getMinecraft().gameMode.handlePlaceRecipe(container.containerId, id, context.isStackedCrafting()); return Result.createSuccessful(); } - } else if (display instanceof DefaultCookingDisplay defaultDisplay) { - if (defaultDisplay.getOptionalRecipe().isPresent()) { - RecipeHolder<?> recipe = (defaultDisplay).getOptionalRecipe().get(); - if (!context.getMinecraft().player.getRecipeBook().contains(recipe)) - return Result.createNotApplicable(); + } else if (display instanceof ClientsidedRecipeBookDisplay defaultDisplay) { + if (defaultDisplay.recipeDisplayId().isPresent()) { + RecipeDisplayId id = defaultDisplay.recipeDisplayId().get(); if (!context.isActuallyCrafting()) return Result.createSuccessful(); context.getMinecraft().setScreen(context.getContainerScreen()); - if (context.getContainerScreen() instanceof RecipeUpdateListener) - ((RecipeUpdateListener) context.getContainerScreen()).getRecipeBookComponent().ghostRecipe.clear(); - context.getMinecraft().gameMode.handlePlaceRecipe(container.containerId, recipe, context.isStackedCrafting()); + if (context.getContainerScreen() instanceof AbstractRecipeBookScreen<?> screen) + screen.recipeBookComponent.ghostSlots.clear(); + context.getMinecraft().gameMode.handlePlaceRecipe(container.containerId, id, context.isStackedCrafting()); return Result.createSuccessful(); } } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/BuiltinClientPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/BuiltinClientPlugin.java index d87b56eeb..7b3bad53a 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/BuiltinClientPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/BuiltinClientPlugin.java @@ -28,8 +28,6 @@ import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.impl.ClientInternals; import me.shedaniel.rei.plugin.common.BuiltinPlugin; import net.minecraft.network.chat.Component; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; import java.util.List; import java.util.function.UnaryOperator; @@ -39,11 +37,7 @@ public interface BuiltinClientPlugin extends BuiltinPlugin { return (BuiltinClientPlugin) ClientInternals.getBuiltinPlugin(); } - default void registerBrewingRecipe(ItemStack input, Ingredient ingredient, ItemStack output) { - registerBrewingRecipe(Ingredient.of(input), ingredient, output); - } - - void registerBrewingRecipe(Ingredient input, Ingredient ingredient, ItemStack output); + void registerBrewingRecipe(EntryIngredient input, EntryIngredient ingredient, EntryIngredient output); void registerInformation(EntryIngredient ingredient, Component name, UnaryOperator<List<Component>> textBuilder); 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 84629be4d..6c93af751 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 @@ -56,8 +56,9 @@ import me.shedaniel.rei.plugin.client.categories.beacon.DefaultBeaconBaseCategor |
