From ea634e7ba29146d4ebc2c05b61257fa6c3b0642e Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 5 Feb 2021 10:08:44 +0800 Subject: More relocation Signed-off-by: shedaniel --- .../me/shedaniel/rei/plugin/DefaultPlugin.java | 203 ++++++++++----------- .../rei/plugin/DefaultServerContainerPlugin.java | 2 +- .../autocrafting/DefaultRecipeBookHandler.java | 8 +- .../beacon/base/DefaultBeaconBaseCategory.java | 16 +- .../beacon/base/DefaultBeaconBaseDisplay.java | 8 +- .../payment/DefaultBeaconPaymentCategory.java | 14 +- .../payment/DefaultBeaconPaymentDisplay.java | 8 +- .../rei/plugin/brewing/DefaultBrewingCategory.java | 8 +- .../rei/plugin/brewing/DefaultBrewingDisplay.java | 8 +- .../plugin/campfire/DefaultCampfireCategory.java | 8 +- .../plugin/campfire/DefaultCampfireDisplay.java | 8 +- .../composting/DefaultCompostingCategory.java | 18 +- .../composting/DefaultCompostingDisplay.java | 8 +- .../containers/CraftingContainerInfoWrapper.java | 4 +- .../rei/plugin/cooking/DefaultCookingCategory.java | 15 +- .../rei/plugin/cooking/DefaultCookingDisplay.java | 30 ++- .../plugin/crafting/DefaultCraftingCategory.java | 14 +- .../plugin/crafting/DefaultCraftingDisplay.java | 19 +- .../rei/plugin/crafting/DefaultCustomDisplay.java | 24 +-- .../rei/plugin/crafting/DefaultShapedDisplay.java | 4 +- .../plugin/crafting/DefaultShapelessDisplay.java | 4 +- .../plugin/favorites/GameModeFavoriteEntry.java | 4 +- .../rei/plugin/favorites/WeatherFavoriteEntry.java | 5 +- .../rei/plugin/fuel/DefaultFuelCategory.java | 26 +-- .../rei/plugin/fuel/DefaultFuelDisplay.java | 6 +- .../information/DefaultInformationCategory.java | 24 +-- .../information/DefaultInformationDisplay.java | 6 +- .../rei/plugin/pathing/DefaultPathingCategory.java | 14 +- .../rei/plugin/pathing/DefaultPathingDisplay.java | 8 +- .../plugin/smithing/DefaultSmithingCategory.java | 8 +- .../plugin/smithing/DefaultSmithingDisplay.java | 8 +- .../stonecutting/DefaultStoneCuttingCategory.java | 8 +- .../stonecutting/DefaultStoneCuttingDisplay.java | 8 +- .../plugin/stripping/DefaultStrippingCategory.java | 14 +- .../plugin/stripping/DefaultStrippingDisplay.java | 8 +- .../rei/plugin/tilling/DefaultTillingCategory.java | 14 +- .../rei/plugin/tilling/DefaultTillingDisplay.java | 8 +- 37 files changed, 293 insertions(+), 307 deletions(-) (limited to 'default-plugin') diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 8467f43f8..bf0adfc33 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -32,11 +32,14 @@ import it.unimi.dsi.fastutil.objects.ReferenceSet; import me.shedaniel.architectury.hooks.FluidStackHooks; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.*; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.favorites.FavoriteEntry; import me.shedaniel.rei.api.favorites.FavoriteEntryType; import me.shedaniel.rei.api.fluid.FluidSupportProvider; import me.shedaniel.rei.api.plugins.REIPluginV0; +import me.shedaniel.rei.api.registry.CategoryRegistry; import me.shedaniel.rei.plugin.autocrafting.DefaultRecipeBookHandler; import me.shedaniel.rei.plugin.beacon.base.DefaultBeaconBaseCategory; import me.shedaniel.rei.plugin.beacon.base.DefaultBeaconBaseDisplay; @@ -77,7 +80,6 @@ import me.shedaniel.rei.plugin.tilling.DefaultTillingCategory; import me.shedaniel.rei.plugin.tilling.DefaultTillingDisplay; import me.shedaniel.rei.plugin.tilling.DummyHoeItem; import me.shedaniel.rei.utils.CollectionUtils; -import me.shedaniel.rei.utils.EntryStackCompoundList; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; @@ -127,7 +129,6 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { public static final ResourceLocation STONE_CUTTING = BuiltinPlugin.STONE_CUTTING; public static final ResourceLocation STRIPPING = BuiltinPlugin.STRIPPING; public static final ResourceLocation BREWING = BuiltinPlugin.BREWING; - public static final ResourceLocation PLUGIN = BuiltinPlugin.PLUGIN; public static final ResourceLocation COMPOSTING = BuiltinPlugin.COMPOSTING; public static final ResourceLocation FUEL = BuiltinPlugin.FUEL; public static final ResourceLocation SMITHING = BuiltinPlugin.SMITHING; @@ -148,11 +149,11 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { } public static void registerBrewingRecipe(RegisteredBrewingRecipe recipe) { - RecipeHelper.getInstance().registerDisplay(new DefaultBrewingDisplay(recipe.input, recipe.ingredient, recipe.output)); + RecipeRegistry.getInstance().registerDisplay(new DefaultBrewingDisplay(recipe.input, recipe.ingredient, recipe.output)); } public static void registerInfoDisplay(DefaultInformationDisplay display) { - RecipeHelper.getInstance().registerDisplay(display); + RecipeRegistry.getInstance().registerDisplay(display); } @Override @@ -166,24 +167,19 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { } @Override - public ResourceLocation getPluginIdentifier() { - return PLUGIN; - } - - @Override - public void registerEntries(EntryRegistry entryRegistry) { + public void registerEntries(EntryRegistry registry) { for (Item item : Registry.ITEM) { List stacks = null; try { - stacks = entryRegistry.appendStacksForItem(item); + stacks = registry.appendStacksForItem(item); } catch (Exception ignored) { } if (stacks != null) { - for (ItemStack stack : entryRegistry.appendStacksForItem(item)) { - entryRegistry.registerEntry(EntryStacks.of(stack)); + for (ItemStack stack : registry.appendStacksForItem(item)) { + registry.registerEntry(EntryStacks.of(stack)); } } else - entryRegistry.registerEntry(EntryStacks.of(item)); + registry.registerEntry(EntryStacks.of(item)); } EntryStack stack = EntryStacks.of(Items.ENCHANTED_BOOK); List> enchantments = new ArrayList<>(); @@ -202,16 +198,16 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { for (int i = enchantment.getMinLevel(); i <= enchantment.getMaxLevel(); i++) consumer.accept(i); } } - entryRegistry.registerEntriesAfter(stack, enchantments); + registry.registerEntriesAfter(stack, enchantments); for (Fluid fluid : Registry.FLUID) { if (!fluid.defaultFluidState().isEmpty() && fluid.defaultFluidState().isSource()) - entryRegistry.registerEntry(EntryStacks.of(fluid)); + registry.registerEntry(EntryStacks.of(fluid)); } } @Override - public void registerPluginCategories(RecipeHelper recipeHelper) { - recipeHelper.registerCategories( + public void registerCategories(CategoryRegistry registry) { + registry.register( new DefaultCraftingCategory(), new DefaultCookingCategory(SMELTING, EntryStacks.of(Items.FURNACE), "category.rei.smelting"), new DefaultCookingCategory(SMOKING, EntryStacks.of(Items.SMOKER), "category.rei.smoking"), @@ -228,38 +224,82 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { new DefaultPathingCategory(), new DefaultInformationCategory() ); + + registry.registerWorkingStations(CRAFTING, EntryStacks.of(Items.CRAFTING_TABLE)); + registry.registerWorkingStations(SMELTING, EntryStacks.of(Items.FURNACE)); + registry.registerWorkingStations(SMOKING, EntryStacks.of(Items.SMOKER)); + registry.registerWorkingStations(BLASTING, EntryStacks.of(Items.BLAST_FURNACE)); + registry.registerWorkingStations(CAMPFIRE, EntryStacks.of(Items.CAMPFIRE), EntryStacks.of(Items.SOUL_CAMPFIRE)); + registry.registerWorkingStations(FUEL, EntryStacks.of(Items.FURNACE), EntryStacks.of(Items.SMOKER), EntryStacks.of(Items.BLAST_FURNACE)); + registry.registerWorkingStations(BREWING, EntryStacks.of(Items.BREWING_STAND)); + registry.registerWorkingStations(STONE_CUTTING, EntryStacks.of(Items.STONECUTTER)); + registry.registerWorkingStations(COMPOSTING, EntryStacks.of(Items.COMPOSTER)); + registry.registerWorkingStations(SMITHING, EntryStacks.of(Items.SMITHING_TABLE)); + registry.registerWorkingStations(BEACON, EntryStacks.of(Items.BEACON)); + registry.registerWorkingStations(BEACON_PAYMENT, EntryStacks.of(Items.BEACON)); + Set axes = Sets.newHashSet(), hoes = Sets.newHashSet(), shovels = Sets.newHashSet(); + EntryRegistry.getInstance().getEntryStacks().filter(stack -> stack.getValueType() == ItemStack.class).map(stack -> ((ItemStack) stack.getValue()).getItem()).forEach(item -> { + if (item instanceof AxeItem && axes.add(item)) { + registry.registerWorkingStations(STRIPPING, EntryStacks.of(item)); + } + if (item instanceof HoeItem && hoes.add(item)) { + registry.registerWorkingStations(TILLING, EntryStacks.of(item)); + } + if (item instanceof ShovelItem && shovels.add(item)) { + registry.registerWorkingStations(PATHING, EntryStacks.of(item)); + } + }); + TagCollection itemTagCollection = Minecraft.getInstance().getConnection().getTags().getOrEmpty(Registry.ITEM_REGISTRY); + Tag axesTag = itemTagCollection.getTag(new ResourceLocation("c", "axes")); + if (axesTag != null) { + for (Item item : axesTag.getValues()) { + if (axes.add(item)) registry.registerWorkingStations(STRIPPING, EntryStacks.of(item)); + } + } + Tag hoesTag = itemTagCollection.getTag(new ResourceLocation("c", "hoes")); + if (hoesTag != null) { + for (Item item : hoesTag.getValues()) { + if (hoes.add(item)) registry.registerWorkingStations(TILLING, EntryStacks.of(item)); + } + } + Tag shovelsTag = itemTagCollection.getTag(new ResourceLocation("c", "shovels")); + if (shovelsTag != null) { + for (Item item : shovelsTag.getValues()) { + if (shovels.add(item)) registry.registerWorkingStations(PATHING, EntryStacks.of(item)); + } + } } @Override - public void registerRecipeDisplays(RecipeHelper recipeHelper) { - recipeHelper.registerRecipes(CRAFTING, ShapelessRecipe.class, DefaultShapelessDisplay::new); - recipeHelper.registerRecipes(CRAFTING, ShapedRecipe.class, DefaultShapedDisplay::new); - recipeHelper.registerRecipes(SMELTING, SmeltingRecipe.class, DefaultSmeltingDisplay::new); - recipeHelper.registerRecipes(SMOKING, SmokingRecipe.class, DefaultSmokingDisplay::new); - recipeHelper.registerRecipes(BLASTING, BlastingRecipe.class, DefaultBlastingDisplay::new); - recipeHelper.registerRecipes(CAMPFIRE, CampfireCookingRecipe.class, DefaultCampfireDisplay::new); - recipeHelper.registerRecipes(STONE_CUTTING, StonecutterRecipe.class, DefaultStoneCuttingDisplay::new); - recipeHelper.registerRecipes(SMITHING, UpgradeRecipe.class, DefaultSmithingDisplay::new); + public void registerDisplays(RecipeRegistry registry) { + registry.registerRecipes(CRAFTING, ShapelessRecipe.class, DefaultShapelessDisplay::new); + registry.registerRecipes(CRAFTING, ShapedRecipe.class, DefaultShapedDisplay::new); + registry.registerRecipes(SMELTING, SmeltingRecipe.class, DefaultSmeltingDisplay::new); + registry.registerRecipes(SMOKING, SmokingRecipe.class, DefaultSmokingDisplay::new); + registry.registerRecipes(BLASTING, BlastingRecipe.class, DefaultBlastingDisplay::new); + registry.registerRecipes(CAMPFIRE, CampfireCookingRecipe.class, DefaultCampfireDisplay::new); + registry.registerRecipes(STONE_CUTTING, StonecutterRecipe.class, DefaultStoneCuttingDisplay::new); + registry.registerRecipes(SMITHING, UpgradeRecipe.class, DefaultSmithingDisplay::new); for (Map.Entry entry : AbstractFurnaceBlockEntity.getFuel().entrySet()) { - recipeHelper.registerDisplay(new DefaultFuelDisplay(EntryStacks.of(entry.getKey()), entry.getValue())); + registry.registerDisplay(new DefaultFuelDisplay(EntryStacks.of(entry.getKey()), entry.getValue())); } - List> arrowStack = Collections.singletonList(EntryStacks.of(Items.ARROW)); + EntryIngredient arrowStack = EntryIngredient.of(EntryStacks.of(Items.ARROW)); ReferenceSet registeredPotions = new ReferenceOpenHashSet<>(); EntryRegistry.getInstance().getEntryStacks().filter(entry -> entry.getValue() == Items.LINGERING_POTION).forEach(entry -> { ItemStack itemStack = (ItemStack) entry.getValue(); Potion potion = PotionUtils.getPotion(itemStack); if (registeredPotions.add(potion)) { - EntryStackCompoundList input = new EntryStackCompoundList(); + List input = new ArrayList<>(); for (int i = 0; i < 4; i++) input.add(arrowStack); - input.add(Collections.singletonList(EntryStacks.of(itemStack))); + input.add(EntryIngredient.of(EntryStacks.of(itemStack))); for (int i = 0; i < 4; i++) input.add(arrowStack); ItemStack outputStack = new ItemStack(Items.TIPPED_ARROW, 8); PotionUtils.setPotion(outputStack, potion); PotionUtils.setCustomEffects(outputStack, PotionUtils.getCustomEffects(itemStack)); - List> output = Collections.singletonList(EntryStacks.of(outputStack).setting(EntryStack.Settings.CHECK_TAGS, EntryStack.Settings.TRUE)); - recipeHelper.registerDisplay(new DefaultCustomDisplay(null, input, output)); + EntryIngredient output = EntryIngredient.of(EntryStacks.of(outputStack).setting(EntryStack.Settings.CHECK_TAGS, EntryStack.Settings.TRUE)); + registry.registerDisplay(new DefaultCustomDisplay(null, input, output)); } }); if (ComposterBlock.COMPOSTABLES.isEmpty()) @@ -269,20 +309,20 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { Iterator>> iterator = Iterators.partition(compostables.object2FloatEntrySet().stream().sorted(Map.Entry.comparingByValue()).iterator(), 48); while (iterator.hasNext()) { List> entries = iterator.next(); - recipeHelper.registerDisplay(new DefaultCompostingDisplay(i, entries, compostables, new ItemStack(Items.BONE_MEAL))); + registry.registerDisplay(new DefaultCompostingDisplay(i, entries, compostables, new ItemStack(Items.BONE_MEAL))); i++; } DummyAxeItem.getStrippedBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { - recipeHelper.registerDisplay(new DefaultStrippingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue()))); + registry.registerDisplay(new DefaultStrippingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue()))); }); DummyHoeItem.getTilledBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { - recipeHelper.registerDisplay(new DefaultTillingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); + registry.registerDisplay(new DefaultTillingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); }); DummyShovelItem.getPathBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> { - recipeHelper.registerDisplay(new DefaultPathingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); + registry.registerDisplay(new DefaultPathingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock()))); }); - recipeHelper.registerDisplay(new DefaultBeaconBaseDisplay(CollectionUtils.map(Lists.newArrayList(BlockTags.BEACON_BASE_BLOCKS.getValues()), ItemStack::new))); - recipeHelper.registerDisplay(new DefaultBeaconPaymentDisplay(CollectionUtils.map(Lists.newArrayList(ItemTags.BEACON_PAYMENT_ITEMS.getValues()), ItemStack::new))); + registry.registerDisplay(new DefaultBeaconBaseDisplay(CollectionUtils.map(Lists.newArrayList(BlockTags.BEACON_BASE_BLOCKS.getValues()), ItemStack::new))); + registry.registerDisplay(new DefaultBeaconPaymentDisplay(CollectionUtils.map(Lists.newArrayList(ItemTags.BEACON_PAYMENT_ITEMS.getValues()), ItemStack::new))); Set potions = Sets.newLinkedHashSet(); for (Ingredient container : PotionBrewing.ALLOWED_CONTAINERS) { for (PotionBrewing.Mix mix : PotionBrewing.POTION_MIXES) { @@ -319,8 +359,8 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { // Sit tight! This will be a fast journey! long time = System.currentTimeMillis(); EntryRegistry.getInstance().getEntryStacks().forEach(this::applyPotionTransformer); - for (List displays : RecipeHelper.getInstance().getAllRecipesNoHandlers().values()) { - for (RecipeDisplay display : displays) { + for (List displays : RecipeRegistry.getInstance().getAllRecipesNoHandlers().values()) { + for (Display display : displays) { for (List> entries : display.getInputEntries()) for (EntryStack stack : entries) applyPotionTransformer(stack); @@ -339,11 +379,11 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { } @Override - public void registerBounds(DisplayHelper displayHelper) { - BaseBoundsHandler baseBoundsHandler = BaseBoundsHandler.getInstance(); - baseBoundsHandler.registerExclusionZones(EffectRenderingInventoryScreen.class, new DefaultPotionEffectExclusionZones()); - baseBoundsHandler.registerExclusionZones(RecipeUpdateListener.class, new DefaultRecipeBookExclusionZones()); - displayHelper.registerProvider(new DisplayHelper.DisplayBoundsProvider>() { + public void registerBounds(DisplayBoundsRegistry registry) { + ExclusionZones exclusionZones = registry.exclusionZones(); + exclusionZones.register(EffectRenderingInventoryScreen.class, new DefaultPotionEffectExclusionZones()); + exclusionZones.register(RecipeUpdateListener.class, new DefaultRecipeBookExclusionZones()); + registry.registerProvider(new DisplayBoundsRegistry.DisplayBoundsProvider>() { @Override public Rectangle getScreenBounds(AbstractContainerScreen screen) { return new Rectangle(screen.leftPos, screen.topPos, screen.imageWidth, screen.imageHeight); @@ -357,63 +397,20 @@ public class DefaultPlugin implements REIPluginV0, BuiltinPlugin { } @Override - public void registerOthers(RecipeHelper recipeHelper) { - recipeHelper.registerAutoCraftingHandler(new DefaultRecipeBookHandler()); + public void registerOthers(RecipeRegistry registry) { + registry.registerAutoCraftingHandler(new DefaultRecipeBookHandler()); - recipeHelper.registerWorkingStations(CRAFTING, EntryStacks.of(Items.CRAFTING_TABLE)); - recipeHelper.registerWorkingStations(SMELTING, EntryStacks.of(Items.FURNACE)); - recipeHelper.registerWorkingStations(SMOKING, EntryStacks.of(Items.SMOKER)); - recipeHelper.registerWorkingStations(BLASTING, EntryStacks.of(Items.BLAST_FURNACE)); - recipeHelper.registerWorkingStations(CAMPFIRE, EntryStacks.of(Items.CAMPFIRE), EntryStacks.of(Items.SOUL_CAMPFIRE)); - recipeHelper.registerWorkingStations(FUEL, EntryStacks.of(Items.FURNACE), EntryStacks.of(Items.SMOKER), EntryStacks.of(Items.BLAST_FURNACE)); - recipeHelper.registerWorkingStations(BREWING, EntryStacks.of(Items.BREWING_STAND)); - recipeHelper.registerWorkingStations(STONE_CUTTING, EntryStacks.of(Items.STONECUTTER)); - recipeHelper.registerWorkingStations(COMPOSTING, EntryStacks.of(Items.COMPOSTER)); - recipeHelper.registerWorkingStations(SMITHING, EntryStacks.of(Items.SMITHING_TABLE)); - recipeHelper.registerWorkingStations(BEACON, EntryStacks.of(Items.BEACON)); - recipeHelper.registerWorkingStations(BEACON_PAYMENT, EntryStacks.of(Items.BEACON)); - Set axes = Sets.newHashSet(), hoes = Sets.newHashSet(), shovels = Sets.newHashSet(); - EntryRegistry.getInstance().getEntryStacks().filter(stack -> stack.getValueType() == ItemStack.class).map(stack -> ((ItemStack) stack.getValue()).getItem()).forEach(item -> { - if (item instanceof AxeItem && axes.add(item)) { - recipeHelper.registerWorkingStations(STRIPPING, EntryStacks.of(item)); - } - if (item instanceof HoeItem && hoes.add(item)) { - recipeHelper.registerWorkingStations(TILLING, EntryStacks.of(item)); - } - if (item instanceof ShovelItem && shovels.add(item)) { - recipeHelper.registerWorkingStations(PATHING, EntryStacks.of(item)); - } - }); - TagCollection itemTagCollection = Minecraft.getInstance().getConnection().getTags().getOrEmpty(Registry.ITEM_REGISTRY); - Tag axesTag = itemTagCollection.getTag(new ResourceLocation("c", "axes")); - if (axesTag != null) { - for (Item item : axesTag.getValues()) { - if (axes.add(item)) recipeHelper.registerWorkingStations(STRIPPING, EntryStacks.of(item)); - } - } - Tag hoesTag = itemTagCollection.getTag(new ResourceLocation("c", "hoes")); - if (hoesTag != null) { - for (Item item : hoesTag.getValues()) { - if (hoes.add(item)) recipeHelper.registerWorkingStations(TILLING, EntryStacks.of(item)); - } - } - Tag shovelsTag = itemTagCollection.getTag(new ResourceLocation("c", "shovels")); - if (shovelsTag != null) { - for (Item item : shovelsTag.getValues()) { - if (shovels.add(item)) recipeHelper.registerWorkingStations(PATHING, EntryStacks.of(item)); - } - } - recipeHelper.removeAutoCraftButton(FUEL); - recipeHelper.removeAutoCraftButton(COMPOSTING); - recipeHelper.removeAutoCraftButton(BEACON); - recipeHelper.removeAutoCraftButton(BEACON_PAYMENT); - recipeHelper.removeAutoCraftButton(INFO); - recipeHelper.registerContainerClickArea(new Rectangle(88, 32, 28, 23), CraftingScreen.class, CRAFTING); - recipeHelper.registerContainerClickArea(new Rectangle(137, 29, 10, 13), InventoryScreen.class, CRAFTING); - recipeHelper.registerContainerClickArea(new Rectangle(97, 16, 14, 30), BrewingStandScreen.class, BREWING); - recipeHelper.registerContainerClickArea(new Rectangle(78, 32, 28, 23), FurnaceScreen.class, SMELTING); - recipeHelper.registerContainerClickArea(new Rectangle(78, 32, 28, 23), SmokerScreen.class, SMOKING); - recipeHelper.registerContainerClickArea(new Rectangle(78, 32, 28, 23), BlastFurnaceScreen.class, BLASTING); + registry.removeAutoCraftButton(FUEL); + registry.removeAutoCraftButton(COMPOSTING); + registry.removeAutoCraftButton(BEACON); + registry.removeAutoCraftButton(BEACON_PAYMENT); + registry.removeAutoCraftButton(INFO); + registry.registerContainerClickArea(new Rectangle(88, 32, 28, 23), CraftingScreen.class, CRAFTING); + registry.registerContainerClickArea(new Rectangle(137, 29, 10, 13), InventoryScreen.class, CRAFTING); + registry.registerContainerClickArea(new Rectangle(97, 16, 14, 30), BrewingStandScreen.class, BREWING); + registry.registerContainerClickArea(new Rectangle(78, 32, 28, 23), FurnaceScreen.class, SMELTING); + registry.registerContainerClickArea(new Rectangle(78, 32, 28, 23), SmokerScreen.class, SMOKING); + registry.registerContainerClickArea(new Rectangle(78, 32, 28, 23), BlastFurnaceScreen.class, BLASTING); FluidSupportProvider.getInstance().registerProvider(entry -> { ItemStack stack = entry.getValue(); if (stack.getItem() instanceof BucketItem) diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java index f0b9c978c..1a26e8130 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java @@ -24,7 +24,7 @@ package me.shedaniel.rei.plugin; import me.shedaniel.rei.plugin.containers.CraftingContainerInfoWrapper; -import me.shedaniel.rei.server.ContainerInfoHandler; +import me.shedaniel.rei.api.server.ContainerInfoHandler; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.*; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java index 80ee0196a..a609270d2 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java @@ -25,8 +25,8 @@ package me.shedaniel.rei.plugin.autocrafting; import me.shedaniel.rei.api.AutoTransferHandler; import me.shedaniel.rei.api.ClientHelper; -import me.shedaniel.rei.api.RecipeDisplay; -import me.shedaniel.rei.api.TransferRecipeDisplay; +import me.shedaniel.rei.api.Display; +import me.shedaniel.rei.api.TransferDisplay; import me.shedaniel.rei.plugin.cooking.DefaultCookingDisplay; import me.shedaniel.rei.plugin.crafting.DefaultCraftingDisplay; import net.fabricmc.api.EnvType; @@ -45,9 +45,9 @@ public class DefaultRecipeBookHandler implements AutoTransferHandler { @NotNull @Override public Result handle(@NotNull Context context) { - if (context.getRecipe() instanceof TransferRecipeDisplay && ClientHelper.getInstance().canUseMovePackets()) + if (context.getRecipe() instanceof TransferDisplay && ClientHelper.getInstance().canUseMovePackets()) return Result.createNotApplicable(); - RecipeDisplay display = context.getRecipe(); + Display display = context.getRecipe(); if (!(context.getContainer() instanceof RecipeBookMenu)) return Result.createNotApplicable(); RecipeBookMenu container = (RecipeBookMenu) context.getContainer(); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseCategory.java index 08ad35567..2ee7a8db6 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseCategory.java @@ -31,13 +31,12 @@ import me.shedaniel.clothconfig2.api.ScrollingContainer; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Slot; -import me.shedaniel.rei.api.widgets.Tooltip; import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeRenderer; +import me.shedaniel.rei.gui.entries.DisplayRenderer; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -49,12 +48,11 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.level.block.Blocks; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Objects; -public class DefaultBeaconBaseCategory implements RecipeCategory { +public class DefaultBeaconBaseCategory implements DisplayCategory { @Override public @NotNull ResourceLocation getIdentifier() { return DefaultPlugin.BEACON; @@ -73,9 +71,9 @@ public class DefaultBeaconBaseCategory implements RecipeCategory> entries; public DefaultBeaconBaseDisplay(List entries) { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentCategory.java index bba02c60c..55b546067 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentCategory.java @@ -31,12 +31,12 @@ import me.shedaniel.clothconfig2.api.ScrollingContainer; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Slot; import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeRenderer; +import me.shedaniel.rei.gui.entries.DisplayRenderer; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -52,7 +52,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Objects; -public class DefaultBeaconPaymentCategory implements RecipeCategory { +public class DefaultBeaconPaymentCategory implements DisplayCategory { @Override public @NotNull ResourceLocation getIdentifier() { return DefaultPlugin.BEACON_PAYMENT; @@ -69,9 +69,9 @@ public class DefaultBeaconPaymentCategory implements RecipeCategory> entries; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java index a2c92ba70..09c0a96de 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java @@ -27,9 +27,9 @@ import com.google.common.collect.Lists; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -46,7 +46,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; @Environment(EnvType.CLIENT) -public class DefaultBrewingCategory implements RecipeCategory { +public class DefaultBrewingCategory implements DisplayCategory { @Override public @NotNull ResourceLocation getIdentifier() { return DefaultPlugin.BREWING; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java index 10f6c3f78..116c6aa27 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingDisplay.java @@ -24,9 +24,9 @@ package me.shedaniel.rei.plugin.brewing; import com.google.common.collect.Lists; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.RecipeDisplay; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.Display; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -43,7 +43,7 @@ import java.util.Collections; import java.util.List; @Environment(EnvType.CLIENT) -public class DefaultBrewingDisplay implements RecipeDisplay { +public class DefaultBrewingDisplay implements Display { private EntryStack output; private List> reactant, input; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java index 0325656e1..94e0f140a 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java @@ -26,9 +26,9 @@ package me.shedaniel.rei.plugin.campfire; import com.google.common.collect.Lists; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -41,7 +41,7 @@ import org.jetbrains.annotations.NotNull; import java.text.DecimalFormat; import java.util.List; -public class DefaultCampfireCategory implements RecipeCategory { +public class DefaultCampfireCategory implements DisplayCategory { @Override public @NotNull ResourceLocation getIdentifier() { return DefaultPlugin.CAMPFIRE; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java index 225fabd67..164e792b3 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireDisplay.java @@ -23,9 +23,9 @@ package me.shedaniel.rei.plugin.campfire; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.RecipeDisplay; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.Display; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -42,7 +42,7 @@ import java.util.List; import java.util.Optional; @Environment(EnvType.CLIENT) -public class DefaultCampfireDisplay implements RecipeDisplay { +public class DefaultCampfireDisplay implements Display { private List>> inputs; private List> output; private int cookTime; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java index 39bf86ca4..360dae21a 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java @@ -27,12 +27,12 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeRenderer; +import me.shedaniel.rei.gui.entries.DisplayRenderer; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; @@ -50,7 +50,7 @@ import org.jetbrains.annotations.NotNull; import java.util.*; @Environment(EnvType.CLIENT) -public class DefaultCompostingCategory implements RecipeCategory { +public class DefaultCompostingCategory implements DisplayCategory { @Override public @NotNull ResourceLocation getIdentifier() { @@ -68,9 +68,9 @@ public class DefaultCompostingCategory implements RecipeCategory>> inputs; private Object2FloatMap inputMap; private List>> output; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java index f7eea5492..d795e083d 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java @@ -23,8 +23,8 @@ package me.shedaniel.rei.plugin.containers; -import me.shedaniel.rei.server.ContainerInfo; -import me.shedaniel.rei.server.RecipeFinder; +import me.shedaniel.rei.api.server.ContainerInfo; +import me.shedaniel.rei.api.server.RecipeFinder; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.RecipeBookMenu; import net.minecraft.world.item.ItemStack; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/cooking/DefaultCookingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/cooking/DefaultCookingCategory.java index e61c2e907..c48083c72 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/cooking/DefaultCookingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/cooking/DefaultCookingCategory.java @@ -28,11 +28,12 @@ import com.mojang.blaze3d.vertex.PoseStack; import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.TransferRecipeCategory; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.TransferDisplayCategory; import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeRenderer; -import me.shedaniel.rei.gui.entries.SimpleRecipeRenderer; +import me.shedaniel.rei.gui.entries.DisplayRenderer; +import me.shedaniel.rei.gui.entries.SimpleDisplayRenderer; import me.shedaniel.rei.gui.widget.Widget; import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.resources.language.I18n; @@ -44,7 +45,7 @@ import java.text.DecimalFormat; import java.util.Collections; import java.util.List; -public class DefaultCookingCategory implements TransferRecipeCategory { +public class DefaultCookingCategory implements TransferDisplayCategory { private ResourceLocation identifier; private EntryStack logo; private String categoryName; @@ -84,8 +85,8 @@ public class DefaultCookingCategory implements TransferRecipeCategory>> input; - private List> output; + private List input; + private EntryIngredient output; private float xp; private double cookTime; public DefaultCookingDisplay(AbstractCookingRecipe recipe) { this.recipe = recipe; - this.input = EntryStacks.ofIngredients(recipe.getIngredients()); - this.output = Collections.singletonList(EntryStacks.of(recipe.getResultItem())); + this.input = EntryIngredients.ofIngredients(recipe.getIngredients()); + this.output = EntryIngredient.of(EntryStacks.of(recipe.getResultItem())); this.xp = recipe.getExperience(); this.cookTime = recipe.getCookingTime(); } @@ -61,20 +62,15 @@ public abstract class DefaultCookingDisplay implements TransferRecipeDisplay { } @Override - public @NotNull List>> getInputEntries() { + public @NotNull List getInputEntries() { return input; } @Override - public @NotNull List>> getResultingEntries() { + public @NotNull List getResultingEntries() { return Collections.singletonList(output); } - @Override - public @NotNull List>> getRequiredEntries() { - return input; - } - public float getXp() { return xp; } @@ -99,7 +95,7 @@ public abstract class DefaultCookingDisplay implements TransferRecipeDisplay { } @Override - public List>> getOrganisedInputEntries(ContainerInfo containerInfo, AbstractContainerMenu container) { + public List getOrganisedInputEntries(ContainerInfo containerInfo, AbstractContainerMenu container) { return input; } } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java index a65fa9100..52202a76d 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java @@ -28,17 +28,17 @@ import com.mojang.blaze3d.vertex.PoseStack; import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryStack; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.TransferRecipeCategory; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.TransferDisplayCategory; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Slot; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; -import me.shedaniel.rei.server.ContainerInfo; -import me.shedaniel.rei.server.ContainerInfoHandler; +import me.shedaniel.rei.api.server.ContainerInfo; +import me.shedaniel.rei.api.server.ContainerInfoHandler; import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.resources.language.I18n; import net.minecraft.resources.ResourceLocation; @@ -49,7 +49,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; -public class DefaultCraftingCategory implements TransferRecipeCategory { +public class DefaultCraftingCategory implements TransferDisplayCategory { public static int getSlotWithSize(DefaultCraftingDisplay recipeDisplay, int num, int craftingGridWidth) { int x = num % recipeDisplay.getWidth(); int y = (num - x) / recipeDisplay.getWidth(); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java index 972827938..e7bb4914f 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingDisplay.java @@ -23,11 +23,10 @@ package me.shedaniel.rei.plugin.crafting; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.TransferRecipeDisplay; +import me.shedaniel.rei.api.TransferDisplay; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.server.ContainerInfo; import me.shedaniel.rei.plugin.DefaultPlugin; -import me.shedaniel.rei.server.ContainerInfo; -import me.shedaniel.rei.utils.EntryStackCompoundList; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; @@ -35,12 +34,12 @@ import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.crafting.Recipe; import org.jetbrains.annotations.NotNull; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @Environment(EnvType.CLIENT) -public interface DefaultCraftingDisplay extends TransferRecipeDisplay { +public interface DefaultCraftingDisplay extends TransferDisplay { @Override default @NotNull ResourceLocation getRecipeCategory() { return DefaultPlugin.CRAFTING; @@ -59,13 +58,13 @@ public interface DefaultCraftingDisplay extends TransferRecipeDisplay { Optional> getOptionalRecipe(); @Override - default List>> getOrganisedInputEntries(ContainerInfo containerInfo, AbstractContainerMenu container) { - EntryStackCompoundList list = new EntryStackCompoundList(containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container)); + default List getOrganisedInputEntries(ContainerInfo containerInfo, AbstractContainerMenu container) { + List list = new ArrayList<>(containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container)); for (int i = 0; i < containerInfo.getCraftingWidth(container) * containerInfo.getCraftingHeight(container); i++) { - list.add(Collections.emptyList()); + list.add(EntryIngredient.empty()); } for (int i = 0; i < getInputEntries().size(); i++) { - List> stacks = getInputEntries().get(i); + EntryIngredient stacks = getInputEntries().get(i); list.set(DefaultCraftingCategory.getSlotWithSize(this, i, containerInfo.getCraftingWidth(container)), stacks); } return list; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCustomDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCustomDisplay.java index 84c1b3b72..e5bbdb0f4 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCustomDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCustomDisplay.java @@ -24,8 +24,9 @@ package me.shedaniel.rei.plugin.crafting; import com.google.common.collect.ImmutableList; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.utils.CollectionUtils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -41,18 +42,18 @@ import java.util.Optional; @Environment(EnvType.CLIENT) public class DefaultCustomDisplay implements DefaultCraftingDisplay { - private List>> input; - private List> output; + private List input; + private EntryIngredient output; private Recipe possibleRecipe; private int width, height; public DefaultCustomDisplay(List> input, List output, Recipe possibleRecipe) { - this(possibleRecipe, CollectionUtils.map(input, EntryStacks::ofItemStacks), EntryStacks.ofItemStacks(output)); + this(possibleRecipe, CollectionUtils.map(input, EntryIngredients::ofItemStacks), EntryIngredients.ofItemStacks(output)); } - public DefaultCustomDisplay(Recipe possibleRecipe, List>> input, List> output) { + public DefaultCustomDisplay(Recipe possibleRecipe, List input, EntryIngredient output) { this.input = ImmutableList.copyOf(input); - this.output = ImmutableList.copyOf(output); + this.output = output; this.possibleRecipe = possibleRecipe; BitSet row = new BitSet(3); BitSet column = new BitSet(3); @@ -82,20 +83,15 @@ public class DefaultCustomDisplay implements DefaultCraftingDisplay { } @Override - public @NotNull List>> getInputEntries() { + public @NotNull List getInputEntries() { return input; } @Override - public @NotNull List>> getResultingEntries() { + public @NotNull List getResultingEntries() { return Collections.singletonList(output); } - @Override - public @NotNull List>> getRequiredEntries() { - return input; - } - @Override public int getWidth() { return width; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java index f82310ebc..0291e6336 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapedDisplay.java @@ -23,8 +23,8 @@ package me.shedaniel.rei.plugin.crafting; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java index d6d32176d..d8a61fdbe 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultShapelessDisplay.java @@ -23,8 +23,8 @@ package me.shedaniel.rei.plugin.crafting; -import me.shedaniel.rei.api.EntryStack; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/GameModeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/GameModeFavoriteEntry.java index f308b4614..7ff978803 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/GameModeFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/GameModeFavoriteEntry.java @@ -30,8 +30,8 @@ import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.ConfigObject; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.AbstractRenderer; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.entry.AbstractRenderer; import me.shedaniel.rei.api.favorites.FavoriteEntry; import me.shedaniel.rei.api.favorites.FavoriteEntryType; import me.shedaniel.rei.api.favorites.FavoriteMenuEntry; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/WeatherFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/WeatherFavoriteEntry.java index f602af25b..cdbdd2c0f 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/WeatherFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/favorites/WeatherFavoriteEntry.java @@ -27,13 +27,12 @@ import com.google.gson.JsonObject; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import com.mojang.math.Matrix4f; -import me.shedaniel.clothconfig2.api.ScissorsHandler; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.ConfigObject; import me.shedaniel.rei.api.REIHelper; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.AbstractRenderer; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.entry.AbstractRenderer; import me.shedaniel.rei.api.favorites.FavoriteEntry; import me.shedaniel.rei.api.favorites.FavoriteEntryType; import me.shedaniel.rei.api.favorites.FavoriteMenuEntry; diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelCategory.java index 18cfffcd1..d7aadd037 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelCategory.java @@ -27,13 +27,13 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.RecipeCategory; -import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.api.entry.EntryStacks; +import me.shedaniel.rei.api.registry.category.DisplayCategory; +import me.shedaniel.rei.api.util.Renderer; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.widgets.Slot; import me.shedaniel.rei.api.widgets.Tooltip; import me.shedaniel.rei.api.widgets.Widgets; -import me.shedaniel.rei.gui.entries.RecipeRenderer; +import me.shedaniel.rei.gui.entries.DisplayRenderer; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; @@ -50,7 +50,7 @@ import java.text.DecimalFormat; import java.util.List; @Environment(EnvType.CLIENT) -public class DefaultFuelCategory implements RecipeCategory { +public class DefaultFuelCategory implements DisplayCategory { private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#.##"); @@ -75,23 +75,23 @@ public class DefaultFuelCategory implements RecipeCategory { } @Override - public @NotNull List setupDisplay(DefaultFuelDisplay recipeDisplay, Rectangle bounds) { + public @NotNull List setupDisplay(DefaultFuelDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 17); - String burnItems = DECIMAL_FORMAT.format(recipeDisplay.getFuelTime() / 200d); + String burnItems = DECIMAL_FORMAT.format(display.getFuelTime() / 200d); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); widgets.add(Widgets.createLabel(new Point(bounds.x + 26, bounds.getMaxY() - 15), new TranslatableComponent("category.rei.fuel.time.items", burnItems)) .color(0xFF404040, 0xFFBBBBBB).noShadow().leftAligned());