remove SeededTerraBiome

This commit is contained in:
dfsek 2021-07-19 21:35:53 -07:00
parent 458fc422de
commit 03e4636ef9
19 changed files with 45 additions and 82 deletions

View File

@ -2,14 +2,14 @@ package com.dfsek.terra.addons.biome.image;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import java.awt.image.BufferedImage;
import java.util.stream.Collectors;
import java.util.HashSet;
public class ImageProviderTemplate /*extends BiomeProviderTemplate */ {
private final Registry<SeededTerraBiome> biomes;
private final Registry<TerraBiome> biomes;
@Value("image.name")
private BufferedImage image;
@ -18,12 +18,12 @@ public class ImageProviderTemplate /*extends BiomeProviderTemplate */ {
private int resolution;
public ImageProviderTemplate(Registry<SeededTerraBiome> set) {
public ImageProviderTemplate(Registry<TerraBiome> set) {
this.biomes = set;
}
//@Override
public BiomeProvider build(long seed) {
return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.build(seed)).collect(Collectors.toSet()), image, resolution, align);
public BiomeProvider build() {
return new ImageBiomeProvider(new HashSet<>(biomes.entries()), image, resolution, align);
}
}

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
public class NoiseSourceTemplate extends SourceTemplate {
@ -12,10 +12,10 @@ public class NoiseSourceTemplate extends SourceTemplate {
private NoiseSampler noise;
@Value("biomes")
private ProbabilityCollection<SeededTerraBiome> biomes;
private ProbabilityCollection<TerraBiome> biomes;
@Override
public BiomeSource build(long seed) {
return new RandomSource(biomes.map((biome) -> biome.build(seed), false), noise);
return new RandomSource(biomes, noise);
}
}

View File

@ -4,10 +4,8 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("unused")
@ -19,18 +17,14 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
private String defaultReplace;
@Value("default-to")
private ProbabilityCollection<SeededTerraBiome> defaultTo;
private ProbabilityCollection<TerraBiome> defaultTo;
@Value("replace")
private Map<SeededTerraBiome, ProbabilityCollection<SeededTerraBiome>> replace;
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace;
@Override
public BiomeMutator getMutator(long seed) {
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.build(seed), replacements.map(replacement -> replacement.build(seed), true)));
return new BorderListMutator(replaceMap, from, defaultReplace, noise, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true));
return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo);
}
}

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused")
public class BorderMutatorTemplate extends MutatorStageTemplate {
@ -15,10 +15,10 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
private String replace;
@Value("to")
private ProbabilityCollection<SeededTerraBiome> to;
private ProbabilityCollection<TerraBiome> to;
@Override
public BiomeMutator getMutator(long seed) {
return new BorderMutator(from, replace, noise, to.map(biomeBuilder -> biomeBuilder.build(seed), true));
return new BorderMutator(from, replace, noise, to);
}
}

View File

@ -4,10 +4,8 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("unused")
@ -16,17 +14,13 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
private String defaultFrom;
@Value("default-to")
private ProbabilityCollection<SeededTerraBiome> defaultTo;
private ProbabilityCollection<TerraBiome> defaultTo;
@Value("to")
private Map<SeededTerraBiome, ProbabilityCollection<SeededTerraBiome>> replace;
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace;
@Override
public BiomeMutator getMutator(long seed) {
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.build(seed), biomeBuilders.map(builder -> builder.build(seed), true)));
return new ReplaceListMutator(replaceMap, defaultFrom, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true), noise);
return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise);
}
}

View File

@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused")
public class ReplaceMutatorTemplate extends MutatorStageTemplate {
@ -12,10 +12,10 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
private String from;
@Value("to")
private ProbabilityCollection<SeededTerraBiome> to;
private ProbabilityCollection<TerraBiome> to;
@Override
public BiomeMutator getMutator(long seed) {
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.build(seed), true), noise);
return new ReplaceMutator(from, to, noise);
}
}

View File

@ -3,16 +3,16 @@ 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.util.seeded.SeededTerraBiome;
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> {
@Value("biome")
private SeededTerraBiome biome;
private TerraBiome biome;
@Override
public BiomeProvider build(long seed) {
return new SingleBiomeProvider(biome.build(seed));
return new SingleBiomeProvider(biome);
}
@Override

View File

@ -15,7 +15,7 @@ import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
@Addon("chunk-generator-noise-3d")
@ -37,8 +37,8 @@ public class NoiseChunkGenerator3DAddon extends TerraAddon implements EventListe
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(event.is(SeededTerraBiome.class)) {
event.getLoadedObject(SeededTerraBiome.class).getContext().put(event.load(new BiomePaletteTemplate()).get());
if(event.is(TerraBiome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomePaletteTemplate()).get());
}
}
}

View File

@ -8,7 +8,6 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.ConfigType;
import com.dfsek.terra.api.registry.OpenRegistry;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.function.Supplier;

View File

@ -3,7 +3,6 @@ package com.dfsek.terra.addons.biome;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.ConfigFactory;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
public class BiomeFactory implements ConfigFactory<BiomeTemplate, TerraBiome> {

View File

@ -10,7 +10,7 @@ import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@Addon("generation-stage-feature")
@ -30,8 +30,8 @@ public class FeatureGenerationAddon extends TerraAddon implements EventListener
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(event.is(SeededTerraBiome.class)) {
event.getLoadedObject(SeededTerraBiome.class).getContext().put(event.load(new BiomeFeaturesTemplate()).get());
if(event.is(TerraBiome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeFeaturesTemplate()).get());
}
}
}

View File

@ -9,7 +9,7 @@ import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@Addon("generation-stage-flora")
@ -31,8 +31,8 @@ public class FloraGenerationAddon extends TerraAddon implements EventListener {
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(event.is(SeededTerraBiome.class)) {
event.getLoadedObject(SeededTerraBiome.class).getContext().put(event.load(new BiomeFloraTemplate()).get());
if(event.is(TerraBiome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeFloraTemplate()).get());
}
}
}

View File

@ -10,7 +10,7 @@ import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@Addon("generation-stage-tree")
@ -31,8 +31,8 @@ public class TreeGenerationAddon extends TerraAddon implements EventListener {
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(event.is(SeededTerraBiome.class)) {
event.getLoadedObject(SeededTerraBiome.class).getContext().put(event.load(new BiomeTreeTemplate()).get());
if(event.is(TerraBiome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeTreeTemplate()).get());
}
}
}

View File

@ -1,12 +0,0 @@
package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.properties.PropertyHolder;
import com.dfsek.terra.api.properties.annotations.Linked;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.TerraBiome;
@Linked(TerraBiome.class)
public interface SeededTerraBiome extends SeededBuilder<TerraBiome>, PropertyHolder {
ProbabilityCollection<Biome> getVanillaBiomes();
}

View File

@ -2,9 +2,7 @@ package com.dfsek.terra.api.world.biome;
import com.dfsek.terra.api.properties.PropertyHolder;
import com.dfsek.terra.api.properties.annotations.Linked;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.World;
import java.util.Set;
@ -12,7 +10,6 @@ import java.util.Set;
/**
* Represents a custom biome
*/
@Linked(SeededTerraBiome.class)
public interface TerraBiome extends PropertyHolder {
/**

View File

@ -2,15 +2,11 @@ package com.dfsek.terra.config.pack;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.registry.OpenRegistry;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.SamplerCache;
import com.dfsek.terra.registry.LockedRegistryImpl;
import com.dfsek.terra.registry.OpenRegistryImpl;
import com.dfsek.terra.world.SamplerCacheImpl;
import java.lang.reflect.Type;
@ -34,10 +30,6 @@ public class WorldConfigImpl implements WorldConfig {
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
OpenRegistry<TerraBiome> biomeOpenRegistry = new OpenRegistryImpl<>();
pack.getCheckedRegistry(SeededTerraBiome.class).forEach((id, biome) -> biomeOpenRegistry.register(id, biome.build(world.getWorld().getSeed())));
registryMap.put(TerraBiome.class, new LockedRegistryImpl<>(biomeOpenRegistry));
this.provider = pack.getBiomeProviderBuilder().build(world.getWorld().getSeed());
}

View File

@ -28,10 +28,10 @@ import com.dfsek.terra.api.profiler.Profiler;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.Tree;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.commands.CommandUtil;
import com.dfsek.terra.commands.TerraCommandManager;
import com.dfsek.terra.config.GenericLoaders;
@ -364,7 +364,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
public void injectBiomes(BiomeRegistrationEvent event) {
logger.info("Registering biomes...");
Registry<Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY);
configRegistry.forEach(pack -> pack.getCheckedRegistry(SeededTerraBiome.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
configRegistry.forEach(pack -> pack.getCheckedRegistry(TerraBiome.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
logger.info("Biomes registered.");
}

View File

@ -3,7 +3,7 @@ package com.dfsek.terra.fabric.config;
import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import net.minecraft.util.Identifier;
import java.util.HashMap;
@ -14,17 +14,17 @@ import java.util.Set;
public class PostLoadCompatibilityOptions implements ConfigTemplate {
@Value("structures.inject-biome.exclude-biomes")
@Default
private Map<SeededTerraBiome, Set<Identifier>> excludedPerBiomeStructures = new HashMap<>();
private Map<TerraBiome, Set<Identifier>> excludedPerBiomeStructures = new HashMap<>();
@Value("features.inject-biome.exclude-biomes")
@Default
private Map<SeededTerraBiome, Set<Identifier>> excludedPerBiomeFeatures = new HashMap<>();
private Map<TerraBiome, Set<Identifier>> excludedPerBiomeFeatures = new HashMap<>();
public Map<SeededTerraBiome, Set<Identifier>> getExcludedPerBiomeFeatures() {
public Map<TerraBiome, Set<Identifier>> getExcludedPerBiomeFeatures() {
return excludedPerBiomeFeatures;
}
public Map<SeededTerraBiome, Set<Identifier>> getExcludedPerBiomeStructures() {
public Map<TerraBiome, Set<Identifier>> getExcludedPerBiomeStructures() {
return excludedPerBiomeStructures;
}
}

View File

@ -5,7 +5,7 @@ import com.dfsek.terra.api.block.entity.Container;
import com.dfsek.terra.api.block.entity.MobSpawner;
import com.dfsek.terra.api.block.entity.Sign;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.util.seeded.SeededTerraBiome;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.fabric.TerraFabricPlugin;
import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor;
import com.mojang.serialization.Lifecycle;
@ -43,7 +43,7 @@ public final class FabricUtil {
* @param pack The ConfigPack this biome belongs to.
* @return The Minecraft delegate biome.
*/
public static Biome createBiome(SeededTerraBiome biome, ConfigPack pack, DynamicRegistryManager registryManager) {
public static Biome createBiome(TerraBiome biome, ConfigPack pack, DynamicRegistryManager registryManager) {
// BiomeTemplate template = biome.getTemplate();
Map<String, Integer> colors = new HashMap<>(); // template.getColors();