NeoForge support
LambdAurora opened this issue ยท 1 comments
Why?
I am not a fan of having to support NeoForge, but given how much of a mess the dynamic lighting ecosystem currently is, I cannot let this situation fester any longer.
While I've taken care to make the compatibility as good as it could be with Sinytra Connector, going as far as making new tooling to ensure a perfect 1:1 API match on both platforms, ensuring that entrypoints will work on any platform, there is still massive issues both for users and modpack makers:
- mod hosts do not let me specify that a version is compatible with NeoForge with a Sinytra Connector dependency;
- leading to the mod not showing up when people search for NeoForge mods;
- also leading to API consumers and modpacks being wary of using LambDynamicLights with Sinytra Connector.
How?
First thought was making a system to automatically remap LambDynamicLights at runtime to mojmap for NeoForge and not relying on platform-specific code, this however proves to be much more complicated.
Bundling Sinytra Connector may not work either.
So now the plan is to still target a single JAR solution, but leverage as much remapping as possible at compilation:
- Build tooling to ease mojmap remapping
- Build tooling to ease mod loading on any platform
- Ensure API is 100% the same on any platform
- Separate the actual core system of LambDynamicLights to a source set without Fabric API to ensure the logic is not platform-specific
- Build a simple platform redirection abstraction layer to properly redirect the little things that are platform-specific, which will only be loaded on the corresponding platform.
- Package all above as a single JAR