From 85b5beffc390f1b0d74e2501f9f4968066421828 Mon Sep 17 00:00:00 2001 From: ypf791 Date: Sun, 7 Apr 2024 12:21:08 +0800 Subject: [PATCH] remove addStochasticTooltip bulk version (#1421) * compat: rei: add new addStochasticTooltip overload * compat: rei: DeployingCategory using new addStochasticTooltip overload compat: rei: DeployingCategory using new addStochasticTooltip overload * compat: rei: PolishingCategory using new addStochasticTooltip overload * compat: rei: BasinCategory using new addStochasticTooltip overload Update BasinCategory.java * compat: rei: ItemApplicationCategory using new addStochasticTooltip overload * compat: rei: CreateRecipeCategory removes unused addStochasticTooltip overloads --- .../compat/rei/category/BasinCategory.java | 16 ++++----- .../rei/category/CreateRecipeCategory.java | 36 ++++--------------- .../rei/category/DeployingCategory.java | 12 ++++--- .../rei/category/ItemApplicationCategory.java | 14 ++++---- .../rei/category/PolishingCategory.java | 15 ++++---- 5 files changed, 36 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/simibubi/create/compat/rei/category/BasinCategory.java b/src/main/java/com/simibubi/create/compat/rei/category/BasinCategory.java index d90b6b1ade..cd08effe05 100644 --- a/src/main/java/com/simibubi/create/compat/rei/category/BasinCategory.java +++ b/src/main/java/com/simibubi/create/compat/rei/category/BasinCategory.java @@ -12,6 +12,7 @@ import com.simibubi.create.content.processing.basin.BasinRecipe; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.processing.recipe.HeatCondition; +import com.simibubi.create.content.processing.recipe.ProcessingOutput; import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.item.ItemHelper; @@ -42,7 +43,7 @@ public void addWidgets(CreateDisplay display, List widgets, BasinRecipe recipe = display.getRecipe(); NonNullList fluidIngredients = recipe.getFluidIngredients(); List> ingredients = ItemHelper.condenseIngredients(recipe.getIngredients()); - List itemOutputs = recipe.getRollableResultsAsItemStacks(); + List itemOutputs = recipe.getRollableResults(); NonNullList fluidOutputs = recipe.getFluidResults(); int size = ingredients.size() + fluidIngredients.size(); @@ -77,21 +78,20 @@ public void addWidgets(CreateDisplay display, List widgets, widgets.add(fluidSlot); } - int outSize = fluidOutputs.size() + recipe.getRollableResults() - .size(); + int outSize = fluidOutputs.size() + itemOutputs.size(); int outputIndex = 0; - if (!itemOutputs.isEmpty()) - addStochasticTooltip(widgets, recipe.getRollableResults(), i); - for (; outputIndex < outSize; outputIndex++) { int xPosition = 141 - (outSize % 2 != 0 && outputIndex == outSize - 1 ? 0 : outputIndex % 2 == 0 ? 10 : -9); int yPosition = -19 * (outputIndex / 2) + 50 + yOffset; if (itemOutputs.size() > outputIndex) { - widgets.add(basicSlot(origin.x + xPosition + 1, origin.y + yPosition + yOffset + 1) + ProcessingOutput result = itemOutputs.get(outputIndex); + Slot outputSlot = basicSlot(origin.x + xPosition + 1, origin.y + yPosition + yOffset + 1) .markOutput() - .entries(EntryIngredients.of(itemOutputs.get(outputIndex)))); + .entries(EntryIngredients.of(result.getStack())); + widgets.add(outputSlot); + addStochasticTooltip(outputSlot, result); i++; } else { Slot fluidSlot = basicSlot(origin.x + xPosition + 1, origin.y + yPosition + 1 + yOffset) diff --git a/src/main/java/com/simibubi/create/compat/rei/category/CreateRecipeCategory.java b/src/main/java/com/simibubi/create/compat/rei/category/CreateRecipeCategory.java index 5546691381..ede1691cb8 100644 --- a/src/main/java/com/simibubi/create/compat/rei/category/CreateRecipeCategory.java +++ b/src/main/java/com/simibubi/create/compat/rei/category/CreateRecipeCategory.java @@ -118,38 +118,16 @@ public static AllGuiTextures getRenderedSlot(Recipe recipe, int index) { return AllGuiTextures.JEI_CHANCE_SLOT; } - public static void addStochasticTooltip(List itemStacks, List results) { - addStochasticTooltip(itemStacks, results, 1); - } - - public static void addStochasticTooltip(List itemStacks, List results, - int startIndex) { - itemStacks.stream().filter(widget -> widget instanceof Slot).forEach(widget -> { - Slot slot = (Slot) widget; - - int slotIndex = itemStacks.indexOf(widget); - - ClientEntryStacks.setTooltipProcessor(slot.getCurrentEntry(), (entryStack, tooltip) -> { - int outputIndex = slotIndex - startIndex; - if (slotIndex < startIndex || outputIndex >= results.size()) - return tooltip; - ProcessingOutput output = results.get(outputIndex); - float chance = output.getChance(); - if (chance != 1) - tooltip.add(Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100)) - .withStyle(ChatFormatting.GOLD)); - return tooltip; - }); + public static void addStochasticTooltip(Slot slot, ProcessingOutput output) { + ClientEntryStacks.setTooltipProcessor(slot.getCurrentEntry(), (entryStack, tooltip) -> { + float chance = output.getChance(); + if (chance != 1) + tooltip.add(Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100)) + .withStyle(ChatFormatting.GOLD)); + return tooltip; }); } - public static void addStochasticTooltip(ProcessingOutput output, Tooltip tooltip) { - float chance = output.getChance(); - if (chance != 1) - tooltip.add(Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100)) - .withStyle(ChatFormatting.GOLD)); - } - public static Slot basicSlot(int x, int y) { return Widgets.createSlot(point(x, y)).disableBackground(); } diff --git a/src/main/java/com/simibubi/create/compat/rei/category/DeployingCategory.java b/src/main/java/com/simibubi/create/compat/rei/category/DeployingCategory.java index 54b5a3879a..c226c89903 100644 --- a/src/main/java/com/simibubi/create/compat/rei/category/DeployingCategory.java +++ b/src/main/java/com/simibubi/create/compat/rei/category/DeployingCategory.java @@ -40,11 +40,13 @@ public void addWidgets(CreateDisplay display, List { + Slot outputSlot = basicSlot(origin.getX() + 132, origin.getY() + 51) + .markOutput() + .entries(EntryIngredients.of(result.getStack())); + ingredients.add(outputSlot); + addStochasticTooltip(outputSlot, result); + }); } @Override diff --git a/src/main/java/com/simibubi/create/compat/rei/category/ItemApplicationCategory.java b/src/main/java/com/simibubi/create/compat/rei/category/ItemApplicationCategory.java index bdb2682f49..5353b9d208 100644 --- a/src/main/java/com/simibubi/create/compat/rei/category/ItemApplicationCategory.java +++ b/src/main/java/com/simibubi/create/compat/rei/category/ItemApplicationCategory.java @@ -46,15 +46,13 @@ public void addWidgets(CreateDisplay display, List { - addStochasticTooltip(display.getRecipe().getRollableResults() - .get(0), tooltip); - return tooltip; + display.getRecipe().getRollableResults().stream().limit(1).forEach(result -> { + Slot outputSlot = basicSlot(132, 38, origin) + .markOutput() + .entries(EntryIngredients.of(result.getStack())); + ingredients.add(outputSlot); + addStochasticTooltip(outputSlot, result); }); - ingredients.add(outputSlot); } @Override diff --git a/src/main/java/com/simibubi/create/compat/rei/category/PolishingCategory.java b/src/main/java/com/simibubi/create/compat/rei/category/PolishingCategory.java index 1177f740f7..59db505d09 100644 --- a/src/main/java/com/simibubi/create/compat/rei/category/PolishingCategory.java +++ b/src/main/java/com/simibubi/create/compat/rei/category/PolishingCategory.java @@ -12,6 +12,7 @@ import io.github.fabricators_of_create.porting_lib.util.NBTSerializer; import me.shedaniel.math.Point; +import me.shedaniel.rei.api.client.gui.widgets.Slot; import me.shedaniel.rei.api.client.gui.widgets.Widget; import me.shedaniel.rei.api.common.util.EntryIngredients; import net.minecraft.core.NonNullList; @@ -30,16 +31,16 @@ public PolishingCategory(Info info) { @Override public void addWidgets(CreateDisplay display, List ingredients, Point origin) { - List results = display.getRecipe().getRollableResults(); - ingredients.add(basicSlot(origin.x + 27, origin.y + 29) .markInput() .entries(display.getInputEntries().get(0))); - ingredients.add(basicSlot(origin.x + 132, origin.y + 29) - .markOutput() - .entries(EntryIngredients.of(results.get(0).getStack()))); - - addStochasticTooltip(ingredients, results); + display.getRecipe().getRollableResults().stream().limit(1).forEach(result -> { + Slot outputSlot = basicSlot(origin.x + 132, origin.y + 29) + .markOutput() + .entries(EntryIngredients.of(result.getStack())); + ingredients.add(outputSlot); + addStochasticTooltip(outputSlot, result); + }); } @Override