delete SeededBuilder

This commit is contained in:
dfsek
2021-07-19 21:47:21 -07:00
parent d997fc69bf
commit 24a4ff4044
13 changed files with 18 additions and 49 deletions

View File

@@ -1,6 +1,5 @@
package com.dfsek.terra.addons.biome.image;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import net.jafama.FastMath;

View File

@@ -4,7 +4,6 @@ import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {

View File

@@ -1,7 +1,6 @@
package com.dfsek.terra.addons.biome.pipeline.config;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
public abstract class SourceTemplate implements ObjectTemplate<BiomeSource>{

View File

@@ -1,10 +1,9 @@
package com.dfsek.terra.addons.biome.single;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class SingleBiomeProvider implements BiomeProvider, SeededBuilder<BiomeProvider> {
public class SingleBiomeProvider implements BiomeProvider {
private final TerraBiome biome;
public SingleBiomeProvider(TerraBiome biome) {
@@ -15,9 +14,4 @@ public class SingleBiomeProvider implements BiomeProvider, SeededBuilder<BiomePr
public TerraBiome getBiome(int x, int z, long seed) {
return biome;
}
@Override
public BiomeProvider build(long seed) {
return this;
}
}

View File

@@ -2,21 +2,15 @@ package com.dfsek.terra.addons.biome.single;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class SingleBiomeProviderTemplate implements ObjectTemplate<SeededBuilder<BiomeProvider>>, SeededBuilder<BiomeProvider> {
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {
@Value("biome")
private TerraBiome biome;
@Override
public BiomeProvider build(long seed) {
public BiomeProvider get() {
return new SingleBiomeProvider(biome);
}
@Override
public SeededBuilder<BiomeProvider> get() {
return this;
}
}

View File

@@ -13,7 +13,6 @@ import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import java.util.function.Supplier;
@@ -21,7 +20,7 @@ import java.util.function.Supplier;
@Version("1.0.0")
@Author("Terra")
public class DistributorAddon extends TerraAddon implements EventListener {
public static final TypeKey<Supplier<ObjectTemplate<SeededBuilder<Distributor>>>> DISTRIBUTOR_TOKEN = new TypeKey<>() {};
public static final TypeKey<Supplier<ObjectTemplate<Distributor>>> DISTRIBUTOR_TOKEN = new TypeKey<>() {};
@Inject
private TerraPlugin main;
@@ -32,7 +31,7 @@ public class DistributorAddon extends TerraAddon implements EventListener {
public void packPreLoad(ConfigPackPreLoadEvent event) {
CheckedRegistry<Supplier<ObjectTemplate<SeededBuilder<Distributor>>>> distributorRegistry = event.getPack().getOrCreateRegistry(DISTRIBUTOR_TOKEN);
CheckedRegistry<Supplier<ObjectTemplate<Distributor>>> distributorRegistry = event.getPack().getOrCreateRegistry(DISTRIBUTOR_TOKEN);
distributorRegistry.register("NOISE", NoiseDistributorTemplate::new);
}
}

View File

@@ -5,14 +5,13 @@ import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
public class NoiseDistributorTemplate implements ObjectTemplate<SeededBuilder<Distributor>> {
public class NoiseDistributorTemplate implements ObjectTemplate<Distributor> {
@Value("distribution")
private NoiseSampler noise;
@Override
public SeededBuilder<Distributor> get() {
return seed -> new NoiseDistributor(noise);
public Distributor get() {
return new NoiseDistributor(noise);
}
}

View File

@@ -11,10 +11,8 @@ import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import java.util.function.Supplier;
@@ -23,7 +21,7 @@ import java.util.function.Supplier;
@Author("Terra")
public class LocatorAddon extends TerraAddon implements EventListener {
public static final TypeKey<Supplier<ObjectTemplate<SeededBuilder<Locator>>>> LOCATOR_TOKEN = new TypeKey<>() {};
public static final TypeKey<Supplier<ObjectTemplate<Locator>>> LOCATOR_TOKEN = new TypeKey<>() {};
@Inject
private TerraPlugin main;
@@ -33,7 +31,7 @@ public class LocatorAddon extends TerraAddon implements EventListener {
}
public void onPackLoad(ConfigPackPreLoadEvent event) {
CheckedRegistry<Supplier<ObjectTemplate<SeededBuilder<Locator>>>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN);
CheckedRegistry<Supplier<ObjectTemplate<Locator>>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN);
locatorRegistry.register("SURFACE", () -> new SurfaceLocatorTemplate(main));
}
}

View File

@@ -6,9 +6,8 @@ import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
public class SurfaceLocatorTemplate implements ObjectTemplate<SeededBuilder<Locator>> {
public class SurfaceLocatorTemplate implements ObjectTemplate<Locator> {
private final TerraPlugin main;
@Value("range")
@@ -19,7 +18,7 @@ public class SurfaceLocatorTemplate implements ObjectTemplate<SeededBuilder<Loca
}
@Override
public SeededBuilder<Locator> get() {
return seed -> new SurfaceLocator(range, main);
public Locator get() {
return new SurfaceLocator(range, main);
}
}

View File

@@ -7,7 +7,6 @@ import com.dfsek.terra.api.registry.meta.RegistryHolder;
import com.dfsek.terra.api.tectonic.LoaderHolder;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
@@ -19,7 +18,7 @@ import java.util.Map;
import java.util.Set;
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
SeededBuilder<BiomeProvider> getBiomeProviderBuilder();
BiomeProvider getBiomeProviderBuilder();
<T> CheckedRegistry<T> getOrCreateRegistry(Type clazz);
default <T> CheckedRegistry<T> getOrCreateRegistry(Class<T> clazz) {

View File

@@ -1,6 +0,0 @@
package com.dfsek.terra.api.util.seeded;
@FunctionalInterface
public interface SeededBuilder<T> {
T build(long seed);
}

View File

@@ -30,7 +30,6 @@ import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.registry.meta.RegistryFactory;
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
@@ -84,7 +83,7 @@ public class ConfigPackImpl implements ConfigPack {
private final Set<TerraAddon> addons;
private final SeededBuilder<BiomeProvider> seededBiomeProvider;
private final BiomeProvider seededBiomeProvider;
private final Map<Type, ImmutablePair<OpenRegistry<?>, CheckedRegistry<?>>> registryMap = new HashMap<>();
@@ -125,7 +124,6 @@ public class ConfigPackImpl implements ConfigPack {
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
selfLoader.load(packPostTemplate, configuration);
seededBiomeProvider = packPostTemplate.getProviderBuilder();
seededBiomeProvider.build(0); // Build dummy provider to catch errors at load time.
checkDeadEntries(main);
} catch(FileNotFoundException e) {
throw new LoadException("No pack.yml file found in " + folder.getAbsolutePath(), e);
@@ -178,7 +176,6 @@ public class ConfigPackImpl implements ConfigPack {
selfLoader.load(packPostTemplate, configuration);
seededBiomeProvider = packPostTemplate.getProviderBuilder();
seededBiomeProvider.build(0); // Build dummy provider to catch errors at load time.
checkDeadEntries(main);
} catch(IOException e) {
throw new LoadException("Unable to load pack.yml from ZIP file", e);
@@ -295,7 +292,7 @@ public class ConfigPackImpl implements ConfigPack {
}
@Override
public SeededBuilder<BiomeProvider> getBiomeProviderBuilder() {
public BiomeProvider getBiomeProviderBuilder() {
return seededBiomeProvider;
}

View File

@@ -2,14 +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.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class ConfigPackPostTemplate implements ConfigTemplate {
@Value("biomes")
private SeededBuilder<BiomeProvider> providerBuilder;
private BiomeProvider providerBuilder;
public SeededBuilder<BiomeProvider> getProviderBuilder() {
public BiomeProvider getProviderBuilder() {
return providerBuilder;
}
}