aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/plugin
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-06-20 23:20:05 +0800
committershedaniel <daniel@shedaniel.me>2021-06-20 23:20:05 +0800
commit2cc2cfa70062efac58335d62ad8e47105c15fdd7 (patch)
treeb60bbd87e913080c95f82a0b2d38a8da2a89c332 /runtime/src/main/java/me/shedaniel/rei/plugin
parent06c695df2c1ae92ddd71dfa23491d7554387156c (diff)
downloadRoughlyEnoughItems-2cc2cfa70062efac58335d62ad8e47105c15fdd7.tar.gz
RoughlyEnoughItems-2cc2cfa70062efac58335d62ad8e47105c15fdd7.tar.bz2
RoughlyEnoughItems-2cc2cfa70062efac58335d62ad8e47105c15fdd7.zip
Properly implement tooltip rendering for bundles
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/plugin')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
index ba5e0c08f..95dc8b3e4 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
@@ -51,6 +51,7 @@ import net.fabricmc.api.Environment;
import net.minecraft.CrashReport;
import net.minecraft.CrashReportCategory;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.texture.OverlayTexture;
@@ -63,6 +64,7 @@ import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagCollection;
import net.minecraft.tags.TagContainer;
+import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
@@ -71,6 +73,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySerializer<ItemStack> {
@Environment(EnvType.CLIENT)
@@ -326,7 +329,17 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer
public Tooltip getTooltip(EntryStack<ItemStack> entry, Point mouse) {
if (entry.isEmpty())
return null;
- return Tooltip.create(tryGetItemStackToolTip(entry, entry.getValue(), true));
+ Tooltip tooltip = Tooltip.create();
+ Optional<TooltipComponent> component = entry.getValue().getTooltipImage();
+ List<Component> components = tryGetItemStackToolTip(entry, entry.getValue(), true);
+ if (!components.isEmpty()) {
+ tooltip.add(components.get(0));
+ }
+ component.ifPresent(tooltipComponent -> tooltip.add(ClientTooltipComponent.create(tooltipComponent)));
+ for (int i = 1; i < components.size(); i++) {
+ tooltip.add(components.get(i));
+ }
+ return tooltip;
}
}
}