Jump to content

[1.12.2] Help With Gui Elements Overlaying Each Other


4sterism

Recommended Posts

Alright, I hope someone will help me this time. Im baffled by this problem. I'm modifying a source for private use and managed to add an event suscriber so that when the Baubles gui is opened, stats will be displayed. The stats are updated when the equipment changes too. I thought it worked fine and was about to add more stats...until I noticed that tooltips are drawn under the strings. 

 

I did my research and they basically said to override the drawscreen method and add in a drawtooltip method to draw AFTER, so that it will be on top. Except...the source im using doesn't make their own custom tooltips. They hijack an event onTooltip and draw their tooltip there which makes this method not feasible to me at least.

 

Another solution is to somehow render the gui I made so that it appears under everything. What do you think I should do? And HOW should I do it?

 

2019-07-15_18_37_18.thumb.png.392cc90c5c58722b284b64077a857d7b.png2019-07-15_18_37_26.thumb.png.ba7b757bb1834c4abf825dddfaabcf85.png

Edited by 4sterism
title
Link to comment
Share on other sites

You need to render your stats with a lower z-index. This can be achieved with GLStateManager.pushMatrix(), GLStateManager.scale(0, 0, -zOffset) and GLStateManager.popMatrix(). Play around in debug mode to find the right value for zOffset.

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

2 questions:

1. Debug mode? You mean I can edit them in real time without rebuilding and rerunning? HOW? lol

2. I dont know how to do that - here is my code attached. Where would these methods go.

 

I have no experience making guis. I literally jsut drew strings at the correct coordinates and then every draw I would just increment the z coordinate by 10.

1 hour ago, Cadiboo said:

You need to render your stats with a lower z-index. This can be achieved with GLStateManager.pushMatrix(), GLStateManager.scale(0, 0, -zOffset) and GLStateManager.popMatrix(). Play around in debug mode to find the right value for zOffset.

 

StatsScreen.java

Edited by 4sterism
Link to comment
Share on other sites

I have no idea how to use it:

GlStateManager.pushMatrix();
stat = "Lv " + data.getLevel() + " (" + (data.GetExpRequiredForLevelUp() - data.getExp())+ "xp left)";
mc.fontRenderer.drawStringWithShadow(stat, right, j, 32896);

stat = GetStatString(unit.healthData(),data) + " (" + GetStatString(unit.MyStats.get(HealthRegen.GUID), data).substring(13) + "/s)";
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = GetStatString(unit.energyData(), data) + " (" + GetStatString(unit.MyStats.get(EnergyRegen.GUID), data).substring(13) + "/s)";
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = GetStatString(unit.manaData(), data) + " (" + GetStatString(unit.MyStats.get(ManaRegen.GUID), data).substring(11) + "/s)";
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
mc.fontRenderer.drawStringWithShadow(" ", right, down, -1);
down += 10;

stat = "Resistances";
mc.fontRenderer.drawStringWithShadow(stat, right, down, 32896);
down += 10;
stat = "Physical " + GetStatString(unit.MyStats.get(Armor.GUID), data).substring(6);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = "Fire " + GetStatString(unit.MyStats.get(FireResist.GUID), data).substring(12);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = "Thunder " + GetStatString(unit.MyStats.get(ThunderResist.GUID), data).substring(15);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = "Water " + GetStatString(unit.MyStats.get(WaterResist.GUID), data).substring(13);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = "Nature " + GetStatString(unit.MyStats.get(NatureResist.GUID), data).substring(14);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = GetStatString(unit.MyStats.get(Dodge.GUID), data);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
mc.fontRenderer.drawStringWithShadow(" ", right, down, -1);
down += 10;

stat = "Melee";
mc.fontRenderer.drawStringWithShadow(stat, right, down, 32896);
down += 10;
stat = "Dmg " + GetStatString(unit.MyStats.get(PhysicalDamage.GUID), data).substring(16);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = "Crit " + GetStatString(unit.MyStats.get(CriticalHit.GUID), data).substring(13) + " (Dmg +" + GetStatString(unit.MyStats.get(CriticalDamage.GUID), data).substring(16) + ")";
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = GetStatString(unit.MyStats.get(Lifesteal.GUID), data);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;
stat = GetStatString(unit.MyStats.get(ManaOnHit.GUID), data);
mc.fontRenderer.drawStringWithShadow(stat, right, down, -1);
down += 10;

GlStateManager.scale(0,0,-100);
GlStateManager.popMatrix();
Link to comment
Share on other sites

6 hours ago, 4sterism said:

Again fixed by self, and it definitely does not involve the glstatemanager and only requires changing one thing...

Noice
I just started to Forge API. But I was gonna say, put the information tab left side.

Link to comment
Share on other sites

  • 6 months later...
Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I had a similar issue to what you do above. Given this is an old post, you've probably sorted this now In my case, I had Java (JDK) 22 installed. After uninstalling that and installing 17.0.11 (having both installed gives the same error), then running the startserver.bat worked for me. I managed to get to the EULA section and then start my server correctly- I hope it helps anyone else who may have this issue!
    • Make a test with another Launcher like MultiMC, AT Launcher or Technic Launcher
    • I opened up Minecraft today for the first time in a month and whenever I try and play forge I get an error 1 message. I restarted my computer, tried reinstalling both Minecraft and Forge and have updated all of my drivers. Nothing seems to work so I'm stumped. I have absolutely no mods installed ATM so I have no idea what could be causing the problem. I hope yall are able to help.   DebugLog:   [19May2024 20:33:51.600] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, dmoy18, --version, 1.20.1-forge-47.2.0, --gameDir, C:\Users\dmoyf\AppData\Roaming\.minecraft, --assetsDir, C:\Users\dmoyf\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, c083972cd92d4dd2894beb25b82ebe82, --accessToken, ????????, --clientId, MDljMzIwMjYtOTJiNS00YWUxLTk1M2EtN2ExMGExZWM0MDAw, --xuid, 2535417310772497, --userType, msa, --versionType, release, --quickPlayPath, C:\Users\dmoyf\AppData\Roaming\.minecraft\quickPlay\java\1716168829421.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [19May2024 20:33:51.604] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Microsoft; OS Windows 11 arch amd64 version 10.0 [19May2024 20:33:51.634] [main/DEBUG] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Found launch services [fmlclientdev,forgeclient,minecraft,forgegametestserverdev,fmlserveruserdev,fmlclient,fmldatauserdev,forgeserverdev,forgeserveruserdev,forgeclientdev,forgeclientuserdev,forgeserver,forgedatadev,fmlserver,fmlclientuserdev,fmlserverdev,forgedatauserdev,testharness,forgegametestserveruserdev] [19May2024 20:33:51.653] [main/DEBUG] [cpw.mods.modlauncher.NameMappingServiceHandler/MODLAUNCHER]: Found naming services : [srgtomcp] [19May2024 20:33:51.668] [main/DEBUG] [cpw.mods.modlauncher.LaunchPluginHandler/MODLAUNCHER]: Found launch plugins: [mixin,eventbus,slf4jfixer,object_holder_definalize,runtime_enum_extender,capability_token_subclass,accesstransformer,runtimedistcleaner] [19May2024 20:33:51.681] [main/DEBUG] [cpw.mods.modlauncher.TransformationServicesHandler/MODLAUNCHER]: Discovering transformation services [19May2024 20:33:51.688] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path GAMEDIR is C:\Users\dmoyf\AppData\Roaming\.minecraft [19May2024 20:33:51.689] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path MODSDIR is C:\Users\dmoyf\AppData\Roaming\.minecraft\mods [19May2024 20:33:51.689] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path CONFIGDIR is C:\Users\dmoyf\AppData\Roaming\.minecraft\config [19May2024 20:33:51.689] [main/DEBUG] [net.minecraftforge.fml.loading.FMLPaths/CORE]: Path FMLCONFIG is C:\Users\dmoyf\AppData\Roaming\.minecraft\config\fml.toml
  • Topics

×
×
  • Create New...

Important Information

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