diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-04-18 22:00:45 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-04-18 22:00:45 +0800 |
| commit | a9a476f81d1547d8a14aa2e566487fcaead0954a (patch) | |
| tree | ceb7a80517e35e513c88634a6a305f16cd13510b /src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | |
| parent | c684a013be87b57ab7d690b4b33e0454a6379b92 (diff) | |
| download | RoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.tar.gz RoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.tar.bz2 RoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.zip | |
Wrap around plz (2.7.9.94)
Fix #66
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 5e9a6c54d..9ca770d5c 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -337,48 +337,49 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra toggleButtonWidget.lateRender(mouseX, mouseY, delta); Screen currentScreen = MinecraftClient.getInstance().currentScreen; if (!(currentScreen instanceof RecipeViewingScreen) || !((RecipeViewingScreen) currentScreen).choosePageActivated) - QUEUED_TOOLTIPS.stream().filter(Objects::nonNull).forEach(queuedTooltip -> renderTooltip(queuedTooltip.getText(), queuedTooltip.getX(), queuedTooltip.getY())); + QUEUED_TOOLTIPS.stream().filter(Objects::nonNull).forEach(this::renderTooltip); QUEUED_TOOLTIPS.clear(); } - public void renderTooltip(List<String> list_1, int int_1, int int_2) { + public void renderTooltip(QueuedTooltip tooltip) { + renderTooltip(tooltip.getText(), tooltip.getX(), tooltip.getY()); + } + + public void renderTooltip(List<String> lines, int mouseX, int mouseY) { TextRenderer font = MinecraftClient.getInstance().textRenderer; - if (!list_1.isEmpty()) { + if (!lines.isEmpty()) { GlStateManager.disableRescaleNormal(); GuiLighting.disable(); GlStateManager.disableLighting(); - int int_3 = 0; - for(String string_1 : list_1) - if (font.getStringWidth(string_1) > int_3) - int_3 = font.getStringWidth(string_1); - int int_5 = int_1 + 12; - int int_6 = int_2 - 12; - int int_8 = 8; - if (list_1.size() > 1) - int_8 += 2 + (list_1.size() - 1) * 10; - if (int_5 + int_3 > window.getScaledWidth()) - int_5 -= 28 + int_3; - if (int_6 + int_8 + 6 > window.getScaledHeight()) - int_6 = window.getScaledHeight() - int_8 - 6; + int width = 0; + for(String line : lines) + if (font.getStringWidth(line) > width) + width = font.getStringWidth(line); + int height = lines.size() <= 1 ? 8 : lines.size() * 10; + int x = Math.max(mouseX + 12, 6); + int y = Math.min(mouseY - 12, window.getScaledHeight() - height - 6); + if (x + width > window.getScaledWidth()) + x -= 24 + width; + if (y < 6) + y += 24; this.blitOffset = 1000; - this.fillGradient(int_5 - 3, int_6 - 4, int_5 + int_3 + 3, int_6 - 3, -267386864, -267386864); - this.fillGradient(int_5 - 3, int_6 + int_8 + 3, int_5 + int_3 + 3, int_6 + int_8 + 4, -267386864, -267386864); - this.fillGradient(int_5 - 3, int_6 - 3, int_5 + int_3 + 3, int_6 + int_8 + 3, -267386864, -267386864); - this.fillGradient(int_5 - 4, int_6 - 3, int_5 - 3, int_6 + int_8 + 3, -267386864, -267386864); - this.fillGradient(int_5 + int_3 + 3, int_6 - 3, int_5 + int_3 + 4, int_6 + int_8 + 3, -267386864, -267386864); - this.fillGradient(int_5 - 3, int_6 - 3 + 1, int_5 - 3 + 1, int_6 + int_8 + 3 - 1, 1347420415, 1344798847); - this.fillGradient(int_5 + int_3 + 2, int_6 - 3 + 1, int_5 + int_3 + 3, int_6 + int_8 + 3 - 1, 1347420415, 1344798847); - this.fillGradient(int_5 - 3, int_6 - 3, int_5 + int_3 + 3, int_6 - 3 + 1, 1347420415, 1347420415); - this.fillGradient(int_5 - 3, int_6 + int_8 + 2, int_5 + int_3 + 3, int_6 + int_8 + 3, 1344798847, 1344798847); + this.fillGradient(x - 3, y - 4, x + width + 3, y - 3, -267386864, -267386864); + this.fillGradient(x - 3, y + height + 3, x + width + 3, y + height + 4, -267386864, -267386864); + this.fillGradient(x - 3, y - 3, x + width + 3, y + height + 3, -267386864, -267386864); + this.fillGradient(x - 4, y - 3, x - 3, y + height + 3, -267386864, -267386864); + this.fillGradient(x + width + 3, y - 3, x + width + 4, y + height + 3, -267386864, -267386864); + this.fillGradient(x - 3, y - 3 + 1, x - 3 + 1, y + height + 3 - 1, 1347420415, 1344798847); + this.fillGradient(x + width + 2, y - 3 + 1, x + width + 3, y + height + 3 - 1, 1347420415, 1344798847); + this.fillGradient(x - 3, y - 3, x + width + 3, y - 3 + 1, 1347420415, 1347420415); + this.fillGradient(x - 3, y + height + 2, x + width + 3, y + height + 3, 1344798847, 1344798847); - for(int int_12 = 0; int_12 < list_1.size(); ++int_12) { + int currentY = y; + for(int lineIndex = 0; lineIndex < lines.size(); lineIndex++) { GlStateManager.disableDepthTest(); - font.drawWithShadow(list_1.get(int_12), (float) int_5, (float) int_6, -1); + font.drawWithShadow(lines.get(lineIndex), x, currentY, -1); GlStateManager.enableDepthTest(); - if (int_12 == 0) - int_6 += 2; - int_6 += 10; + currentY += lineIndex == 0 ? 12 : 10; } this.blitOffset = 0; GlStateManager.enableLighting(); @@ -420,9 +421,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra } private int getTotalPage() { - if (itemListOverlay.getTotalSlotsPerPage() > 0) - return MathHelper.ceil(itemListOverlay.getCurrentDisplayed().size() / itemListOverlay.getTotalSlotsPerPage()); - return 0; + return itemListOverlay.getTotalPage(); } @Override |
