mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
generify noise registry
This commit is contained in:
parent
d5601229ac
commit
4b4c26eb84
@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.noise;
|
package com.dfsek.terra.addons.noise;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.addons.noise.config.NoiseSamplerBuilderLoader;
|
import com.dfsek.terra.addons.noise.config.NoiseSamplerBuilderLoader;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.DomainWarpTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.DomainWarpTemplate;
|
||||||
import com.dfsek.terra.addons.noise.config.templates.ImageSamplerTemplate;
|
import com.dfsek.terra.addons.noise.config.templates.ImageSamplerTemplate;
|
||||||
@ -34,11 +35,12 @@ import com.dfsek.terra.api.event.EventListener;
|
|||||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||||
import com.dfsek.terra.api.injection.annotations.Inject;
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.util.provider.NoiseProvider;
|
import com.dfsek.terra.api.util.TypeToken;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@Addon("config-noise-function")
|
@Addon("config-noise-function")
|
||||||
@Author("Terra")
|
@Author("Terra")
|
||||||
@ -47,13 +49,15 @@ public class NoiseAddon extends TerraAddon implements EventListener {
|
|||||||
@Inject
|
@Inject
|
||||||
private TerraPlugin plugin;
|
private TerraPlugin plugin;
|
||||||
|
|
||||||
|
public static final TypeToken<Supplier<ObjectTemplate<SeededNoiseSampler>>> NOISE_SAMPLER_TOKEN = new TypeToken<>() {};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
plugin.getEventManager().registerListener(this, this);
|
plugin.getEventManager().registerListener(this, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
public void packPreLoad(ConfigPackPreLoadEvent event) {
|
||||||
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class);
|
CheckedRegistry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry = event.getPack().getOrCreateRegistry(NOISE_SAMPLER_TOKEN);
|
||||||
event.getPack()
|
event.getPack()
|
||||||
.applyLoader(SeededNoiseSampler.class, new NoiseSamplerBuilderLoader(noiseRegistry))
|
.applyLoader(SeededNoiseSampler.class, new NoiseSamplerBuilderLoader(noiseRegistry))
|
||||||
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new)
|
||||||
|
@ -7,18 +7,18 @@ import com.dfsek.tectonic.loading.ConfigLoader;
|
|||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.util.provider.NoiseProvider;
|
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class NoiseSamplerBuilderLoader implements TypeLoader<SeededNoiseSampler> {
|
public class NoiseSamplerBuilderLoader implements TypeLoader<SeededNoiseSampler> {
|
||||||
private final Registry<NoiseProvider> noiseRegistry;
|
private final Registry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry;
|
||||||
|
|
||||||
public NoiseSamplerBuilderLoader(Registry<NoiseProvider> noiseRegistry) {
|
public NoiseSamplerBuilderLoader(Registry<Supplier<ObjectTemplate<SeededNoiseSampler>>> noiseRegistry) {
|
||||||
this.noiseRegistry = noiseRegistry;
|
this.noiseRegistry = noiseRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
package com.dfsek.terra.api.util.provider;
|
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
@FunctionalInterface
|
|
||||||
public interface NoiseProvider extends Supplier<ObjectTemplate<SeededNoiseSampler>> {
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user