mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-28 04:07:01 -05:00
Basic layered mappings with @ParchmentMC support (#413)
This commit is contained in:
@@ -52,10 +52,13 @@ import net.fabricmc.loom.configuration.LoomProjectData;
|
||||
import net.fabricmc.loom.configuration.ide.RunConfigSettings;
|
||||
import net.fabricmc.loom.configuration.processors.JarProcessor;
|
||||
import net.fabricmc.loom.configuration.processors.JarProcessorManager;
|
||||
import net.fabricmc.loom.configuration.providers.MinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MappingsProvider;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MojangMappingsDependency;
|
||||
import net.fabricmc.loom.configuration.providers.MinecraftProviderImpl;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMappedProvider;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.GradleMappingContext;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpec;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuilder;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsDependency;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MappingsProviderImpl;
|
||||
|
||||
public class LoomGradleExtension {
|
||||
public String refmapName;
|
||||
@@ -114,7 +117,14 @@ public class LoomGradleExtension {
|
||||
}
|
||||
|
||||
public Dependency officialMojangMappings() {
|
||||
return new MojangMappingsDependency(project, this);
|
||||
return layered(LayeredMappingSpecBuilder::officalMojangMappings);
|
||||
}
|
||||
|
||||
public Dependency layered(Action<LayeredMappingSpecBuilder> action) {
|
||||
LayeredMappingSpecBuilder builder = new LayeredMappingSpecBuilder();
|
||||
action.execute(builder);
|
||||
LayeredMappingSpec builtSpec = builder.build();
|
||||
return new LayeredMappingsDependency(new GradleMappingContext(project, "layers_" + builtSpec.getVersion().replace("+", "_").replace(".", "_")), builtSpec, builtSpec.getVersion());
|
||||
}
|
||||
|
||||
public LoomGradleExtension(Project project) {
|
||||
@@ -246,7 +256,7 @@ public class LoomGradleExtension {
|
||||
return new File((String) project.property("fabric.loom.natives.dir"));
|
||||
}
|
||||
|
||||
File natives = new File(getUserCache(), "natives/" + getMinecraftProvider().getMinecraftVersion());
|
||||
File natives = new File(getUserCache(), "natives/" + getMinecraftProvider().minecraftVersion());
|
||||
|
||||
if (!natives.exists()) {
|
||||
natives.mkdirs();
|
||||
@@ -271,16 +281,16 @@ public class LoomGradleExtension {
|
||||
return dependencyManager;
|
||||
}
|
||||
|
||||
public MinecraftProvider getMinecraftProvider() {
|
||||
return getDependencyManager().getProvider(MinecraftProvider.class);
|
||||
public MinecraftProviderImpl getMinecraftProvider() {
|
||||
return getDependencyManager().getProvider(MinecraftProviderImpl.class);
|
||||
}
|
||||
|
||||
public MinecraftMappedProvider getMinecraftMappedProvider() {
|
||||
return getMappingsProvider().mappedProvider;
|
||||
}
|
||||
|
||||
public MappingsProvider getMappingsProvider() {
|
||||
return getDependencyManager().getProvider(MappingsProvider.class);
|
||||
public MappingsProviderImpl getMappingsProvider() {
|
||||
return getDependencyManager().getProvider(MappingsProviderImpl.class);
|
||||
}
|
||||
|
||||
public void setDependencyManager(LoomDependencyManager dependencyManager) {
|
||||
@@ -342,7 +352,7 @@ public class LoomGradleExtension {
|
||||
// Creates a new file each time its called, this is then held onto later when remapping the output jar
|
||||
// Required as now when using parallel builds the old single file could be written by another sourceset compile task
|
||||
public synchronized File getNextMixinMappings() {
|
||||
File mixinMapping = new File(getProjectBuildCache(), "mixin-map-" + getMinecraftProvider().getMinecraftVersion() + "-" + getMappingsProvider().mappingsVersion + "." + mixinMappings.size() + ".tiny");
|
||||
File mixinMapping = new File(getProjectBuildCache(), "mixin-map-" + getMinecraftProvider().minecraftVersion() + "-" + getMappingsProvider().mappingsVersion + "." + mixinMappings.size() + ".tiny");
|
||||
mixinMappings.add(mixinMapping);
|
||||
return mixinMapping;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user