diff --git a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/config/converter/ExactBiomeColorConverterTemplate.java b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/config/converter/ExactBiomeColorConverterTemplate.java index bacd61c52..ed64a1d61 100644 --- a/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/config/converter/ExactBiomeColorConverterTemplate.java +++ b/common/addons/biome-provider-image/src/main/java/com/dfsek/terra/addons/biome/image/config/converter/ExactBiomeColorConverterTemplate.java @@ -1,5 +1,6 @@ package com.dfsek.terra.addons.biome.image.config.converter; +import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.addons.image.config.converter.ExactColorConverterTemplate; @@ -14,6 +15,10 @@ public class ExactBiomeColorConverterTemplate extends ExactColorConverterTemplat @Value("fallback") private Biome fallback; + + @Value("ignore-alpha") + @Default + private boolean ignoreAlpha = true; @Override protected ColorMapping getMapping() { @@ -24,4 +29,9 @@ public class ExactBiomeColorConverterTemplate extends ExactColorConverterTemplat protected Biome getFallback() { return fallback; } + + @Override + protected boolean ignoreAlpha() { + return ignoreAlpha; + } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/converter/ExactColorConverterTemplate.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/converter/ExactColorConverterTemplate.java index 6c0a8df28..17d2fd37d 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/converter/ExactColorConverterTemplate.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/config/converter/ExactColorConverterTemplate.java @@ -11,8 +11,10 @@ public abstract class ExactColorConverterTemplate implements ColorConverterTe protected abstract T getFallback(); + protected abstract boolean ignoreAlpha(); + @Override public ColorConverter get() { - return new ExactColorConverter(getMapping().get(), getFallback()); + return new ExactColorConverter(getMapping().get(), getFallback(), ignoreAlpha()); } } diff --git a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java index 1258a762b..f263a596a 100644 --- a/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java +++ b/common/addons/library-image/src/main/java/com/dfsek/terra/addons/image/converter/ExactColorConverter.java @@ -4,22 +4,29 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import com.dfsek.terra.addons.image.util.ColorUtil; + public class ExactColorConverter implements ColorConverter { private final Map map; private final T fallback; - public ExactColorConverter(Map map, T fallback) { + private final boolean ignoreAlpha; + + public ExactColorConverter(Map map, T fallback, boolean ignoreAlpha) { this.map = map; this.fallback = fallback; + this.ignoreAlpha = ignoreAlpha; } @Override public T apply(Integer color) { + if (ignoreAlpha) { + color = ColorUtil.zeroAlpha(color); + } T lookup = map.get(color); - if(lookup != null) return lookup; - return fallback; + return lookup != null ? lookup : fallback; } @Override