Jump to content

Fluid color rendering


SirBlobman

Recommended Posts

I have successfully create a new Fluid and registered its Block

I am wondering if there is a way to get the Fluid to render purple when you swim in it

As of right now, it just renders the same as lava.

Do I have to use ASM or is there a better way

Using Forge 1.10.2 12.18.1.2044

I have searched Google and this forum, but I couldn't find anything

Link to comment
Share on other sites

Well there is a Class called BlockFluidRenderer, I assume that might be worthwhile to look at.

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.

Link to comment
Share on other sites

Actually now that I fully understand your question, you wanted the screen color to change when the players face is in your liquid.... you want to subscribe to this event

EntityViewRenderEvent.FogColors

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.

Link to comment
Share on other sites

I use this code and registered the Event but the fog is always white!

public class SwimFog 
{
@SubscribeEvent
public void playerSwim(FogColors e)
{
	Entity ent = e.getEntity();
	World w = ent.getEntityWorld();
	BlockPos pos = ent.getPosition();
	IBlockState bs = w.getBlockState(pos);
	Block b = bs.getBlock();
	if(b.equals(GFluids.amethyst.getBlock()))
	{
		int red = 80, green = 13, blue = 147;
		e.setRed(red); e.setGreen(green); e.setBlue(blue);
	}
}

@SubscribeEvent
public void playerSwim(FogDensity e)
{
	e.setCanceled(true);
	Entity ent = e.getEntity();
	World w = ent.getEntityWorld();
	BlockPos pos = ent.getPosition();
	IBlockState bs = w.getBlockState(pos);
	Block b = bs.getBlock();
	if(b.equals(GFluids.amethyst.getBlock()))
	{
		float alpha = 234.0F; e.setDensity(alpha/100.0F);
	}
}
}

Link to comment
Share on other sites

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.