mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 22:31:52 +00:00
Ignore alpha channel by default with ExactColorConverter
This commit is contained in:
+10
@@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.biome.image.config.converter;
|
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.tectonic.api.config.template.annotations.Value;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.image.config.converter.ExactColorConverterTemplate;
|
import com.dfsek.terra.addons.image.config.converter.ExactColorConverterTemplate;
|
||||||
@@ -14,6 +15,10 @@ public class ExactBiomeColorConverterTemplate extends ExactColorConverterTemplat
|
|||||||
|
|
||||||
@Value("fallback")
|
@Value("fallback")
|
||||||
private Biome fallback;
|
private Biome fallback;
|
||||||
|
|
||||||
|
@Value("ignore-alpha")
|
||||||
|
@Default
|
||||||
|
private boolean ignoreAlpha = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ColorMapping<Biome> getMapping() {
|
protected ColorMapping<Biome> getMapping() {
|
||||||
@@ -24,4 +29,9 @@ public class ExactBiomeColorConverterTemplate extends ExactColorConverterTemplat
|
|||||||
protected Biome getFallback() {
|
protected Biome getFallback() {
|
||||||
return fallback;
|
return fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean ignoreAlpha() {
|
||||||
|
return ignoreAlpha;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -11,8 +11,10 @@ public abstract class ExactColorConverterTemplate<T> implements ColorConverterTe
|
|||||||
|
|
||||||
protected abstract T getFallback();
|
protected abstract T getFallback();
|
||||||
|
|
||||||
|
protected abstract boolean ignoreAlpha();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ColorConverter<T> get() {
|
public ColorConverter<T> get() {
|
||||||
return new ExactColorConverter<T>(getMapping().get(), getFallback());
|
return new ExactColorConverter<T>(getMapping().get(), getFallback(), ignoreAlpha());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-3
@@ -4,22 +4,29 @@ import java.util.HashSet;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.image.util.ColorUtil;
|
||||||
|
|
||||||
|
|
||||||
public class ExactColorConverter<T> implements ColorConverter<T> {
|
public class ExactColorConverter<T> implements ColorConverter<T> {
|
||||||
private final Map<Integer, T> map;
|
private final Map<Integer, T> map;
|
||||||
|
|
||||||
private final T fallback;
|
private final T fallback;
|
||||||
|
|
||||||
public ExactColorConverter(Map<Integer, T> map, T fallback) {
|
private final boolean ignoreAlpha;
|
||||||
|
|
||||||
|
public ExactColorConverter(Map<Integer, T> map, T fallback, boolean ignoreAlpha) {
|
||||||
this.map = map;
|
this.map = map;
|
||||||
this.fallback = fallback;
|
this.fallback = fallback;
|
||||||
|
this.ignoreAlpha = ignoreAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T apply(Integer color) {
|
public T apply(Integer color) {
|
||||||
|
if (ignoreAlpha) {
|
||||||
|
color = ColorUtil.zeroAlpha(color);
|
||||||
|
}
|
||||||
T lookup = map.get(color);
|
T lookup = map.get(color);
|
||||||
if(lookup != null) return lookup;
|
return lookup != null ? lookup : fallback;
|
||||||
return fallback;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user