From 542eb5154ebce387312ca3691f743b89e4aef99e Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 27 Feb 2021 17:14:08 +0800 Subject: Remove depending on Cloth API, switching to architectury Signed-off-by: shedaniel --- .../me/shedaniel/rei/plugin/DefaultPlugin.java | 106 ++++++++++++--------- .../autocrafting/DefaultRecipeBookHandler.java | 8 +- .../beacon/base/DefaultBeaconBaseDisplay.java | 14 +-- .../payment/DefaultBeaconPaymentDisplay.java | 18 ++-- .../rei/plugin/brewing/DefaultBrewingCategory.java | 20 ++-- .../rei/plugin/brewing/DefaultBrewingDisplay.java | 30 +++--- .../plugin/campfire/DefaultCampfireCategory.java | 18 ++-- .../plugin/campfire/DefaultCampfireDisplay.java | 28 +++--- .../composting/DefaultCompostingCategory.java | 18 ++-- .../composting/DefaultCompostingDisplay.java | 26 ++--- .../plugin/crafting/DefaultCraftingCategory.java | 23 +++-- .../rei/plugin/crafting/DefaultShapedDisplay.java | 22 ++--- .../plugin/crafting/DefaultShapelessDisplay.java | 24 ++--- .../plugin/favorites/GameModeFavoriteEntry.java | 4 +- .../rei/plugin/favorites/WeatherFavoriteEntry.java | 2 +- .../rei/plugin/fuel/DefaultFuelCategory.java | 22 ++--- .../rei/plugin/fuel/DefaultFuelDisplay.java | 12 +-- .../information/DefaultInformationCategory.java | 10 +- .../information/DefaultInformationDisplay.java | 13 +-- .../rei/plugin/pathing/DefaultPathingCategory.java | 19 ++-- .../rei/plugin/pathing/DefaultPathingDisplay.java | 20 ++-- .../plugin/smithing/DefaultSmithingCategory.java | 10 +- .../plugin/smithing/DefaultSmithingDisplay.java | 28 +++--- .../stonecutting/DefaultStoneCuttingDisplay.java | 26 ++--- .../plugin/stripping/DefaultStrippingCategory.java | 19 ++-- .../plugin/stripping/DefaultStrippingDisplay.java | 19 ++-- .../rei/plugin/tilling/DefaultTillingCategory.java | 19 ++-- .../rei/plugin/tilling/DefaultTillingDisplay.java | 20 ++-- 28 files changed, 277 insertions(+), 321 deletions(-) (limited to 'default-plugin/src') 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 bd872ae9f..edd91e2ba 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 @@ -34,17 +34,22 @@ import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.*; 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.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.BuiltinPlugin; import me.shedaniel.rei.api.plugins.REIPlugin; -import me.shedaniel.rei.api.registry.CategoryRegistry; -import me.shedaniel.rei.api.registry.EntryRegistry; +import me.shedaniel.rei.api.registry.category.CategoryRegistry; +import me.shedaniel.rei.api.registry.display.DisplayRegistry; +import me.shedaniel.rei.api.registry.entry.EntryRegistry; import me.shedaniel.rei.api.registry.display.Display; -import me.shedaniel.rei.api.registry.screens.ExclusionZones; -import me.shedaniel.rei.api.registry.screens.ScreenRegistry; +import me.shedaniel.rei.api.registry.screen.DisplayBoundsProvider; +import me.shedaniel.rei.api.registry.screen.ExclusionZones; +import me.shedaniel.rei.api.registry.screen.ScreenRegistry; +import me.shedaniel.rei.api.registry.transfer.TransferHandlerRegistry; +import me.shedaniel.rei.api.subsets.SubsetsRegistry; import me.shedaniel.rei.plugin.autocrafting.DefaultRecipeBookHandler; import me.shedaniel.rei.plugin.beacon.base.DefaultBeaconBaseCategory; import me.shedaniel.rei.plugin.beacon.base.DefaultBeaconBaseDisplay; @@ -88,6 +93,7 @@ import me.shedaniel.rei.api.util.CollectionUtils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.*; import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener; import net.minecraft.core.Registry; @@ -167,8 +173,8 @@ public class DefaultPlugin implements REIPlugin, BuiltinPlugin { } @Override - public void registerInformation(List> entryStacks, Component name, UnaryOperator> textBuilder) { - registerInfoDisplay(DefaultInformationDisplay.createFromEntries(entryStacks, name).lines(textBuilder.apply(Lists.newArrayList()))); + public void registerInformation(EntryIngredient ingredient, Component name, UnaryOperator> textBuilder) { + registerInfoDisplay(DefaultInformationDisplay.createFromEntries(ingredient, name).lines(textBuilder.apply(Lists.newArrayList()))); } @Override @@ -230,6 +236,15 @@ public class DefaultPlugin implements REIPlugin, BuiltinPlugin { new DefaultInformationCategory() ); + registry.removePlusButton(FUEL); + registry.removePlusButton(COMPOSTING); + registry.removePlusButton(BEACON); + registry.removePlusButton(BEACON_PAYMENT); + registry.removePlusButton(INFO); + registry.removePlusButton(STRIPPING); + registry.removePlusButton(TILLING); + registry.removePlusButton(PATHING); + registry.addWorkstations(CRAFTING, EntryStacks.of(Items.CRAFTING_TABLE)); registry.addWorkstations(SMELTING, EntryStacks.of(Items.FURNACE)); registry.addWorkstations(SMOKING, EntryStacks.of(Items.SMOKER)); @@ -278,16 +293,16 @@ public class DefaultPlugin implements REIPlugin, BuiltinPlugin { @Override public void registerDisplays(DisplayRegistry 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); + registry.registerRecipes( ShapelessRecipe.class, DefaultShapelessDisplay::new); + registry.registerRecipes( ShapedRecipe.class, DefaultShapedDisplay::new); + registry.registerRecipes( SmeltingRecipe.class, DefaultSmeltingDisplay::new); + registry.registerRecipes( SmokingRecipe.class, DefaultSmokingDisplay::new); + registry.registerRecipes( BlastingRecipe.class, DefaultBlastingDisplay::new); + registry.registerRecipes( CampfireCookingRecipe.class, DefaultCampfireDisplay::new); + registry.registerRecipes( StonecutterRecipe.class, DefaultStoneCuttingDisplay::new); + registry.registerRecipes( UpgradeRecipe.class, DefaultSmithingDisplay::new); for (Map.Entry entry : AbstractFurnaceBlockEntity.getFuel().entrySet()) { - registry.registerDisplay(new DefaultFuelDisplay(EntryStacks.of(entry.getKey()), entry.getValue())); + registry.registerDisplay(new DefaultFuelDisplay(EntryIngredients.of(entry.getKey()), entry.getValue())); } EntryIngredient arrowStack = EntryIngredient.of(EntryStacks.of(Items.ARROW)); ReferenceSet registeredPotions = new ReferenceOpenHashSet<>(); @@ -365,7 +380,7 @@ public class DefaultPlugin implements REIPlugin, BuiltinPlugin { // Sit tight! This will be a fast journey! long time = System.currentTimeMillis(); EntryRegistry.getInstance().getEntryStacks().forEach(this::applyPotionTransformer); - for (List displays : DisplayRegistry.getInstance().getAllRecipesNoHandlers().values()) { + for (List displays : DisplayRegistry.getInstance().getAllDisplays().values()) { for (Display display : displays) { for (List> entries : display.getInputEntries()) for (EntryStack stack : entries) @@ -384,66 +399,71 @@ public class DefaultPlugin implements REIPlugin, BuiltinPlugin { stack.setting(EntryStack.Settings.CHECK_TAGS, EntryStack.Settings.TRUE); } + @Override + public void registerExclusionZones(ExclusionZones zones) { + zones.register(EffectRenderingInventoryScreen.class, new DefaultPotionEffectExclusionZones()); + zones.register(RecipeUpdateListener.class, new DefaultRecipeBookExclusionZones()); + } + @Override public void registerScreens(ScreenRegistry registry) { - ExclusionZones exclusionZones = registry.exclusionZones(); - exclusionZones.register(EffectRenderingInventoryScreen.class, new DefaultPotionEffectExclusionZones()); - exclusionZones.register(RecipeUpdateListener.class, new DefaultRecipeBookExclusionZones()); - registry.registerHandler(new ScreenRegistry.DisplayBoundsProvider>() { + registry.registerDecider(new DisplayBoundsProvider>() { @Override public Rectangle getScreenBounds(AbstractContainerScreen screen) { return new Rectangle(screen.leftPos, screen.topPos, screen.imageWidth, screen.imageHeight); } @Override - public Class getBaseSupportedClass() { + public Class getBaseSupportedClass() { return AbstractContainerScreen.class; } }); - } - @Override - public void registerOthers(DisplayRegistry registry) { - registry.registerAutoCraftingHandler(new DefaultRecipeBookHandler()); - - registry.removeAutoCraftButton(FUEL); - registry.removeAutoCraftButton(COMPOSTING); - registry.removeAutoCraftButton(BEACON); - registry.removeAutoCraftButton(BEACON_PAYMENT); - registry.removeAutoCraftButton(INFO); - registry.removeAutoCraftButton(STRIPPING); - registry.removeAutoCraftButton(TILLING); - registry.removeAutoCraftButton(PATHING); 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 -> { + } + + @Override + public void registerFluidSupport(FluidSupportProvider support) { + support.register(entry -> { ItemStack stack = entry.getValue(); if (stack.getItem() instanceof BucketItem) return InteractionResultHolder.success(Stream.of(EntryStacks.of(((BucketItem) stack.getItem()).content, FluidStackHooks.bucketAmount()))); return InteractionResultHolder.pass(null); }); -// SubsetsRegistry subsetsRegistry = SubsetsRegistry.INSTANCE; -// subsetsRegistry.registerPathEntry("roughlyenoughitems:food", EntryStacks.of(Items.MILK_BUCKET)); -// subsetsRegistry.registerPathEntry("roughlyenoughitems:food/roughlyenoughitems:cookies", EntryStacks.of(Items.COOKIE)); - - FavoriteEntryType.registry().register(GameModeFavoriteEntry.ID, GameModeFavoriteEntry.Type.INSTANCE); - FavoriteEntryType.registry().getOrCrateSection(new TranslatableComponent(GameModeFavoriteEntry.TRANSLATION_KEY)) + } + + @Override + public void registerTransferHandlers(TransferHandlerRegistry registry) { + registry.register(new DefaultRecipeBookHandler()); + } + + @Override + public void registerFavorites(FavoriteEntryType.Registry registry) { + registry.register(GameModeFavoriteEntry.ID, GameModeFavoriteEntry.Type.INSTANCE); + registry.getOrCrateSection(new TranslatableComponent(GameModeFavoriteEntry.TRANSLATION_KEY)) .add(Stream.concat( Arrays.stream(GameType.values()), Stream.of((GameType) null) ).map(GameModeFavoriteEntry.Type.INSTANCE::fromArgs).toArray(FavoriteEntry[]::new)); - FavoriteEntryType.registry().register(WeatherFavoriteEntry.ID, WeatherFavoriteEntry.Type.INSTANCE); - FavoriteEntryType.registry().getOrCrateSection(new TranslatableComponent(WeatherFavoriteEntry.TRANSLATION_KEY)) + registry.register(WeatherFavoriteEntry.ID, WeatherFavoriteEntry.Type.INSTANCE); + registry.getOrCrateSection(new TranslatableComponent(WeatherFavoriteEntry.TRANSLATION_KEY)) .add(Stream.concat( Arrays.stream(WeatherFavoriteEntry.Weather.values()), Stream.of((WeatherFavoriteEntry.Weather) null) ).map(WeatherFavoriteEntry.Type.INSTANCE::fromArgs).toArray(FavoriteEntry[]::new)); } + @Override + public void registerSubsets(SubsetsRegistry registry) { +// registry.registerPathEntry("roughlyenoughitems:food", EntryStacks.of(Items.MILK_BUCKET)); +// registry.registerPathEntry("roughlyenoughitems:food/roughlyenoughitems:cookies", EntryStacks.of(Items.COOKIE)); + } + @Override public int getPriority() { return -100; 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 3d420d638..8d8815b9a 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 @@ -23,7 +23,7 @@ package me.shedaniel.rei.plugin.autocrafting; -import me.shedaniel.rei.api.AutoTransferHandler; +import me.shedaniel.rei.api.registry.transfer.TransferHandler; import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.registry.display.Display; import me.shedaniel.rei.api.registry.display.TransferDisplay; @@ -41,13 +41,13 @@ import net.minecraft.world.item.crafting.Recipe; import org.jetbrains.annotations.NotNull; @Environment(EnvType.CLIENT) -public class DefaultRecipeBookHandler implements AutoTransferHandler { +public class DefaultRecipeBookHandler implements TransferHandler { @NotNull @Override public Result handle(@NotNull Context context) { - if (context.getRecipe() instanceof TransferDisplay && ClientHelper.getInstance().canUseMovePackets()) + if (context.getDisplay() instanceof TransferDisplay && ClientHelper.getInstance().canUseMovePackets()) return Result.createNotApplicable(); - Display display = context.getRecipe(); + Display display = context.getDisplay(); 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/DefaultBeaconBaseDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseDisplay.java index 4cf5a6868..c82daf1e2 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/base/DefaultBeaconBaseDisplay.java @@ -23,9 +23,9 @@ package me.shedaniel.rei.plugin.beacon.base; -import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.api.registry.display.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; @@ -38,23 +38,23 @@ import java.util.List; @Environment(EnvType.CLIENT) public class DefaultBeaconBaseDisplay implements Display { - private List> entries; + private EntryIngredient entries; public DefaultBeaconBaseDisplay(List entries) { - this.entries = EntryStacks.ofItemStacks(entries); + this.entries = EntryIngredients.ofItemStacks(entries); } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return Collections.singletonList(entries); } - public List> getEntries() { + public EntryIngredient getEntries() { return entries; } @Override - public @NotNull List>> getResultingEntries() { + public List getResultingEntries() { return Collections.emptyList(); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentDisplay.java index 17991ef5b..c6988e564 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/beacon/payment/DefaultBeaconPaymentDisplay.java @@ -23,44 +23,42 @@ package me.shedaniel.rei.plugin.beacon.payment; -import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.api.registry.display.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; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; @Environment(EnvType.CLIENT) public class DefaultBeaconPaymentDisplay implements Display { - - private List> entries; + private EntryIngredient entries; public DefaultBeaconPaymentDisplay(List entries) { - this.entries = EntryStacks.ofItemStacks(entries); + this.entries = EntryIngredients.ofItemStacks(entries); } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return Collections.singletonList(entries); } - public List> getEntries() { + public EntryIngredient getEntries() { return entries; } @Override - public @NotNull List>> getResultingEntries() { + public List getResultingEntries() { return Collections.emptyList(); } @Override - public @NotNull ResourceLocation getCategoryIdentifier() { + public ResourceLocation getCategoryIdentifier() { return DefaultPlugin.BEACON_PAYMENT; } } 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 644723ec6..57f3a52e0 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,44 +27,43 @@ 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.registry.display.DisplayCategory; import me.shedaniel.rei.api.gui.Renderer; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; -import me.shedaniel.rei.api.gui.widgets.Widgets; import me.shedaniel.rei.api.gui.widgets.Widget; +import me.shedaniel.rei.api.gui.widgets.Widgets; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Blocks; -import org.jetbrains.annotations.NotNull; import java.util.List; @Environment(EnvType.CLIENT) public class DefaultBrewingCategory implements DisplayCategory { @Override - public @NotNull ResourceLocation getIdentifier() { + public ResourceLocation getIdentifier() { return DefaultPlugin.BREWING; } @Override - public @NotNull Renderer getIcon() { + public Renderer getIcon() { return EntryStacks.of(Blocks.BREWING_STAND); } @Override - public @NotNull Component getTitle() { - return I18n.get("category.rei.brewing"); + public Component getTitle() { + return new TranslatableComponent("category.rei.brewing"); } @Override - public @NotNull List setupDisplay(DefaultBrewingDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultBrewingDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 52, bounds.getCenterY() - 29); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); @@ -82,5 +81,4 @@ public class DefaultBrewingCategory implements DisplayCategory output; - private List> reactant, input; + private EntryIngredient reactant, input; @ApiStatus.Internal public DefaultBrewingDisplay(Ingredient input, Ingredient reactant, ItemStack output) { ItemStack[] inputItems = input.getItems(); - this.input = new ArrayList<>(inputItems.length); + List> i = new ArrayList<>(inputItems.length); for (ItemStack inputItem : inputItems) { EntryStack entryStack = EntryStacks.of(inputItem); entryStack.setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, s -> Collections.singletonList(new TranslatableComponent("category.rei.brewing.input").withStyle(ChatFormatting.YELLOW))); - this.input.add(entryStack); + i.add(entryStack); } + this.input = EntryIngredient.of(i); ItemStack[] reactantStacks = reactant.getItems(); - this.reactant = new ArrayList<>(reactantStacks.length); + List> r = new ArrayList<>(reactantStacks.length); for (ItemStack stack : reactantStacks) { EntryStack entryStack = EntryStacks.of(stack); entryStack.setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, s -> Collections.singletonList(new TranslatableComponent("category.rei.brewing.reactant").withStyle(ChatFormatting.YELLOW))); - this.reactant.add(entryStack); + r.add(entryStack); } + this.reactant = EntryIngredient.of(r); this.output = EntryStacks.of(output).setting(EntryStack.Settings.TOOLTIP_APPEND_EXTRA, stack -> Collections.singletonList(new TranslatableComponent("category.rei.brewing.result").withStyle(ChatFormatting.YELLOW))); } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return Lists.newArrayList(input, reactant); } @Override - public @NotNull List>> getResultingEntries() { - return Collections.singletonList(Collections.singletonList(output)); + public List getResultingEntries() { + return Collections.singletonList(EntryIngredient.of(output)); } @Override - public @NotNull ResourceLocation getCategoryIdentifier() { + public ResourceLocation getCategoryIdentifier() { return DefaultPlugin.BREWING; } @@ -90,9 +91,4 @@ public class DefaultBrewingDisplay implements Display { stack.add(output); return stack; } - - @Override - public @NotNull List>> getRequiredEntries() { - return getInputEntries(); - } } 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 4f7834ea7..4575dbaa9 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,40 +26,38 @@ 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.registry.display.DisplayCategory; import me.shedaniel.rei.api.gui.Renderer; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; -import me.shedaniel.rei.api.gui.widgets.Widgets; import me.shedaniel.rei.api.gui.widgets.Widget; +import me.shedaniel.rei.api.gui.widgets.Widgets; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.plugin.DefaultPlugin; -import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Blocks; -import org.jetbrains.annotations.NotNull; import java.text.DecimalFormat; import java.util.List; public class DefaultCampfireCategory implements DisplayCategory { @Override - public @NotNull ResourceLocation getIdentifier() { + public ResourceLocation getIdentifier() { return DefaultPlugin.CAMPFIRE; } @Override - public @NotNull Renderer getIcon() { + public Renderer getIcon() { return EntryStacks.of(Blocks.CAMPFIRE); } @Override - public @NotNull Component getTitle() { - return I18n.get("category.rei.campfire"); + public Component getTitle() { + return new TranslatableComponent("category.rei.campfire"); } @Override - public @NotNull List setupDisplay(DefaultCampfireDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultCampfireDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.y + 10); final double cookingTime = display.getCookTime(); DecimalFormat df = new DecimalFormat("###.##"); 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 6ea51cb97..3b55d3f3d 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.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.api.registry.display.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; @@ -35,7 +35,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.AbstractCookingRecipe; import net.minecraft.world.item.crafting.CampfireCookingRecipe; import net.minecraft.world.item.crafting.Ingredient; -import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; @@ -43,8 +42,8 @@ import java.util.Optional; @Environment(EnvType.CLIENT) public class DefaultCampfireDisplay implements Display { - private List>> inputs; - private List> output; + private List inputs; + private List output; private int cookTime; private CampfireCookingRecipe display; @@ -54,8 +53,8 @@ public class DefaultCampfireDisplay implements Display { } public DefaultCampfireDisplay(NonNullList ingredients, ItemStack output, int cookTime) { - this.inputs = EntryStacks.ofIngredients(ingredients); - this.output = Collections.singletonList(EntryStacks.of(output)); + this.inputs = EntryIngredients.ofIngredients(ingredients); + this.output = Collections.singletonList(EntryIngredients.of(output)); this.cookTime = cookTime; } @@ -64,27 +63,22 @@ public class DefaultCampfireDisplay implements Display { } @Override - public @NotNull Optional getDisplayLocation() { + public Optional getDisplayLocation() { return Optional.ofNullable(display).map(AbstractCookingRecipe::getId); } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return inputs; } @Override - public @NotNull List>> getResultingEntries() { - return Collections.singletonList(output); + public List getResultingEntries() { + return output; } @Override - public @NotNull List>> getRequiredEntries() { - return inputs; - } - - @Override - public @NotNull ResourceLocation getCategoryIdentifier() { + public ResourceLocation getCategoryIdentifier() { return DefaultPlugin.CAMPFIRE; } 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 4dbbd3d9b..61ef5272e 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,6 +27,7 @@ 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.ingredient.EntryIngredient; import me.shedaniel.rei.api.ingredient.EntryStack; import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.api.gui.Renderer; @@ -51,24 +52,23 @@ import java.util.*; @Environment(EnvType.CLIENT) public class DefaultCompostingCategory implements DisplayCategory { - @Override - public @NotNull ResourceLocation getIdentifier() { + public ResourceLocation getIdentifier() { return DefaultPlugin.COMPOSTING; } @Override - public @NotNull Renderer getIcon() { + public Renderer getIcon() { return EntryStacks.of(Blocks.COMPOSTER); } @Override - public @NotNull Component getTitle() { - return I18n.get("category.rei.composting"); + public Component getTitle() { + return new TranslatableComponent("category.rei.composting"); } @Override - public @NotNull DisplayRenderer getDisplayRenderer(DefaultCompostingDisplay display) { + public DisplayRenderer getDisplayRenderer(DefaultCompostingDisplay display) { return new DisplayRenderer() { private Component text = new TranslatableComponent("text.rei.composting.page", display.getPage() + 1); @@ -85,14 +85,14 @@ public class DefaultCompostingCategory implements DisplayCategory setupDisplay(DefaultCompostingDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultCompostingDisplay display, Rectangle bounds) { List widgets = Lists.newArrayList(); Point startingPoint = new Point(bounds.x + bounds.width - 55, bounds.y + 110); - List>> stacks = new ArrayList<>(display.getInputEntries()); + List stacks = new ArrayList<>(display.getInputEntries()); int i = 0; for (int y = 0; y < 6; y++) for (int x = 0; x < 8; x++) { - List> entryStack = stacks.size() > i ? stacks.get(i) : Collections.emptyList(); + EntryIngredient entryStack = stacks.size() > i ? stacks.get(i) : EntryIngredient.empty(); if (!entryStack.isEmpty()) { display.getInputMap().object2FloatEntrySet().stream().filter(entry -> entry.getKey() != null && Objects.equals(entry.getKey().asItem(), entryStack.get(0).getValue())).findAny().map(Map.Entry::getValue).ifPresent(chance -> { for (EntryStack stack : entryStack) { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java index 39b79ac28..3aa8aa20a 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java @@ -24,16 +24,15 @@ package me.shedaniel.rei.plugin.composting; import it.unimi.dsi.fastutil.objects.Object2FloatMap; -import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.api.registry.display.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; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; -import org.jetbrains.annotations.NotNull; import java.util.Arrays; import java.util.Collections; @@ -41,24 +40,24 @@ import java.util.List; @Environment(EnvType.CLIENT) public class DefaultCompostingDisplay implements Display { - private List>> inputs; + private List inputs; private Object2FloatMap inputMap; - private List>> output; + private List output; private int page; public DefaultCompostingDisplay(int page, List> inputs, Object2FloatMap map, ItemStack output) { this.page = page; { - List>[] result = new List[inputs.size()]; + EntryIngredient[] result = new EntryIngredient[inputs.size()]; int i = 0; for (Object2FloatMap.Entry entry : inputs) { - result[i] = Collections.singletonList(EntryStacks.of(entry.getKey())); + result[i] = EntryIngredients.of(entry.getKey()); i++; } this.inputs = Arrays.asList(result); } this.inputMap = map; - this.output = Collections.singletonList(Collections.singletonList(EntryStacks.of(output))); + this.output = Collections.singletonList(EntryIngredients.of(output)); } public int getPage() { @@ -66,7 +65,7 @@ public class DefaultCompostingDisplay implements Display { } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return inputs; } @@ -75,17 +74,12 @@ public class DefaultCompostingDisplay implements Display { } @Override - public @NotNull List>> getResultingEntries() { + public List getResultingEntries() { return output; } @Override - public @NotNull ResourceLocation getCategoryIdentifier() { + public ResourceLocation getCategoryIdentifier() { return DefaultPlugin.COMPOSTING; } - - @Override - public @NotNull List>> getRequiredEntries() { - return inputs; - } } 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 e679e1ec0..ba3a149e5 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,25 +28,24 @@ 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.ingredient.EntryStack; import me.shedaniel.rei.api.REIHelper; import me.shedaniel.rei.api.gui.Renderer; -import me.shedaniel.rei.api.registry.display.TransferDisplayCategory; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.gui.widgets.Slot; -import me.shedaniel.rei.api.gui.widgets.Widgets; import me.shedaniel.rei.api.gui.widgets.Widget; -import me.shedaniel.rei.plugin.DefaultPlugin; +import me.shedaniel.rei.api.gui.widgets.Widgets; +import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.TransferDisplayCategory; import me.shedaniel.rei.api.server.ContainerInfo; import me.shedaniel.rei.api.server.ContainerInfoHandler; +import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.client.gui.GuiComponent; -import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.Blocks; -import org.jetbrains.annotations.NotNull; import java.util.List; @@ -58,22 +57,22 @@ public class DefaultCraftingCategory implements TransferDisplayCategory setupDisplay(DefaultCraftingDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultCraftingDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 27); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); 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 a0104bdee..df11c5088 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.ingredient.EntryStack; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; @@ -39,13 +39,13 @@ import java.util.Optional; @Environment(EnvType.CLIENT) public class DefaultShapedDisplay implements DefaultCraftingDisplay { private ShapedRecipe display; - private List>> input; - private List> output; + private List input; + private EntryIngredient output; public DefaultShapedDisplay(ShapedRecipe recipe) { this.display = recipe; - this.input = EntryStacks.ofIngredients(recipe.getIngredients()); - this.output = Collections.singletonList(EntryStacks.of(recipe.getResultItem())); + this.input = EntryIngredients.ofIngredients(recipe.getIngredients()); + this.output = EntryIngredients.of(recipe.getResultItem()); } @Override @@ -54,20 +54,15 @@ public class DefaultShapedDisplay implements DefaultCraftingDisplay { } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return input; } @Override - public @NotNull List>> getResultingEntries() { + public List getResultingEntries() { return Collections.singletonList(output); } - @Override - public @NotNull List>> getRequiredEntries() { - return input; - } - @Override public int getHeight() { return display.getHeight(); @@ -82,5 +77,4 @@ public class DefaultShapedDisplay implements DefaultCraftingDisplay { public int getWidth() { return display.getWidth(); } - } 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 9828d3d3f..171ac50ca 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,14 +23,13 @@ package me.shedaniel.rei.plugin.crafting; -import me.shedaniel.rei.api.ingredient.EntryStack; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.ingredient.EntryIngredient; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.ShapelessRecipe; -import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; @@ -39,13 +38,13 @@ import java.util.Optional; @Environment(EnvType.CLIENT) public class DefaultShapelessDisplay implements DefaultCraftingDisplay { private ShapelessRecipe display; - private List>> input; - private List> output; + private List input; + private EntryIngredient output; public DefaultShapelessDisplay(ShapelessRecipe recipe) { this.display = recipe; - this.input = EntryStacks.ofIngredients(recipe.getIngredients()); - this.output = Collections.singletonList(EntryStacks.of(recipe.getResultItem())); + this.input = EntryIngredients.ofIngredients(recipe.getIngredients()); + this.output = EntryIngredients.of(recipe.getResultItem()); } @Override @@ -54,25 +53,20 @@ public class DefaultShapelessDisplay implements DefaultCraftingDisplay { } @Override - public @NotNull Optional getDisplayLocation() { + public Optional getDisplayLocation() { return Optional.ofNullable(display).map(ShapelessRecipe::getId); } @Override - public @NotNull List>> getInputEntries() { + public List getInputEntries() { return input; } @Override - public @NotNull List>> getResultingEntries() { + public List getResultingEntries() { return Collections.singletonList(output); } - @Override - public @NotNull List>> getRequiredEntries() { - return input; - } - @Override public int getWidth() { if (display.getIngredients().size() > 4) 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 3c885ca63..fe798db22 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 @@ -127,7 +127,7 @@ public class GameModeFavoriteEntry extends FavoriteEntry { public @Nullable Tooltip getTooltip(Point mouse) { if (gameMode == null) return Tooltip.create(mouse, new TranslatableComponent("text.rei.gamemode_button.tooltip.dropdown")); - return Tooltip.create(mouse, new TranslatableComponent("text.rei.gamemode_button.tooltip.entry", gameMode.getLongDisplayName().getString())); + return Tooltip.create(mouse, new TranslatableComponent("text.rei.gamemode_button.tooltip.entry", gameMode.getDisplayName().getString())); } }; } @@ -209,7 +209,7 @@ public class GameModeFavoriteEntry extends FavoriteEntry { private int textWidth = -69; public GameModeMenuEntry(GameType gameMode) { - this.text = gameMode.getLongDisplayName().getString(); + this.text = gameMode.getDisplayName().getString(); this.gameMode = gameMode; } 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 10fc3970f..7afb5e9ad 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 @@ -132,7 +132,7 @@ public class WeatherFavoriteEntry extends FavoriteEntry { float n = h + 14 / 256f; BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + bufferBuilder.begin(7, DefaultVertexFormat.POSITION_TEX); bufferBuilder.vertex(matrix, i, l, m).uv(f, n).endVertex(); bufferBuilder.vertex(matrix, j, l, m).uv(g, n).endVertex(); bufferBuilder.vertex(matrix, j, k, m).uv(g, h).endVertex(); 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 40abc852c..b204c4cea 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,24 +27,22 @@ 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.registry.display.DisplayCategory; +import me.shedaniel.rei.api.gui.DisplayRenderer; import me.shedaniel.rei.api.gui.Renderer; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; import me.shedaniel.rei.api.gui.widgets.Slot; import me.shedaniel.rei.api.gui.widgets.Tooltip; -import me.shedaniel.rei.api.gui.widgets.Widgets; -import me.shedaniel.rei.api.gui.DisplayRenderer; import me.shedaniel.rei.api.gui.widgets.Widget; +import me.shedaniel.rei.api.gui.widgets.Widgets; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Items; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.text.DecimalFormat; @@ -56,13 +54,13 @@ public class DefaultFuelCategory implements DisplayCategory private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#.##"); @Override - public @NotNull ResourceLocation getIdentifier() { + public ResourceLocation getIdentifier() { return DefaultPlugin.FUEL; } @Override - public @NotNull Component getTitle() { - return I18n.get("category.rei.fuel"); + public Component getTitle() { + return new TranslatableComponent("category.rei.fuel"); } @Override @@ -71,12 +69,12 @@ public class DefaultFuelCategory implements DisplayCategory } @Override - public @NotNull Renderer getIcon() { + public Renderer getIcon() { return EntryStacks.of(Items.COAL); } @Override - public @NotNull List setupDisplay(DefaultFuelDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultFuelDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 17); String burnItems = DECIMAL_FORMAT.format(display.getFuelTime() / 200d); List widgets = Lists.newArrayList(); @@ -89,7 +87,7 @@ public class DefaultFuelCategory implements DisplayCategory } @Override - public @NotNull DisplayRenderer getDisplayRenderer(DefaultFuelDisplay display) { + public DisplayRenderer getDisplayRenderer(DefaultFuelDisplay display) { Slot slot = Widgets.createSlot(new Point(0, 0)).entries(display.getInputEntries().get(0)).disableBackground().disableHighlight(); String burnItems = DECIMAL_FORMAT.format(display.getFuelTime() / 200d); return new DisplayRenderer() { diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelDisplay.java index b762fb357..aaf2efc81 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelDisplay.java @@ -23,7 +23,7 @@ package me.shedaniel.rei.plugin.fuel; -import me.shedaniel.rei.api.ingredient.EntryStack; +import me.shedaniel.rei.api.ingredient.EntryIngredient; import me.shedaniel.rei.api.registry.display.Display; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; @@ -35,21 +35,21 @@ import java.util.List; @Environment(EnvType.CLIENT) public class DefaultFuelDisplay implements Display { - private EntryStack fuel; + private EntryIngredient fuel; private int fuelTime; - public DefaultFuelDisplay(EntryStack fuel, int fuelTime) { + public DefaultFuelDisplay(EntryIngredient fuel, int fuelTime) { this.fuel = fuel; this.fuelTime = fuelTime; } @Override - public List>> getInputEntries() { - return Collections.singletonList(Collections.singletonList(fuel)); + public List getInputEntries() { + return Collections.singletonList(fuel); } @Override - public List>> getResultingEntries() { + public List getResultingEntries() { return Collections.emptyList(); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java index e234256ea..d231c9a75 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java @@ -48,6 +48,7 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FormattedCharSequence; import org.jetbrains.annotations.NotNull; @@ -60,7 +61,7 @@ import java.util.Objects; public class DefaultInformationCategory implements DisplayCategory { protected static void innerBlit(Matrix4f matrix4f, int xStart, int xEnd, int yStart, int yEnd, int z, float uStart, float uEnd, float vStart, float vEnd) { BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + bufferBuilder.begin(7, DefaultVertexFormat.POSITION_TEX); bufferBuilder.vertex(matrix4f, xStart, yEnd, z).uv(uStart, vEnd).endVertex(); bufferBuilder.vertex(matrix4f, xEnd, yEnd, z).uv(uEnd, vEnd).endVertex(); bufferBuilder.vertex(matrix4f, xEnd, yStart, z).uv(uEnd, vStart).endVertex(); @@ -71,13 +72,13 @@ public class DefaultInformationCategory implements DisplayCategory setupDisplay(DefaultInformationDisplay display, Rectangle bounds) { List widgets = Lists.newArrayList(); widgets.add(Widgets.createLabel(new Point(bounds.getCenterX(), bounds.y + 3), display.getName()).noShadow().color(0xFF404040, 0xFFBBBBBB)); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationDisplay.java index 1deff277b..8df849cab 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationDisplay.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.plugin.information; import com.google.common.collect.Lists; +import me.shedaniel.rei.api.ingredient.EntryIngredient; import me.shedaniel.rei.api.ingredient.EntryStack; import me.shedaniel.rei.api.registry.display.Display; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -40,31 +41,31 @@ import java.util.List; @Environment(EnvType.CLIENT) public class DefaultInformationDisplay implements Display { - private List> entryStacks; + private EntryIngredient entryStacks; private List texts; private Component name; - protected DefaultInformationDisplay(List> entryStacks, Component name) { + protected DefaultInformationDisplay(EntryIngredient entryStacks, Component name) { this.entryStacks = entryStacks; this.name = name; this.texts = Lists.newArrayList(); } - public static DefaultInformationDisplay createFromEntries(List> entryStacks, Component name) { + public static DefaultInformationDisplay createFromEntries(EntryIngredient entryStacks, Component name) { return new DefaultInformationDisplay(entryStacks, name); } public static DefaultInformationDisplay createFromEntry(EntryStack entryStack, Component name) { - return createFromEntries(Collections.singletonList(entryStack), name); + return createFromEntries(EntryIngredient.of(entryStack), name); } @Override - public @NotNull List>> getInputEntries() { + public @NotNull List getInputEntries() { return Collections.singletonList(entryStacks); } @Override - public @NotNull List>> getResultingEntries() { + public @NotNull List getResultingEntries() { return Collections.singletonList(entryStacks); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingCategory.java index 951074b2c..16b543d10 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingCategory.java @@ -26,38 +26,37 @@ package me.shedaniel.rei.plugin.pathing; import com.google.common.collect.Lists; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.api.gui.Renderer; -import me.shedaniel.rei.api.ingredient.util.EntryStacks; -import me.shedaniel.rei.api.gui.widgets.Widgets; import me.shedaniel.rei.api.gui.widgets.Widget; +import me.shedaniel.rei.api.gui.widgets.Widgets; +import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.DisplayCategory; import me.shedaniel.rei.plugin.DefaultPlugin; -import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Items; -import org.jetbrains.annotations.NotNull; import java.util.List; public class DefaultPathingCategory implements DisplayCategory { @Override - public @NotNull ResourceLocation getIdentifier() { + public ResourceLocation getIdentifier() { return DefaultPlugin.PATHING; } @Override - public @NotNull Renderer getIcon() { + public Renderer getIcon() { return EntryStacks.of(Items.IRON_SHOVEL); } @Override - public @NotNull Component getTitle() { - return I18n.get("category.rei.pathing"); + public Component getTitle() { + return new TranslatableComponent("category.rei.pathing"); } @Override - public @NotNull List setupDisplay(DefaultPathingDisplay display, Rectangle bounds) { + public List setupDisplay(DefaultPathingDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingDisplay.java index f61ace96f..a0f880157 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingDisplay.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/pathing/DefaultPathingDisplay.java @@ -23,15 +23,16 @@ package me.shedaniel.rei.plugin.pathing; +import me.shedaniel.rei.api.ingredient.EntryIngredient; import me.shedaniel.rei.api.ingredient.EntryStack; -import me.shedaniel.rei.api.registry.display.Display; +import me.shedaniel.rei.api.ingredient.util.EntryIngredients; import me.shedaniel.rei.api.ingredient.util.EntryStacks; +import me.shedaniel.rei.api.registry.display.Display; import me.shedaniel.rei.plugin.DefaultPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; @@ -59,22 +60,17 @@ public class DefaultPathingDisplay implements Display { } @Override - public @NotNull List>> getInputEntries() { - return Collections.singletonList(Collections.singletonList(in)); + public List getInputEntries() { + return Collections.singletonList(EntryIngredients.of(in)); } @Override - public @NotNull List>> getResultingEntries() { - return Collections.