mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 22:31:52 +00:00
BiomeProviderBuilder -> SeededBiomeProvider
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.addons.biome.image;
|
package com.dfsek.terra.addons.biome.image;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
@@ -11,7 +11,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class ImageBiomeProvider implements BiomeProvider, BiomeProviderBuilder { // This provider does not need a seed, so it is its own builder.
|
public class ImageBiomeProvider implements BiomeProvider, SeededBiomeProvider { // This provider does not need a seed, so it is its own builder.
|
||||||
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>();
|
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>();
|
||||||
private final BufferedImage image;
|
private final BufferedImage image;
|
||||||
private final int resolution;
|
private final int resolution;
|
||||||
|
|||||||
+2
-2
@@ -21,7 +21,7 @@ import com.dfsek.terra.api.addon.annotations.Version;
|
|||||||
import com.dfsek.terra.api.event.EventListener;
|
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.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBiomeSource;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeSource;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
@@ -51,6 +51,6 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
|||||||
.applyLoader(SmoothMutatorTemplate.class, SmoothMutatorTemplate::new)
|
.applyLoader(SmoothMutatorTemplate.class, SmoothMutatorTemplate::new)
|
||||||
.applyLoader(ExpanderStageTemplate.class, ExpanderStageTemplate::new)
|
.applyLoader(ExpanderStageTemplate.class, ExpanderStageTemplate::new)
|
||||||
.applyLoader((Type) BiomePipelineTemplate.class, () -> new BiomePipelineTemplate(main))
|
.applyLoader((Type) BiomePipelineTemplate.class, () -> new BiomePipelineTemplate(main))
|
||||||
.applyLoader(BiomeProviderBuilder.class, new BiomeProviderBuilderLoader());
|
.applyLoader(SeededBiomeProvider.class, new BiomeProviderBuilderLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -3,14 +3,13 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
import com.dfsek.tectonic.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
|
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
import java.lang.reflect.Type;
|
|
||||||
|
|
||||||
public class BiomeProviderBuilderLoader implements TypeLoader<BiomeProviderBuilder> {
|
public class BiomeProviderBuilderLoader implements TypeLoader<SeededBiomeProvider> {
|
||||||
@Override
|
@Override
|
||||||
public BiomeProviderBuilder load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
public SeededBiomeProvider load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||||
return loader.loadType(BiomePipelineTemplate.class, c); // TODO: actually implement this lol
|
return loader.loadType(BiomePipelineTemplate.class, c); // TODO: actually implement this lol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -3,10 +3,10 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
import com.dfsek.terra.api.util.seeded.SeededNoiseSampler;
|
||||||
|
|
||||||
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
public abstract class BiomeProviderTemplate implements ObjectTemplate<SeededBiomeProvider>, SeededBiomeProvider {
|
||||||
@Value("resolution")
|
@Value("resolution")
|
||||||
@Default
|
@Default
|
||||||
protected int resolution = 1;
|
protected int resolution = 1;
|
||||||
@@ -18,7 +18,7 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvi
|
|||||||
protected double blendAmp = 0d;
|
protected double blendAmp = 0d;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProviderBuilder get() {
|
public SeededBiomeProvider get() {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.biome.single;
|
package com.dfsek.terra.addons.biome.single;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
public class SingleBiomeProvider implements BiomeProvider, BiomeProviderBuilder {
|
public class SingleBiomeProvider implements BiomeProvider, SeededBiomeProvider {
|
||||||
private final TerraBiome biome;
|
private final TerraBiome biome;
|
||||||
|
|
||||||
public SingleBiomeProvider(TerraBiome biome) {
|
public SingleBiomeProvider(TerraBiome biome) {
|
||||||
|
|||||||
+3
-3
@@ -3,10 +3,10 @@ package com.dfsek.terra.addons.biome.single;
|
|||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
|
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
|
public class SingleBiomeProviderTemplate implements ObjectTemplate<SeededBiomeProvider>, SeededBiomeProvider {
|
||||||
@Value("biome")
|
@Value("biome")
|
||||||
private SeededTerraBiome biome;
|
private SeededTerraBiome biome;
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProviderBuilder get() {
|
public SeededBiomeProvider get() {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
|||||||
import com.dfsek.terra.api.registry.meta.RegistryHolder;
|
import com.dfsek.terra.api.registry.meta.RegistryHolder;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderHolder;
|
import com.dfsek.terra.api.tectonic.LoaderHolder;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
||||||
@@ -16,7 +16,7 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
|
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
|
||||||
BiomeProviderBuilder getBiomeProviderBuilder();
|
SeededBiomeProvider getBiomeProviderBuilder();
|
||||||
|
|
||||||
<T> CheckedRegistry<T> getOrCreateRegistry(Class<T> clazz);
|
<T> CheckedRegistry<T> getOrCreateRegistry(Class<T> clazz);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package com.dfsek.terra.api.util.seeded;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
|
||||||
|
|
||||||
public interface BiomeProviderBuilder extends SeededBuilder<BiomeProvider> {
|
|
||||||
BiomeProvider build(long seed);
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.dfsek.terra.api.util.seeded;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
|
public interface SeededBiomeProvider extends SeededBuilder<BiomeProvider> {
|
||||||
|
}
|
||||||
@@ -29,7 +29,7 @@ import com.dfsek.terra.api.registry.OpenRegistry;
|
|||||||
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
|
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
|
||||||
import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
||||||
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
|
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
||||||
@@ -82,7 +82,7 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
|
|
||||||
private final Set<TerraAddon> addons;
|
private final Set<TerraAddon> addons;
|
||||||
|
|
||||||
private final BiomeProviderBuilder biomeProviderBuilder;
|
private final SeededBiomeProvider seededBiomeProvider;
|
||||||
|
|
||||||
private final Map<Class<?>, ImmutablePair<OpenRegistry<?>, CheckedRegistry<?>>> registryMap = new HashMap<>();
|
private final Map<Class<?>, ImmutablePair<OpenRegistry<?>, CheckedRegistry<?>>> registryMap = new HashMap<>();
|
||||||
|
|
||||||
@@ -122,8 +122,8 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
|
|
||||||
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
|
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
|
||||||
selfLoader.load(packPostTemplate, configuration);
|
selfLoader.load(packPostTemplate, configuration);
|
||||||
biomeProviderBuilder = packPostTemplate.getProviderBuilder();
|
seededBiomeProvider = packPostTemplate.getProviderBuilder();
|
||||||
biomeProviderBuilder.build(0); // Build dummy provider to catch errors at load time.
|
seededBiomeProvider.build(0); // Build dummy provider to catch errors at load time.
|
||||||
checkDeadEntries(main);
|
checkDeadEntries(main);
|
||||||
} catch(FileNotFoundException e) {
|
} catch(FileNotFoundException e) {
|
||||||
throw new LoadException("No pack.yml file found in " + folder.getAbsolutePath(), e);
|
throw new LoadException("No pack.yml file found in " + folder.getAbsolutePath(), e);
|
||||||
@@ -175,8 +175,8 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
|
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
|
||||||
|
|
||||||
selfLoader.load(packPostTemplate, configuration);
|
selfLoader.load(packPostTemplate, configuration);
|
||||||
biomeProviderBuilder = packPostTemplate.getProviderBuilder();
|
seededBiomeProvider = packPostTemplate.getProviderBuilder();
|
||||||
biomeProviderBuilder.build(0); // Build dummy provider to catch errors at load time.
|
seededBiomeProvider.build(0); // Build dummy provider to catch errors at load time.
|
||||||
checkDeadEntries(main);
|
checkDeadEntries(main);
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
throw new LoadException("Unable to load pack.yml from ZIP file", e);
|
throw new LoadException("Unable to load pack.yml from ZIP file", e);
|
||||||
@@ -293,8 +293,8 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProviderBuilder getBiomeProviderBuilder() {
|
public SeededBiomeProvider getBiomeProviderBuilder() {
|
||||||
return biomeProviderBuilder;
|
return seededBiomeProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
+3
-3
@@ -2,13 +2,13 @@ package com.dfsek.terra.config.pack;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
|
||||||
|
|
||||||
public class ConfigPackPostTemplate implements ConfigTemplate {
|
public class ConfigPackPostTemplate implements ConfigTemplate {
|
||||||
@Value("biomes")
|
@Value("biomes")
|
||||||
private BiomeProviderBuilder providerBuilder;
|
private SeededBiomeProvider providerBuilder;
|
||||||
|
|
||||||
public BiomeProviderBuilder getProviderBuilder() {
|
public SeededBiomeProvider getProviderBuilder() {
|
||||||
return providerBuilder;
|
return providerBuilder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user