diff --git a/CHANGELOG.md b/CHANGELOG.md index c6a80b928..782f02396 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Fixed crash when opening Controller GUI (Darkere) - Fixed dye being consumed without effect in some cases (Darkere) - Fixed deadlock caused by Portable Grid (Darkere) +- Fixed custom tooltips not working in the Grid (Darkere) ### 1.9.6 - Port to Minecraft 1.16.3 (raoulvdberge) diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java index 720d95ff7..166bf539f 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/GridScreen.java @@ -410,7 +410,7 @@ public class GridScreen extends BaseScreen implements IScreenInfo } private void drawGridTooltip(MatrixStack matrixStack, IGridStack gridStack, int mouseX, int mouseY) { - List textLines = gridStack.getTooltip(); + List textLines = gridStack.getTooltip(true); List smallTextLines = Lists.newArrayList(); if (!gridStack.isCraftable()) { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java index 20a20d7a3..4f042a9a5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/filtering/TooltipGridFilter.java @@ -15,7 +15,7 @@ public class TooltipGridFilter implements Predicate { @Override public boolean test(IGridStack stack) { - List tooltip = stack.getTooltip(); + List tooltip = stack.getTooltip(false); for (int i = 1; i < tooltip.size(); ++i) { if (tooltip.get(i).getString().toLowerCase().contains(this.tooltip.toLowerCase())) { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java index 0ae76f65e..deb2b8857 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/FluidGridStack.java @@ -130,14 +130,21 @@ public class FluidGridStack implements IGridStack { } @Override - public List getTooltip() { - if (cachedTooltip == null) { + public List getTooltip(boolean bypassCache) { + if (bypassCache || cachedTooltip == null) { + List tooltip; try { - cachedTooltip = Arrays.asList(stack.getDisplayName()); + tooltip = Arrays.asList(stack.getDisplayName()); } catch (Throwable t) { logger.warn("Could not retrieve fluid tooltip of " + stack.getFluid().getRegistryName().toString(), t); - cachedTooltip = Arrays.asList(new StringTextComponent("")); + tooltip = Arrays.asList(new StringTextComponent("")); + } + + if (bypassCache) { + return tooltip; + } else { + cachedTooltip = tooltip; } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java index a993ea28d..aece67380 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/IGridStack.java @@ -26,7 +26,7 @@ public interface IGridStack { Set getTags(); - List getTooltip(); + List getTooltip(boolean bypassCache); int getQuantity(); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java index e72bb30ee..a6c69b4dd 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/stack/ItemGridStack.java @@ -141,15 +141,22 @@ public class ItemGridStack implements IGridStack { } @Override - public List getTooltip() { - if (cachedTooltip == null) { + public List getTooltip(boolean bypassCache) { + if (bypassCache || cachedTooltip == null) { + List tooltip; try { - cachedTooltip = RenderUtils.getTooltipFromItem(stack); + tooltip = RenderUtils.getTooltipFromItem(stack); } catch (Throwable t) { logger.warn("Could not retrieve item tooltip of " + stack.getItem().toString(), t); - cachedTooltip = new ArrayList<>(); - cachedTooltip.add(new StringTextComponent("")); + tooltip = new ArrayList<>(); + tooltip.add(new StringTextComponent("")); + } + + if (bypassCache) { + return tooltip; + } else { + cachedTooltip = tooltip; } }