pull BiomeProviderBuilder out of BiomeProvider

This commit is contained in:
dfsek 2021-07-05 21:39:55 -07:00
parent 39f5aef0c5
commit 52a269b686
8 changed files with 22 additions and 19 deletions

View File

@ -2,6 +2,7 @@ package com.dfsek.terra.addons.biome.image;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
import net.jafama.FastMath;
import java.awt.*;
@ -10,7 +11,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class ImageBiomeProvider implements BiomeProvider, BiomeProvider.BiomeProviderBuilder { // This provider does not need a seed, so it is its own builder.
public class ImageBiomeProvider implements BiomeProvider, BiomeProviderBuilder { // This provider does not need a seed, so it is its own builder.
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>();
private final BufferedImage image;
private final int resolution;

View File

@ -2,8 +2,9 @@ package com.dfsek.terra.addons.biome.single;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
public class SingleBiomeProvider implements BiomeProvider, BiomeProvider.BiomeProviderBuilder {
public class SingleBiomeProvider implements BiomeProvider, BiomeProviderBuilder {
private final TerraBiome biome;
public SingleBiomeProvider(TerraBiome biome) {

View File

@ -7,7 +7,7 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
import java.util.Map;
import java.util.Set;
@ -15,7 +15,7 @@ import java.util.Set;
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
<T> CheckedRegistry<T> getRegistry(Class<T> clazz);
BiomeProvider.BiomeProviderBuilder getBiomeProviderBuilder();
BiomeProviderBuilder getBiomeProviderBuilder();
WorldConfig toWorldConfig(TerraWorld world);

View File

@ -0,0 +1,7 @@
package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public interface BiomeProviderBuilder {
BiomeProvider build(long seed);
}

View File

@ -15,10 +15,6 @@ public interface BiomeProvider {
return getBiome(vector3.getBlockX(), vector3.getBlockZ());
}
interface BiomeProviderBuilder {
BiomeProvider build(long seed);
}
@Deprecated
enum Type {
IMAGE, PIPELINE, SINGLE

View File

@ -4,9 +4,9 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider.BiomeProviderBuilder>, BiomeProvider.BiomeProviderBuilder {
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProviderBuilder>, BiomeProviderBuilder {
@Value("resolution")
@Default
protected int resolution = 1;
@ -16,11 +16,9 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvi
@Value("blend.amplitude")
@Default
protected double blendAmp = 0d;
@Value("type")
BiomeProvider.Type type;
@Override
public BiomeProvider.BiomeProviderBuilder get() {
public BiomeProviderBuilder get() {
return this;
}
}

View File

@ -29,7 +29,7 @@ import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
import com.dfsek.terra.api.util.seeded.NoiseProvider;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
import com.dfsek.terra.config.dummy.DummyWorld;
import com.dfsek.terra.config.fileloaders.FolderLoader;
import com.dfsek.terra.config.fileloaders.ZIPLoader;
@ -78,7 +78,7 @@ public class ConfigPackImpl implements ConfigPack {
private final Configuration configuration;
private final BiomeProvider.BiomeProviderBuilder biomeProviderBuilder;
private final BiomeProviderBuilder biomeProviderBuilder;
private final ConfigTypeRegistry configTypeRegistry;
@ -298,7 +298,7 @@ public class ConfigPackImpl implements ConfigPack {
}
@Override
public BiomeProvider.BiomeProviderBuilder getBiomeProviderBuilder() {
public BiomeProviderBuilder getBiomeProviderBuilder() {
return biomeProviderBuilder;
}

View File

@ -2,13 +2,13 @@ package com.dfsek.terra.config.pack;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
public class ConfigPackPostTemplate implements ConfigTemplate {
@Value("biomes")
private BiomeProvider.BiomeProviderBuilder providerBuilder;
private BiomeProviderBuilder providerBuilder;
public BiomeProvider.BiomeProviderBuilder getProviderBuilder() {
public BiomeProviderBuilder getProviderBuilder() {
return providerBuilder;
}
}