diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-12-02 02:56:34 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-12-02 02:56:34 +0800 |
| commit | 05d46c3a0c2494177d2225c42f5586439109cf8c (patch) | |
| tree | 57720cc04038f9df6eb950e80a908b8c6b8d7bfe /forge/src/main/java | |
| parent | f0a20163b47f5ce9e85e5a8d800c9677b053319e (diff) | |
| download | RoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.tar.gz RoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.tar.bz2 RoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.zip | |
Forge 1.18
Diffstat (limited to 'forge/src/main/java')
3 files changed, 18 insertions, 13 deletions
diff --git a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java index e2b13d7bc..91ee343c7 100644 --- a/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java +++ b/forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java @@ -26,10 +26,10 @@ package me.shedaniel.rei.forge; import com.google.common.collect.Lists; import me.shedaniel.rei.RoughlyEnoughItemsInitializer; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.data.loading.DatagenModLoader; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fmllegacy.DatagenModLoader; import net.minecraftforge.forgespi.language.IModInfo; import net.minecraftforge.forgespi.language.ModFileScanData; import org.apache.commons.lang3.tuple.ImmutableTriple; diff --git a/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java b/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java index 0af11b1c0..55c23646e 100644 --- a/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java @@ -24,7 +24,7 @@ package me.shedaniel.rei.impl.client.forge; import net.minecraft.client.gui.screens.Screen; -import net.minecraftforge.client.event.GuiOpenEvent; +import net.minecraftforge.client.event.ScreenOpenEvent; import net.minecraftforge.common.MinecraftForge; import java.util.ArrayList; @@ -42,11 +42,11 @@ public class ErrorDisplayerImpl { CONSUMERS.add(consumer); } - public static void onGuiOpen(GuiOpenEvent event) { + public static void onGuiOpen(ScreenOpenEvent event) { for (UnaryOperator<Screen> consumer : CONSUMERS) { - Screen screen = consumer.apply(event.getGui()); + Screen screen = consumer.apply(event.getScreen()); if (screen != null) { - event.setGui(screen); + event.setScreen(screen); } } } diff --git a/forge/src/main/java/me/shedaniel/rei/impl/client/gui/forge/ScreenOverlayImplImpl.java b/forge/src/main/java/me/shedaniel/rei/impl/client/gui/forge/ScreenOverlayImplImpl.java index 90b0e8857..e0f0d3898 100644 --- a/forge/src/main/java/me/shedaniel/rei/impl/client/gui/forge/ScreenOverlayImplImpl.java +++ b/forge/src/main/java/me/shedaniel/rei/impl/client/gui/forge/ScreenOverlayImplImpl.java @@ -27,12 +27,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.CollectionUtils; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.Style; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.fmlclient.gui.GuiUtils; +import net.minecraftforge.client.ForgeHooksClient; import java.util.List; @@ -42,10 +41,16 @@ public class ScreenOverlayImplImpl { matrices.translate(0, 0, 500); EntryStack<?> stack = tooltip.getContextStack(); ItemStack itemStack = stack.getValue() instanceof ItemStack ? stack.castValue() : ItemStack.EMPTY; - GuiUtils.preItemToolTip(itemStack); - List<FormattedText> texts = CollectionUtils.flatMap(tooltip.getText(), component -> Minecraft.getInstance().font.getSplitter().splitLines(component, 100000, Style.EMPTY)); - GuiUtils.drawHoveringText(matrices, texts, mouseX, mouseY, screen.width, screen.height, screen.width, Minecraft.getInstance().font); - GuiUtils.postItemToolTip(); + List<Component> texts = CollectionUtils.filterAndMap(tooltip.entries(), Tooltip.Entry::isText, Tooltip.Entry::getAsText); + List<ClientTooltipComponent> components = ForgeHooksClient.gatherTooltipComponents(itemStack, texts, mouseX, screen.width, screen.height, null, screen.getMinecraft().font); + for (Tooltip.Entry entry : tooltip.entries()) { + if (!entry.isText()) { + components.add(1, entry.getAsComponent()); + } + } + screen.tooltipStack = itemStack; + screen.renderTooltipInternal(matrices, components, mouseX, mouseY); + screen.tooltipStack = ItemStack.EMPTY; matrices.popPose(); } } |
