Add translate color sampler

This commit is contained in:
Astrash
2022-11-26 14:22:08 +11:00
parent 6b7fb82202
commit 7b0185ba7c
3 changed files with 45 additions and 1 deletions

View File

@@ -5,10 +5,11 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.util.function.Supplier;
import com.dfsek.terra.addons.image.config.ImageLoader;
import com.dfsek.terra.addons.image.config.sampler.mutate.RotateColorSamplerTemplate;
import com.dfsek.terra.addons.image.config.sampler.ConstantColorSamplerTemplate;
import com.dfsek.terra.addons.image.config.sampler.image.SingleImageColorSamplerTemplate;
import com.dfsek.terra.addons.image.config.sampler.image.TileImageColorSamplerTemplate;
import com.dfsek.terra.addons.image.config.sampler.mutate.RotateColorSamplerTemplate;
import com.dfsek.terra.addons.image.config.sampler.mutate.TranslateColorSamplerTemplate;
import com.dfsek.terra.addons.image.image.Image;
import com.dfsek.terra.addons.image.sampler.ColorSampler;
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
@@ -48,6 +49,7 @@ public class ImageLibraryAddon implements AddonInitializer {
colorSamplerRegistry.register(addon.key("TILED_IMAGE"), TileImageColorSamplerTemplate::new);
colorSamplerRegistry.register(addon.key("COLOR"), ConstantColorSamplerTemplate::new);
colorSamplerRegistry.register(addon.key("ROTATE"), RotateColorSamplerTemplate::new);
colorSamplerRegistry.register(addon.key("TRANSLATE"), TranslateColorSamplerTemplate::new);
});
}
}

View File

@@ -0,0 +1,21 @@
package com.dfsek.terra.addons.image.config.sampler.mutate;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.image.sampler.ColorSampler;
import com.dfsek.terra.addons.image.sampler.mutate.TranslateColorSampler;
public class TranslateColorSamplerTemplate extends MutateColorSamplerTemplate {
@Value("x")
private int translateX;
@Value("z")
private int translateZ;
@Override
public ColorSampler get() {
return new TranslateColorSampler(sampler, translateX, translateZ);
}
}

View File

@@ -0,0 +1,21 @@
package com.dfsek.terra.addons.image.sampler.mutate;
import com.dfsek.terra.addons.image.sampler.ColorSampler;
public class TranslateColorSampler implements ColorSampler {
private final ColorSampler sampler;
private final int translateX, translateZ;
public TranslateColorSampler(ColorSampler sampler, int translateX, int translateZ) {
this.sampler = sampler;
this.translateX = translateX;
this.translateZ = translateZ;
}
@Override
public Integer apply(int x, int z) {
return sampler.apply(x - translateX, z - translateZ);
}
}