Posted April 19, 20205 yr Hi, I made a custom poison effect and I was wondering if there was a way to change the color of the players heart display. The vanilla poision has exactly this effect, but it is built into the renderPlayerStats method in IngameGui. Is there a way to make the hearts a different color without having to make a core mod and overwriting the IngameGui class? I was thinking about just drawing something over the vanilla hearts... But I dont know ehere to even start something like that...
April 19, 20205 yr 1 minute ago, xX_deadbush_Xx said: I was thinking about just drawing something over the vanilla hearts... But I dont know ehere to even start something like that... Use the RenderGameOverlayEvent.Post to draw on top of the screen. And RenderGameOverlayEvent.Pre to cancel specific parts of the HUD. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
April 19, 20205 yr Author Okay so if I want to draw over the players health bar do I need to do something like this? @SubscribeEvent public static void drawOverHealthBar(RenderGameOverlayEvent.Pre evt) { if(evt.getType().equals(ElementType.HEALTH)) { evt.setCanceled(true); //draw over player screen } }
April 19, 20205 yr 6 minutes ago, xX_deadbush_Xx said: Okay so if I want to draw over the players health bar do I need to do something like this? Looks about right. However you don't need to use Object::equals to compare enums just use ==. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.