Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Solved] [1.17.1] Rendering: GUI Elements and Fog


Rohzek
 Share

Recommended Posts

I have two semi-related problems, both involving rendering.

For the first situation I want to hide the air bubbles/breath bar when a particular piece of armor is worn. Previously I used 

RenderGameOverlayEvent.Pre event

and canceled the event if the element type was 

ElementType.AIR

which no longer exists in 1.17 it seems, and now I'm not sure how to recreate this functionality with the new system.

For the second, I want to disable the under-lava-view fog when a particular piece of armor is worn. Previously I used 

EntityViewRenderEvent.FogDensity event

and

RenderSystem.fogStart(0.0F);
RenderSystem.fogEnd(1024F);
event.setDensity(0.05F);
event.setCanceled(true);

to achieve the desired result.

To be honest with you I don't remember how I came up with that solution anymore, only that fogStart and fogEnd became deprecated at some point before 1.16.5 (as I found out when finally updating my mod yesterday), and are completely removed now. For 1.17 I tried replacing those with 

RenderSystem.setShaderFogStart(0.0F);
RenderSystem.setShaderFogEnd(1024F);

which has no effect, unless I'm missing something else for that to work. Not sure how to get the same effect here.

Edited by Rohzek

Developing the Spiral Power Mod .

こんにちは!お元気ですか?

Link to comment
Share on other sites

7 hours ago, Rohzek said:

and now I'm not sure how to recreate this functionality with the new system.

RenderGameOverlayEvent.PreLayer will fire for all overlay elements. You can check if it is the air level by comparing the overlay element to ForgeIngameGui.AIR_LEVEL_ELEMENT.

7 hours ago, Rohzek said:

For the second, I want to disable the under-lava-view fog when a particular piece of armor is worn.

You can either use EntityViewRenderEvent.FogDensity, which will set setShaderFogStart and setShaderFogEnd for you based on the density you set on the event (provided you cancelled the event) or you can use EntityViewRenderEvent.RenderFogEvent (only called if FogDensity is not cancelled) and do your own fog settings there (by manually setting setShaderFogStart and setShaderFogEnd for example). You can see where this happens in FogRenderer#setupFog.

  • Like 1
Link to comment
Share on other sites

  • Rohzek changed the title to [Solved] [1.17.1] Rendering: GUI Elements and Fog
  • 1 month later...

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.