BetterPortals

BetterPortals

1M Downloads

[Incompatibility] Swimming / Crawling using Ido causes the player to render invisible while in third person

Kaydax opened this issue ยท 4 comments

commented

While using BetterPortals 0.2.4 and Ido 1.0.4, the player is rendered invisible when swimming / crawling while in third person. From what I checked It isn't on our end since this mod changes the way things are rendered while the player is in third person.

The only two mods I have installed testing this are ido and this, so its no other mod.

image

commented

Ido's duplicating all the code in RenderPlayer for no apparent reason, with the only apparent change being a different mainModel and these lines:
https://github.com/Kaydax/Ido/blob/cc2af3b988ec2b02b696567cbbecac506e0651ed/src/main/java/xyz/kaydax/ido/legacy/RenderPlayerSwiming.java#L266-L280

BP changes some of that code to support rendering the client player when mc.renderViewEntity is different from mc.player but Ido's copy ofc remains unchanged:
https://github.com/Johni0702/BetterPortals/blob/72b41a01bbf147cb8a9f5567187e9aaeab9020d1/src/view/java/de/johni0702/minecraft/view/impl/mixin/MixinRenderPlayer.java

Instead of duplicating all that code (which is already questionable from a legal perspective), could you not simply replace the mainModel on the Pre event (make sure to use the right priority in case someone cancels the event) and put back the original one on the Post event?
For those rotations in applyRotations, you can hijack the model's setLivingAnimations method, which is called shortly after applyRotations (just need to make sure to take prepareScale into account).

commented

Yah I could see what I can do. Thanks for the help as well. The reason why its like that is because bagu made it like that, and thats why I put it inside of the legacy folder for reasons.

commented

Should be fixed by 81eb2b4 (BP 0.3.5).

commented

I'm going to be working on what you suggested soon and will stop replacing the player renderer out right. But thanks for this fix non the less