ImmediatelyFast icon indicating copy to clipboard operation
ImmediatelyFast copied to clipboard

The 1.20.1 experience bar will obscure the experience level.

Open Tki-sor opened this issue 2 years ago • 2 comments

This is an issue that occurs when installed alongside the 'ModernUI Mod.' Setting 'hud_batching' to false doesn't cause any issues. image

Tki-sor avatar Oct 19 '23 02:10 Tki-sor

Regarding Modern UI, its description lists incompatibility with ImmediatelyFast:

Conflict: ImmediatelyFast (ver 1.18 ~ 1.20; solution: disable ImmediatelyFast's hud_batching, font_atlas_resizing and fast_text_lookup)

Also there is a closed issue https://github.com/BloCamLimb/ModernUI/issues/173 with suggestion

Disable ImmediatelyFast's hud_batching and font_atlas_resizing

I also confirm the bug with my Simple World Timer mod. Using MultiMC with:

  • LWJGL 3.3.1
  • Minecraft 1.20.1
  • Forge 47.2.0

with only mods:

  • simpleworldtimer-1.20.1-1.1.2-beta.jar
  • ImmediatelyFast-1.2.6+1.20.2.jar

image

You can enable/disable SWT by pressing Shift+H, or setting Enable checkbox in the SWT-options screen accessed by pressing H by default.

In a simplified representation, the code looks like this: there is RenderGuiOverlayEvent handler https://github.com/FoxAhead/Simple-World-Timer/blob/2b05fb6f3bc411098896410d70b670803c3c8501/SimpleWorldTimer%201.20.1/src/main/java/foxahead/simpleworldtimer/client/handlers/OverlayHandlerSWT.java#L10C10-L28

  public void renderGameOverlay(RenderGuiOverlayEvent event) {
    /*if (event.getType() != RenderGuiOverlayEvent.ElementType.ALL) {
      return;
    }*/
    if (!minecraft.options.hideGui && !minecraft.options.renderDebug) {
      GuiGraphics guiGraphics = event.getGuiGraphics();
      guiGraphics.pose().pushPose();
      Window window = event.getWindow();
      timer.drawTick(window, guiGraphics);
      guiGraphics.pose().popPose();
    }
  }

which calls drawTick method. Inside drawTick the only lines responsible for rendering and which are enabled/disabled by Enable mod option, are: https://github.com/FoxAhead/Simple-World-Timer/blob/2b05fb6f3bc411098896410d70b670803c3c8501/SimpleWorldTimer%201.20.1/src/main/java/foxahead/simpleworldtimer/Timer.java#L116 guiGraphics.drawString(mc.font, Component.literal(outText1), x, y, color); https://github.com/FoxAhead/Simple-World-Timer/blob/2b05fb6f3bc411098896410d70b670803c3c8501/SimpleWorldTimer%201.20.1/src/main/java/foxahead/simpleworldtimer/Timer.java#L123 guiGraphics.drawString(mc.font, Component.literal(outText2), x, y, color); This looks so simple that I can't think of where there could be a mistake on my part. So the question is: Is it me somehow incorrectly output text on the HUD or ImmediatelyFast optimizes the output so much that it interferes with the order of rendering elements?

FoxAhead avatar Oct 25 '23 08:10 FoxAhead

Thanks for the detailed report

RaphiMC avatar Oct 25 '23 08:10 RaphiMC