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

[1.7.10].setColorRGBA_I alpha setting not working.


Taji34
 Share

Recommended Posts

I'm trying to have an Item where part of it renders with transparency, but it continues to render opaque no matter what. This is the snippet of code I'm using to set the color:

if (i == 0)
			{
				tess.setColorOpaque_I(color[i]);
			}
			else
			{
				GL11.glEnable(GL11.GL_BLEND);
				GL11.glDepthMask(false);
				GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
				if (item.stackTagCompound != null)
				{
					double usesLeft = item.stackTagCompound.getInteger("Uses Left");
					double totalUses = item.stackTagCompound.getInteger("Total Uses");
					double percentageLeft = usesLeft/totalUses;
					int alphaLevel = (int) Math.round(255*percentageLeft);
					tess.setColorRGBA_I(color[i], alphaLevel);
				}
			}

Am I missing some OpenGL flags or is something not in the right order?

Link to comment
Share on other sites

Hi

 

The GL11 flags don't take effect until you render something.  The tessellator queues up a list of commands, but doesn't issue them to openGL until you do the draw.

 

So probably what is happening:

 

1) queue some drawing commands to tessellator

2) change your flags to transparent

3) queue some more drawing commands to tessellator

4) change your flags to opaque

5) queue some more drawing commands to tessellator

6) tessellator.draw

 

At the time of the draw (6), your opengl flags are in opaque mode.  So everything queued up in the tessellator is draw as opaque.

 

You need to either issue the draw command after (1), (3), and (5)  (which may not be possible depending on where your render code is), or alternatively draw using OpenGL directly instead of through the tessellator.

 

Alternatively, items can be rendered in passes, so you could render your transparent sections in pass 1 - look at ItemPotion for inspiration...requiresMultipleRenderPasses, hasEffect, getIconFromDamageForRenderPass

 

Your flags look good to me.

 

-TGG

Link to comment
Share on other sites

Well, I'm trying multiple renderPasses, here's my full code for rendering one side of the item:

tess.setNormal(0, 0, 1);
		for (int i = 0; i < iconParts; ++i)
		{
			tess.startDrawingQuads();
			if (i == 0)
			{
				tess.setColorOpaque_I(color[i]);
			}
			else
			{
				GL11.glEnable(GL11.GL_BLEND);
				GL11.glDepthMask(false);
				GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
				if (item.stackTagCompound != null)
				{
					double usesLeft = item.stackTagCompound.getInteger("Uses Left");
					double totalUses = item.stackTagCompound.getInteger("Total Uses");
					double percentageLeft = usesLeft/totalUses;
					int alphaLevel = (int) Math.round(255*percentageLeft);
					tess.setColorRGBA_I(color[i], alphaLevel);
				}
			}
			tess.addVertexWithUV(0, 0, 0, xMax[i], yMax[i]);
			tess.addVertexWithUV(1, 0, 0, xMin[i], yMax[i]);
			tess.addVertexWithUV(1, 1, 0, xMin[i], yMin[i]);
			tess.addVertexWithUV(0, 1, 0, xMax[i], yMin[i]);
			tess.draw();
		}

I don't think it's getting set back to opaque.....

Link to comment
Share on other sites

Hmm that's odd

 

Are you sure the "else" is every being called?

 

Try replacing your if (i==0) {} else {} with the snippet below and seeing if it renders partially opaque

 

GL11.glEnable(GL11.GL_BLEND);
GL11.glDepthMask(false);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
tess.setColorRGBA_I(color[i], 128);

 

-TGG

Link to comment
Share on other sites

Hi

 

I'm running out of ideas, sorry!  :(

What happens if you replace your source image with one that has a partial transparency (i.e. alpha channel of say 0.5)?

 

You could try this utility

https://github.com/TheGreyGhost/SpeedyTools/blob/master/src/main/java/speedytools/common/utilities/OpenGLdebugging.java

It will dump a copy of all the opengl rendering flags

 

--> place OpenGLdebugging.dumpAllIsEnabled() immediately before your tess.draw(), it make give a clue about which one should be enabled but isn't.

 

-TGG

Link to comment
Share on other sites

So, it wasn't working in first person because of something I forgot, but it is staying opaque in the inventory, which it shouldn't be, here is way your debugger prints out:

GL_VERTEX_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Vertex array enable)
GL_NORMAL_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Normal array enable)
GL_COLOR_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (RGBA color array enable)
GL_INDEX_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Color-index array enable)
GL_TEXTURE_COORD_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Texture coordinate array enable)
GL_EDGE_FLAG_ARRAY:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Edge flag array enable)
GL_NORMALIZE:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Current normal normalization on/off)
GL_FOG:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if fog enabled)
GL_LIGHTING:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if lighting is enabled)
GL_COLOR_MATERIAL:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if color tracking is enabled)
GL_LIGHT0:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 0 enabled)
GL_LIGHT1:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 1 enabled)
GL_LIGHT2:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 2 enabled)
GL_LIGHT3:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 3 enabled)
GL_LIGHT4:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 4 enabled)
GL_LIGHT5:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 5 enabled)
GL_LIGHT6:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 6 enabled)
GL_LIGHT7:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if light 7 enabled)
GL_POINT_SMOOTH:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Point antialiasing on)
GL_LINE_SMOOTH:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Line antialiasing on)
GL_LINE_STIPPLE:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Line stipple enable)
GL_CULL_FACE:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon culling enabled)
GL_POLYGON_SMOOTH:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon antialiasing on)
GL_POLYGON_OFFSET_POINT:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon offset enable for GL_POINT mode rasterization)
GL_POLYGON_OFFSET_LINE:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon offset enable for GL_LINE mode rasterization)
GL_POLYGON_OFFSET_FILL:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon offset enable for GL_FILL mode rasterization)
GL_POLYGON_STIPPLE:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Polygon stipple enable)
GL_TEXTURE_1D:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if 1-D texturing enabled )
GL_TEXTURE_2D:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if 2-D texturing enabled )
GL_TEXTURE_GEN_S:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Texgen enabled (x is S, T, R, or Q))
GL_TEXTURE_GEN_T:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Texgen enabled (x is S, T, R, or Q))
GL_TEXTURE_GEN_R:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Texgen enabled (x is S, T, R, or Q))
GL_TEXTURE_GEN_Q:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Texgen enabled (x is S, T, R, or Q))
GL_SCISSOR_TEST:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Scissoring enabled)
GL_ALPHA_TEST:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Alpha test enabled)
GL_STENCIL_TEST:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Stenciling enabled)
GL_DEPTH_TEST:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Depth buffer enabled)
GL_BLEND:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Blending enabled)
GL_DITHER:true[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Dithering enabled)
GL_INDEX_LOGIC_OP:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (Color index logical operation enabled)
GL_COLOR_LOGIC_OP:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (RGBA color logical operation enabled)
GL_AUTO_NORMAL:false[20:57:00] [Client thread/INFO] [sTDOUT]: [com.taji34.troncraft.OpenGLdebugging:dumpAllIsEnabled:294]:  (True if automatic normal generation enabled)

It stays opaque even with a texture that has an alpha channel of .5, any ideas?

 

 

Link to comment
Share on other sites

I forgot to tell it that it should use my renderer for first person rendering. And I don't think it's rendering multiple times. I'll take a look at that, but I've decided to not do the transparency, it doesn't look right at the moment and I have more important parts of my mod to work on. Thanks for all your help though!

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
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



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • report error: [16:09:34] [Server thread/WARN] [minecraft/EntityType]: Exception loading entity:  java.lang.NullPointerException: null     at net.minecraft.entity.ai.attributes.AttributeModifierManager.getAttributeValue(AttributeModifierManager.java:67) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.LivingEntity.getAttributeValue(LivingEntity.java:1849) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.LivingEntity.getMaxHealth(LivingEntity.java:1610) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.LivingEntity.<init>(LivingEntity.java:209) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.MobEntity.<init>(MobEntity.java:108) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.entity.CreatureEntity.<init>(CreatureEntity.java:13) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.AgeableEntity.<init>(AgeableEntity.java:21) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.passive.AnimalEntity.<init>(AnimalEntity.java:37) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.fsmc.classmates.animals.n7Yjy.<init>(n7Yjy.java:24) ~[main/:?] {re:classloading}     at net.minecraft.entity.EntityType.create(EntityType.java:448) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.EntityType.lambda$loadEntityUnchecked$1(EntityType.java:459) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at java.util.Optional.map(Optional.java:215) ~[?:1.8.0_281] {}     at net.minecraft.entity.EntityType.loadEntityUnchecked(EntityType.java:458) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.EntityType.loadEntity(EntityType.java:516) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.entity.EntityType.loadEntityAndExecute(EntityType.java:498) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.command.impl.SummonCommand.summonEntity(SummonCommand.java:50) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at net.minecraft.command.impl.SummonCommand.lambda$register$1(SummonCommand.java:34) ~[forge-1.16.5-36.2.20_mapped_snapshot_20210309-1.16.5-recomp.jar:?] {re:classloading}     at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) ~[brigadier-1.0.17.jar:?] {re:classloading}     at net.minecraft.command.Commands.handleCommand(Commands.java:222) ~[forge:?] {re:classloading}     at net.minecraft.network.play.ServerPlayNetHandler.handleSlashCommand(ServerPlayNetHandler.java:1162) ~[forge:?] {re:classloading}     at net.minecraft.network.play.ServerPlayNetHandler.func_244548_c(ServerPlayNetHandler.java:1142) ~[forge:?] {re:classloading}     at net.minecraft.network.play.ServerPlayNetHandler.processChatMessage(ServerPlayNetHandler.java:1121) ~[forge:?] {re:classloading}     at net.minecraft.network.play.client.CChatMessagePacket.processPacket(CChatMessagePacket.java:40) ~[forge:?] {re:classloading}     at net.minecraft.network.play.client.CChatMessagePacket.processPacket(CChatMessagePacket.java:8) ~[forge:?] {re:classloading}     at net.minecraft.network.PacketThreadUtil.lambda$checkThreadAndEnqueue$0(PacketThreadUtil.java:19) ~[forge:?] {re:classloading}     at net.minecraft.util.concurrent.TickDelayedTask.run(TickDelayedTask.java:20) ~[forge:?] {re:classloading}     at net.minecraft.util.concurrent.ThreadTaskExecutor.run(ThreadTaskExecutor.java:139) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.util.concurrent.RecursiveEventLoop.run(RecursiveEventLoop.java:22) ~[forge:?] {re:classloading}     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:759) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:159) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.util.concurrent.ThreadTaskExecutor.driveOne(ThreadTaskExecutor.java:109) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.driveOneInternal(MinecraftServer.java:742) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.driveOne(MinecraftServer.java:736) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.util.concurrent.ThreadTaskExecutor.driveUntil(ThreadTaskExecutor.java:122) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.runScheduledTasks(MinecraftServer.java:722) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:668) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:233) ~[forge:?] {re:classloading,pl:accesstransformer:B}     at java.lang.Thread.run(Thread.java:748) [?:1.8.0_281] {}
    • public class ManaOverlay extends Gui implements IIngameOverlay { private final Minecraft mc; private Font font = null; public int left_height = 39; public int right_height = 49; private RenderGameOverlayEvent eventParent; public static final ResourceLocation GUI_MANA_LOCATION = new ResourceLocation("textures/gui/icons.png"); private static final ManaOverlay INSTANCE = new ManaOverlay(Minecraft.getInstance()); public ManaOverlay(Minecraft p_93005_) { super(p_93005_); this.mc = Minecraft.getInstance(); this.font = mc.font; OverlayRegistry.registerOverlayTop("Mana ", (gui, mStack, partialTicks, screenWidth, screenHeight) -> { boolean isMounted = gui.minecraft.player.getVehicle() instanceof LivingEntity; if (!isMounted && !gui.minecraft.options.hideGui && gui.shouldDrawSurvivalElements()) { setupOverlayRenderState(true, false); renderMana(screenWidth, screenHeight, mStack); } }); } public void setupOverlayRenderState(boolean blend, boolean depthText) { setupOverlayRenderState(blend, depthText, GUI_MANA_LOCATION); } public void setupOverlayRenderState(boolean blend, boolean depthTest, @Nullable ResourceLocation texture) { if (blend) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); } else { RenderSystem.disableBlend(); } if (depthTest) { RenderSystem.enableDepthTest(); } else { RenderSystem.disableDepthTest(); } if (texture != null) { RenderSystem.enableTexture(); bind(texture); } else { RenderSystem.disableTexture(); } RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShader(GameRenderer::getPositionTexShader); } public static void init() { MinecraftForge.EVENT_BUS.register(INSTANCE); } public void renderMana(int width, int height, PoseStack mStack) { minecraft.getProfiler().push("mana"); Player player = (Player)this.minecraft.getCameraEntity(); RenderSystem.enableBlend(); int left = width / 2 + 91; int top = height - right_height ; boolean unused = false;// Unused flag in vanilla, seems to be part of a 'fade out' mechanic FoodData stats = minecraft.player.getFoodData(); int level = stats.getFoodLevel(); for (int i = 0; i < 10; ++i) { int idx = i * 2 + 1; int x = left - i * 8 - 9; int y = top; int icon = 16; byte background = 0; if (minecraft.player.hasEffect(MobEffects.HUNGER)) { icon += 36; background = 13; } if (unused) background = 1; //Probably should be a += 1 but vanilla never uses this if (player.getFoodData().getSaturationLevel() <= 0.0F && tickCount % (level * 3 + 1) == 0) { y = top + (random.nextInt(3) - 1); } blit(mStack, x, y, 16 + background * 9, 27, 9, 9); if (idx < level) blit(mStack, x, y, icon + 36, 27, 9, 9); else if (idx == level) blit(mStack, x, y, icon + 45, 27, 9, 9); } RenderSystem.disableBlend(); minecraft.getProfiler().pop(); } @Override public void render(ForgeIngameGui gui, PoseStack pStack, float partialTicks, int width, int height) { this.screenWidth = this.minecraft.getWindow().getGuiScaledWidth(); this.screenHeight = this.minecraft.getWindow().getGuiScaledHeight(); eventParent = new RenderGameOverlayEvent(pStack, partialTicks, this.minecraft.getWindow()); if (pre(ALL, pStack)) return; font = minecraft.font; this.random.setSeed(tickCount * 312871L); OverlayRegistry.orderedEntries().forEach(entry -> { try { if (!entry.isEnabled()) return; IIngameOverlay overlay = entry.getOverlay(); if (pre(overlay, pStack)) return; //overlay.render(this, pStack, partialTicks, screenWidth, screenHeight); post(overlay, pStack); } catch(Exception e) { } }); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); post(ALL, pStack); } private boolean pre(RenderGameOverlayEvent.ElementType type, PoseStack mStack) { return MinecraftForge.EVENT_BUS.post(new RenderGameOverlayEvent.Pre(mStack, eventParent, type)); } private void post(RenderGameOverlayEvent.ElementType type, PoseStack mStack) { MinecraftForge.EVENT_BUS.post(new RenderGameOverlayEvent.Post(mStack, eventParent, type)); } private boolean pre(IIngameOverlay overlay, PoseStack mStack) { return MinecraftForge.EVENT_BUS.post(new RenderGameOverlayEvent.PreLayer(mStack, eventParent, overlay)); } private void post(IIngameOverlay overlay, PoseStack mStack) { MinecraftForge.EVENT_BUS.post(new RenderGameOverlayEvent.PostLayer(mStack, eventParent, overlay)); } private void bind(ResourceLocation res) { RenderSystem.setShaderTexture(0, res); } } Thanks to you, I was able to display it. However, the bar that uses the full stomach ground keeps shaking. I wonder why that is? Then I feel like it's getting heavier ...
    • It's the "Width on the screen" and "Height on the screen", so in this case the screen width and height.
    • I was able to post the 4 others, so they are on there now.
    • Could be "write", check vanilla for examples, or provide details of which version you're currently on.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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