Make LoomGradleExtension.isForge load from gradle.properties

This commit is contained in:
Juuxel
2020-07-30 15:10:48 +03:00
parent 7c9edfedee
commit 6e5c3a8715
2 changed files with 32 additions and 1 deletions

View File

@@ -54,9 +54,12 @@ import net.fabricmc.loom.providers.MinecraftMappedProvider;
import net.fabricmc.loom.providers.MinecraftProvider;
import net.fabricmc.loom.providers.PatchProvider;
import net.fabricmc.loom.providers.McpConfigProvider;
import net.fabricmc.loom.util.LazyBool;
import net.fabricmc.loom.util.LoomDependencyManager;
public class LoomGradleExtension {
private static final String FORGE_PROPERTY = "loom.forge";
public String runDir = "run";
public String refmapName;
public String loaderLaunchMethod;
@@ -78,6 +81,7 @@ public class LoomGradleExtension {
private JsonObject installerJson;
private MappingSet[] srcMappingCache = new MappingSet[2];
private Mercury[] srcMercuryCache = new Mercury[2];
private final LazyBool forge;
/**
* Loom will generate a new genSources task (with a new name, based off of {@link LoomDecompiler#name()})
@@ -99,6 +103,7 @@ public class LoomGradleExtension {
this.project = project;
this.autoGenIDERuns = AbstractPlugin.isRootProject(project);
this.unmappedMods = project.files();
this.forge = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.getProperties().get(FORGE_PROPERTY))));
}
/**
@@ -394,6 +399,6 @@ public class LoomGradleExtension {
}
public boolean isForge() {
return true; // TODO
return forge.getAsBoolean();
}
}

View File

@@ -0,0 +1,26 @@
package net.fabricmc.loom.util;
import java.util.Objects;
import java.util.function.BooleanSupplier;
/**
* A lazily computed boolean value.
*/
public final class LazyBool implements BooleanSupplier {
private BooleanSupplier supplier;
private Boolean value;
public LazyBool(BooleanSupplier supplier) {
this.supplier = Objects.requireNonNull(supplier, "supplier");
}
@Override
public boolean getAsBoolean() {
if (value == null) {
value = supplier.getAsBoolean();
supplier = null; // Release the supplier
}
return value;
}
}