SpongePowered / VanillaGradle

A toolchain for Minecraft: Java Edition that builds a workspace to interact with the game using the official mappings provided to the public by Mojang Studios.
MIT License
89 stars 18 forks source link

Remapping inputs and outputs #34

Open zml2008 opened 3 years ago

zml2008 commented 3 years ago

While SpongeVanilla has the luxury of not requiring output remapping, most other platforms do not compile directly to official names.

VG core would support remapping to obfuscated names, with the ability for extension plugins to register additional mapping formats (SRG, etc).

Dependencies may come in from different mappings formats as well -- those would need to be remapped (either via artifact transforms, or the same sort of beforeResolve/eachDependency hook we use for MC itself).

The specific mappings used should be published as part of the Gradle module metadata, as an attribute on the outgoing configurations, so we can eventually provide easier detection of which mappings mods use.

Once there's a system for declaring additional mappings formats, we will support remapping Minecraft itself to different mappings (for yarn, or on older versions MCP) since it's necessary to provide an accurate classpath when remapping mods. This might be exposed to end-users who want to use alternate mappings in their dev environment, but that is not a primary goal of this project.