mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-24 00:56:38 +00:00
Add translate color sampler
This commit is contained in:
@@ -5,10 +5,11 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
|||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.image.config.ImageLoader;
|
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.ConstantColorSamplerTemplate;
|
||||||
import com.dfsek.terra.addons.image.config.sampler.image.SingleImageColorSamplerTemplate;
|
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.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.image.Image;
|
||||||
import com.dfsek.terra.addons.image.sampler.ColorSampler;
|
import com.dfsek.terra.addons.image.sampler.ColorSampler;
|
||||||
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
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("TILED_IMAGE"), TileImageColorSamplerTemplate::new);
|
||||||
colorSamplerRegistry.register(addon.key("COLOR"), ConstantColorSamplerTemplate::new);
|
colorSamplerRegistry.register(addon.key("COLOR"), ConstantColorSamplerTemplate::new);
|
||||||
colorSamplerRegistry.register(addon.key("ROTATE"), RotateColorSamplerTemplate::new);
|
colorSamplerRegistry.register(addon.key("ROTATE"), RotateColorSamplerTemplate::new);
|
||||||
|
colorSamplerRegistry.register(addon.key("TRANSLATE"), TranslateColorSamplerTemplate::new);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user