aboutsummaryrefslogtreecommitdiff
path: root/forge/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-12-02 02:56:34 +0800
committershedaniel <daniel@shedaniel.me>2021-12-02 02:56:34 +0800
commit05d46c3a0c2494177d2225c42f5586439109cf8c (patch)
tree57720cc04038f9df6eb950e80a908b8c6b8d7bfe /forge/src/main/java
parentf0a20163b47f5ce9e85e5a8d800c9677b053319e (diff)
downloadRoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.tar.gz
RoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.tar.bz2
RoughlyEnoughItems-05d46c3a0c2494177d2225c42f5586439109cf8c.zip
Forge 1.18
Diffstat (limited to 'forge/src/main/java')
-rw-r--r--forge/src/main/java/me/shedaniel/rei/forge/RoughlyEnoughItemsForge.java2
-rw-r--r--forge/src/main/java/me/shedaniel/rei/impl/client/forge/ErrorDisplayerImpl.java8
-rw-r--r--forge/src/main/java/me/shedaniel/rei/impl/client/gui/forge/ScreenOverlayImplImpl.java21
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();
}
}