Use color sampler as fallback instead of constant

This commit is contained in:
Astrash 2022-11-25 14:39:12 +11:00
parent 5c916f7758
commit b771e108b6
2 changed files with 4 additions and 4 deletions

View File

@ -8,7 +8,7 @@ import com.dfsek.terra.addons.image.sampler.SimpleColorSampler;
public class SingleColorSamplerTemplate extends ColorSamplerTemplate { public class SingleColorSamplerTemplate extends ColorSamplerTemplate {
@Value("fallback") @Value("fallback")
private int fallback; private ColorSampler fallback;
@Override @Override
public ColorSampler get() { public ColorSampler get() {

View File

@ -8,13 +8,13 @@ public class SimpleColorSampler implements ColorSampler {
private final Image image; private final Image image;
private final Integer fallback; private final ColorSampler fallback;
private final ImageTransformation transformation; private final ImageTransformation transformation;
public SimpleColorSampler(Image image, ColorSampler fallback, ImageTransformation transformation) { public SimpleColorSampler(Image image, ColorSampler fallback, ImageTransformation transformation) {
this.image = image; this.image = image;
this.fallback = fallbackColor; this.fallback = fallback;
this.transformation = transformation; this.transformation = transformation;
} }
@ -22,7 +22,7 @@ public class SimpleColorSampler implements ColorSampler {
public Integer apply(int x, int z) { public Integer apply(int x, int z) {
x = transformation.transformX(image, x); x = transformation.transformX(image, x);
z = transformation.transformZ(image, z); z = transformation.transformZ(image, z);
if(x < 0 || z < 0 || x >= image.getWidth() || z >= image.getHeight()) return fallback; if(x < 0 || z < 0 || x >= image.getWidth() || z >= image.getHeight()) return fallback.apply(x, z);
return image.getRGB(x, z); return image.getRGB(x, z);
} }
} }