Skip to main content

Render the UI

Now you have a UI, time to render it onto the screen to see it. Currently, you have 2 options when it comes to rendering a Tau UI.

Option One: ScreenUIRenderer

The ScreenUIRenderer will render the UI onto the screen as a Minecraft Screen. The second parameter determines whether or not it should render a translucent gray background that all minecraft screens have. This screen will pause the game when you open the screen.

You can open the screen with

Minecraft.getInstance().setScreen(new ScreenUIRenderer(new ExampleUI(), true));

ScreenUIRenderer just extends the Minecraft Screen class. You can extend ScreenUIRenderer and override shouldPauseGame or anything else you want to change if you'd like.

Option Two: HudUIRenderer

The HudUIRenderer have a render method that takes in a MainWindow, MatrixStack and partialTicks. This will directly render the UI onto the screen. Here is an example of how you would do it.

@SubscribeEvent
public static void onRenderOverlay(RenderGameOverlayEvent.Post e) {
if (e.getType() == RenderGameOverlayEvent.ElementType.HOTBAR) {
new HudUIRenderer(new ExampleUI()).render(e.getWindow(), e.getMatrixStack(), e.getPartialTicks());
}
}

You can create the instance of HudUIRenderer and store it instead of creating it every time it's rendered. But that is not the focus of this documentation.