makamys / MAtmos

Minecraft Atmospheric sounds simulator (1.7.10, 1.12.2)
Other
27 stars 5 forks source link

[Mod Incompatibility] Up and Down and All Around #6

Closed forresthopkinsa closed 3 years ago

forresthopkinsa commented 4 years ago

When playing with Up/Down 2.9.1 and MAtmos 35.1, after switching gravity and standing on a reoriented surface, the camera gets stuck and the player seems to be clipping into the ground -- a similar effect to really high server lag.

Considering how disparate these two mods are, I don't expect that this conflict is inevitable.

Corresponding issue: Mysteryem/Up_And_Down_And_All_Around#123

More info:

makamys commented 4 years ago

I looked into this and it turns out Up/Down implements class transformers in a way where the patches "self-destruct" themselves after finishing, which means they won't get run a second time. This is a problem because Mixin runs transformers an additional time at startup to gather info.

The issue happened because MAtmos used a mixin to the Entity class to access a private field, breaking Up/Down's patches to it. I changed the code to use access transformers instead, and now it works correctly... mostly.

The only mixin that remains is the SoundManager one, which class Up/Down also modifies to reverse the directions of sounds when you're upside down. Since this is one mixin I cannot let go of, the only way to fix it would be to reimplement U/D's transformers in a way so that they can be run multiple times.

By the way, this issue isn't exclusive to MAtmos. Any mod that uses mixins to modify the classes U/D modifies will have an issue. For example, with Dynamic Surroundings, the directions aren't reversed correctly and the footsteps aren't played when you're upside down.

tl;dr the problem is on U/D's side but I made MAtmos's patching less aggressive so now there are only audio issues.

forresthopkinsa commented 4 years ago

Got it. Thank you very much for the fixes you were able to manage! Audio issues I can live with.

Do you think a release is incoming or should I just make myself a build?

makamys commented 4 years ago

It's coming, I was just waiting on a possible issue reported elsewhere. But I'm gonna give up on that for now.

makamys commented 1 year ago

A proper workaround is now available for this. Adding the Mixingasm module of UniMixins fully fixes the incompatibility. (Note that you also need the Compat module for the mod to work on 1.12.2.)