shedaniel / LightOverlay

To provide users with NEI-like light overlay for Minecraft 1.14+.
Apache License 2.0
86 stars 35 forks source link

On Minecraft 1.20+ displaying numbers as text draws them in other floors below the player through solid blocks #168

Open Jupisoft111 opened 1 year ago

Jupisoft111 commented 1 year ago

I changed the display settings to numbers and also the range to 16, and suddenly I always see the numbers even from blocks that are on other floors below the player. In case it might help, I also play on the lowest graphics possible (fast), without clouds or smooth lightning, although I use a render distance of 16.

mk-pmb commented 1 year ago

I have the same problem. Got accidential wallhack revealing pathways behind a wall. Also in a multi-layer building I cannot easily distinguish the current floor from the floors below.

futag commented 1 year ago

image

smmmadden commented 1 year ago

I see the same in 1.19.4 and 1.20.1 - been driving me crazy trying to figure out which one to look at.

pyrowknight commented 1 year ago

any fixs for this yet messing with my eye badly

esvarc commented 1 year ago

Any chance to fix it soon? pls

mk-pmb commented 1 year ago

Does someone have time to try old versions to discover which version introduced the bug? Then maybe I can find what part in the code got bad.

esvarc commented 1 year ago

Briefly, the problem is in the case of installing Oculus to support shaders or a similar mod.

I tested versions 7.0.1 to 8.0.0 with the corresponding MC version. They all work correctly and only show the numbers above the blocks if the blocks are visible. Everything is functional up to and including version MC 1.20.1. I suspected that it was an incompatibility with the MOD that works with the graphics. I added Embedium (fork from Sodium) better than Rubidium for FORGE. Everything was still OK, the numbers didn't show up for the invisible blocks. The moment I added the Oculus shader support MOD, at that moment numbers are visible even on blocks that are not normally visible. I remember that somewhere in the LightOverlay help it was said that there is a problem when using shaders and it is better to turn on the display of numbers. As you can see, this is no longer the case and in the case of shaders the numbers are not displayed as they should be.

How to check it. Install MC V1.20.1, FORGE, Architecture, Cloth Config, Embedium. Everything works as it should. Add Oculus and the numbers are visible through the blocks.

esvarc commented 1 year ago

BTW, I have the server and client also on version 1.16.5, where I use Embedium, Oculus and Light Overlay and this problem does not appear here yet. I will still test adding Embedium and Oculus to previous versions of MC from 1.19.2 to 1.19.4 to verify in which version this problem first appeared.

esvarc commented 1 year ago

MC 1.19.2, Light Overlay 7.0.1, Embedium 0.2.7 and Oculus 1.6.9 is OK. Numbers behind blocks are not visible.

esvarc commented 1 year ago

MC 1.19.3 is not possible to test because nor Embedium or Oculus exist for that version. Rubidium as variant for Embedium does exist, but without Oculus is not possible to test the bug.

esvarc commented 1 year ago

MC 1.19.4, Light Overlay 7.0.3, Rubidium 0.6.4, Oculus 1.5.2 is NOK. Based on this test, it can be concluded that the error occurred between versions 7.0.1 and 7.0.3 and will only become apparent after installing the shader-supporting mod.

esvarc commented 1 year ago
image

Here is the part of screenshot with the error.

mk-pmb commented 1 year ago

How to check it. Install MC V1.20.1, FORGE, Architecture, Cloth Config, Embedium.

Ah, sorry, it's been so long since I last played that I forgot there are alternatives to Fabric + Iris + Sodium. I'll be testing with them so let's hope your results still apply.

Everything is functional up to and including version MC 1.20.1.

Thanks for testing! As soon as time allows I'll check whether it's the same version jump for me and investigate further.

mk-pmb commented 1 year ago

I found a new thingy suspiciously named Font.DisplayMode.SEE_THROUGH. Not sure what it does (can't run MC here at the moment) but I took a shot in the dark and just changed it to NORMAL. Would be nice if someone can check if that fixed anything: Forge download / Fabric download

If it's not fixed, I may instead have confused what versions you meant exactly. In that case, please describe in more detail where you downloaded them and what filenames they had or similar. (Latest ok version and first failing version)

smmmadden commented 1 year ago

reproducible without any shaders. Not using Embedium, Occulus or Rubidium.

mk-pmb commented 1 year ago

reproducible without any shaders. Not using Embedium, Occulus or Rubidium.

With my "shot in the dark" version, or which one?

smmmadden commented 1 year ago

I posted above that I tried in 1.19.4 and 1.20.1 versions. Both had the same issue.

mk-pmb commented 1 year ago

I was able to test my version above and found that it fails with an unrelated error "Failed to read accessWidener file from mod …" so I'll have to debug that first. :-(

Edit: The solution seems to be to (1) delete the .gradle folder before building (done + updated: Forge version / Fabric version) and (2) upgrade fabric. Somehow I failed the latter part so bad it broke my MC instance beyond repair. I've run out of time for now but maybe someone is lucky and can get it to work.

esvarc commented 1 year ago

reproducible without any shaders. Not using Embedium, Occulus or Rubidium.

I didn't use shader as well. I'm using that Oculus, just for posibility to turn on shaders. As we both discover, it show numbers thru block in monent of installation the shader support mod. @mk-pmb I will try test updated version of Forge now.

esvarc commented 1 year ago

Done testing. I tested Forge version, but on MC version 1.20 and MC version 1.20.1, it crash. I'm adding debug.log from both runs. I'm using Multi MC, where to create new instance with only selected mods is quick and easy. Using this never crash my main instances for normal play.

MC version 1.20.1 debug.log mod list:

[✔️] architectury-9.1.12-forge.jar [✔️] cloth-config-11.1.106-forge.jar [✔️] light-overlay-v8.0.0-mc1.20.0-231112-072246.jar [✔️] v201-embeddium-0.2.1+mc1.20.1.jar [✔️] v201-oculus-mc1.20.1-1.6.9.jar

MC version 1.20.0 debug.log mod list:

[✔️] architectury-9.1.12-forge.jar [✔️] cloth-config-11.1.106-forge.jar [✔️] light-overlay-v8.0.0-mc1.20.0-231112-072246.jar [✔️] oculus-mc1.20-1.6.4.jar [✔️] rubidium-0.6.5.jar

esvarc commented 10 months ago

Another update. I discovered that the problem with displaying information even on blocks that are not visible does not only concern numbers, but also, of course, graphic information in the form of lines. as soon as I used resourcepack better-X-ray, textures that make blocks like clay, stone, etc. transparent. So you can see that the information is displayed on all blocks. For some reason, the Minecraft render engine can filter out the graphic overlay, but it can't handle the text overlay. I think that to correct it, unfortunately, it will be necessary for the logic of the mod to control the visibility of the block as such. It can be seen in the attached screenshot.

image
mk-pmb commented 9 months ago

Has anyone tried Parzivail's Light Level mod? (inofficial build download of their latest master) If theirs works, I might try and take inspiration from there. (Within license/ author agreement limits of course.)

smmmadden commented 9 months ago

Looks like it requires Fabric API (1.20.4), so won't support Forge versions. image

mk-pmb commented 9 months ago

Good catch. We might be able to fix the fabric part though, and then find another source of inspiration for the Forge part. (Again within license/ author agreement limits of course.)