Make feature flag defines available in shader.properties preprocessing (#1303)

This commit is contained in:
Jason Mitchell authored and GitHub committed 2026-01-24 10:10:13 -08:00
1 parent 50b0d22dc2
commit 08f4c0f9db
2 files changed
+9 -11

No files matched your search

+1 -1
View File
@@ -16,5 +16,5 @@ pluginManagement {
}
plugins {
id("com.gtnewhorizons.gtnhsettingsconvention") version("2.0.13")
id("com.gtnewhorizons.gtnhsettingsconvention") version("2.0.18")
}
@@ -203,7 +203,14 @@ public class ShaderPack {
this.shaderPackOptions = new ShaderPackOptions(graph, changedConfigs);
graph = this.shaderPackOptions.getIncludes();
Iterable<StringPair> finalEnvironmentDefines = environmentDefines;
List<StringPair> finalEnvironmentDefines = new ArrayList<>();
environmentDefines.forEach(finalEnvironmentDefines::add);
for (FeatureFlags flag : FeatureFlags.values()) {
if (flag.isUsable()) {
finalEnvironmentDefines.add(new StringPair("IRIS_FEATURE_" + flag.name(), ""));
}
}
this.shaderProperties = Optional.ofNullable(readProperties(root, "shaders.properties"))
.map(source -> new ShaderProperties(source, shaderPackOptions, finalEnvironmentDefines))
.orElseGet(ShaderProperties::empty);
@@ -220,15 +227,6 @@ public class ShaderPack {
IrisApi.getInstance().getConfig().setShadersEnabledAndApply(false);
}
List<String> optionalFeatureFlags = shaderProperties.getOptionalFeatureFlags().stream().filter(flag -> !FeatureFlags.isInvalid(flag)).collect(Collectors.toList());
if (!optionalFeatureFlags.isEmpty()) {
List<StringPair> newEnvDefines = new ArrayList<>();
environmentDefines.forEach(newEnvDefines::add);
optionalFeatureFlags.forEach(flag -> newEnvDefines.add(new StringPair("IRIS_FEATURE_" + flag, "")));
environmentDefines = ImmutableList.copyOf(newEnvDefines);
}
ProfileSet profiles = ProfileSet.fromTree(shaderProperties.getProfiles(), this.shaderPackOptions.getOptionSet());
this.profile = profiles.scan(this.shaderPackOptions.getOptionSet(), this.shaderPackOptions.getOptionValues());