Create a task force for ensuring mod compatibility with Sodium
jellysquid3 opened this issue ยท 8 comments
We are likely to make organizational changes and improvements with Sodium 0.6 which could break compatibility with certain mods that depend on our internal code.
As part of our continued effort to maintain compatibility with addon mods-- without applying pressure upon other addon developers-- we would like to create a task force for identifying mod compatibility issues ahead of time.
The work of this task force will involve a few different jobs:
- Identify the current collection of mods which depend on Sodium internals. (We should have a complete list of these mods before the alpha release of Sodium 0.6.)
- Validate the functioning of each addon mod with the future release of Sodium.
- Examine the reason for the breakage, and if not possible to fix upstream, submit pull requests downstream early for any mod which does not function correctly.
- For pull requests which are declined or otherwise not merged in time, create mixins for these fixes, and incorporate them into a secondary mod for Sodium which provides compatibility with known-incompatible mods.
I will open an issue with checklist items for the aforementioned mods, depending on what solutions they need exactly. For some things (see #2330) it just needs us to architect our code slightly differently.
just gonna throw this in here (you can delete if wrong place)
mixin
Valkyrien Skies (Forge/Fabric)
https://github.com/ValkyrienSkies/Valkyrien-Skies-2/tree/1.18.x/main/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium
Shimmer
https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium
https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium
NoCubes
https://github.com/Cadiboo/NoCubes/tree/526fa53c3fe5097a1f271f84a45da8b6ed4dcbe0/src/main/java/io/github/cadiboo/nocubes/mixin/client/sodium
https://github.com/Cadiboo/NoCubes/blob/master/src/main/java/io/github/cadiboo/nocubes/client/render/SodiumRenderer.java
Bobby Reforged
https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/mixin/sodium
https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/sodium
Cull Less Leaves
https://github.com/isXander/CullLessLeaves/tree/1.19/src/main/java/dev/isxander/culllessleaves/mixins/sodiumcompat
Majrusz Library
https://github.com/Majrusz/MajruszLibrary/blob/1.20.X/common/src/main/java/com/majruszlibrary/mixin/MixinItemColors.java
(unsure about this one)
Seamless
https://github.com/TeamDiopside/Seamless/blob/1.20.4/fabric/src/main/java/nl/teamdiopside/seamless/fabric/mixin/SodiumGameOptionPagesMixin.java
https://github.com/TeamDiopside/Seamless/blob/1.20.4/forge/src/main/java/nl/teamdiopside/seamless/forge/mixin/SodiumGameOptionPagesMixin.java
Snow! Real Magic! โ (Forge)
https://github.com/Snownee/SnowRealMagic/tree/1.20-forge/src/main/java/snownee/snow/mixin/sodium
Physics Mod
https://github.com/haubna/PhysicsMod/
(unsure about this one)
incompatible
Chunk Animator
https://github.com/Harleyoc1/ChunkAnimator
Fabric version of Create (?)
See https://www.curseforge.com/minecraft/mc-mods/prominent-create
There are some incompatibilities regarding certain lava-vision features (there is no mixin into Sodium but that is the problem of these features not working to my understanding):
- L_Ender 's Cataclysm
- Alex's Caves
Steam 'n' Rails has a mixin that'll probably break:
https://github.com/Layers-of-Railways/Railway/blob/1.20/dev/common/src/main/java/com/railwayteam/railways/mixin/compat/sodium/MixinBlockOcclusionCache.java
Most of nvidium will probably break, however im not sure how much of it can realistically be extracted to an API (similar to iris)
With your support of custom color resolvers and custom fluid colors, Vanadium and Bismuth should be able to mixin a bit easier now. I'll update with findings in the off chance we can't.
Nothing here needs action on Sodium's end, just for documentation
- Create will break again because of Flywheel, but Pepper and Jozu will take care of that at some point.
- Create and Portal Cubed have a soft dependency on SpriteContentsExtended that will fail safely if not found.
Nothing here needs action on Sodium's end, just for documentation
- Create will break again because of Flywheel, but Pepper and Jozu will take care of that at some point.
- Create and Portal Cubed have a soft dependency on SpriteContentsExtended that will fail safely if not found.
I can take care of flywheel, should be a quick pr
needs a api so that they can use sodiums fluid rendering system