TerraBiome -> Biome

This commit is contained in:
dfsek
2021-12-04 17:47:41 -07:00
parent 16c80a0976
commit 2ef2b61cc5
45 changed files with 193 additions and 191 deletions
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.biome.image; package com.dfsek.terra.addons.biome.image;
import com.dfsek.terra.api.world.biome.Biome;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.awt.Color; import java.awt.Color;
@@ -15,17 +16,16 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
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 ImageBiomeProvider implements BiomeProvider { public class ImageBiomeProvider implements BiomeProvider {
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>(); private final Map<Color, Biome> colorBiomeMap = new HashMap<>();
private final BufferedImage image; private final BufferedImage image;
private final int resolution; private final int resolution;
private final Align align; private final Align align;
public ImageBiomeProvider(Set<TerraBiome> registry, BufferedImage image, int resolution, Align align) { public ImageBiomeProvider(Set<Biome> registry, BufferedImage image, int resolution, Align align) {
this.image = image; this.image = image;
this.resolution = resolution; this.resolution = resolution;
this.align = align; this.align = align;
@@ -37,7 +37,7 @@ public class ImageBiomeProvider implements BiomeProvider {
} }
@Override @Override
public TerraBiome getBiome(int x, int z, long seed) { public Biome getBiome(int x, int z, long seed) {
x /= resolution; x /= resolution;
z /= resolution; z /= resolution;
Color color = align.getColor(image, x, z); Color color = align.getColor(image, x, z);
@@ -52,7 +52,7 @@ public class ImageBiomeProvider implements BiomeProvider {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes() { public Iterable<Biome> getBiomes() {
return colorBiomeMap.values(); return colorBiomeMap.values();
} }
@@ -19,7 +19,7 @@ import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
@@ -41,7 +41,7 @@ public class ImageBiomeProviderAddon implements AddonInitializer {
.then(event -> { .then(event -> {
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry( CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
PROVIDER_REGISTRY_KEY); PROVIDER_REGISTRY_KEY);
providerRegistry.register("IMAGE", () -> new ImageProviderTemplate(event.getPack().getRegistry(TerraBiome.class))); providerRegistry.register("IMAGE", () -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class)));
}) })
.failThrough(); .failThrough();
} }
@@ -15,13 +15,13 @@ import java.awt.image.BufferedImage;
import java.util.HashSet; import java.util.HashSet;
import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
@SuppressWarnings("FieldMayBeFinal") @SuppressWarnings("FieldMayBeFinal")
public class ImageProviderTemplate implements ObjectTemplate<BiomeProvider> { public class ImageProviderTemplate implements ObjectTemplate<BiomeProvider> {
private final Registry<TerraBiome> biomes; private final Registry<Biome> biomes;
@Value("resolution") @Value("resolution")
@Default @Default
private int resolution = 1; private int resolution = 1;
@@ -30,7 +30,7 @@ public class ImageProviderTemplate implements ObjectTemplate<BiomeProvider> {
@Value("image.align") @Value("image.align")
private ImageBiomeProvider.Align align; private ImageBiomeProvider.Align align;
public ImageProviderTemplate(Registry<TerraBiome> set) { public ImageProviderTemplate(Registry<Biome> set) {
this.biomes = set; this.biomes = set;
} }
@@ -12,24 +12,24 @@ import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import com.dfsek.terra.api.util.vector.Vector2; import com.dfsek.terra.api.util.vector.Vector2;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BiomeHolderImpl implements BiomeHolder { public class BiomeHolderImpl implements BiomeHolder {
private final Vector2 origin; private final Vector2 origin;
private final int width; private final int width;
private final int offset; private final int offset;
private TerraBiome[][] biomes; private Biome[][] biomes;
public BiomeHolderImpl(int width, Vector2 origin) { public BiomeHolderImpl(int width, Vector2 origin) {
width += 4; width += 4;
this.width = width; this.width = width;
biomes = new TerraBiome[width][width]; biomes = new Biome[width][width];
this.origin = origin; this.origin = origin;
this.offset = 2; this.offset = 2;
} }
private BiomeHolderImpl(TerraBiome[][] biomes, Vector2 origin, int width, int offset) { private BiomeHolderImpl(Biome[][] biomes, Vector2 origin, int width, int offset) {
this.biomes = biomes; this.biomes = biomes;
this.origin = origin; this.origin = origin;
this.width = width; this.width = width;
@@ -38,10 +38,10 @@ public class BiomeHolderImpl implements BiomeHolder {
@Override @Override
public BiomeHolder expand(BiomeExpander expander, long seed) { public BiomeHolder expand(BiomeExpander expander, long seed) {
TerraBiome[][] old = biomes; Biome[][] old = biomes;
int newWidth = width * 2 - 1; int newWidth = width * 2 - 1;
biomes = new TerraBiome[newWidth][newWidth]; biomes = new Biome[newWidth][newWidth];
for(int x = 0; x < width; x++) { for(int x = 0; x < width; x++) {
for(int z = 0; z < width; z++) { for(int z = 0; z < width; z++) {
@@ -80,14 +80,14 @@ public class BiomeHolderImpl implements BiomeHolder {
} }
@Override @Override
public TerraBiome getBiome(int x, int z) { public Biome getBiome(int x, int z) {
x += offset; x += offset;
z += offset; z += offset;
return getBiomeRaw(x, z); return getBiomeRaw(x, z);
} }
@Override @Override
public TerraBiome getBiomeRaw(int x, int z) { public Biome getBiomeRaw(int x, int z) {
if(x >= width || z >= width || x < 0 || z < 0) return null; if(x >= width || z >= width || x < 0 || z < 0) return null;
return biomes[x][z]; return biomes[x][z];
} }
@@ -9,6 +9,8 @@ package com.dfsek.terra.addons.biome.pipeline;
import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.world.biome.Biome;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
@@ -18,7 +20,6 @@ import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
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 java.util.HashSet; import java.util.HashSet;
@@ -50,7 +51,7 @@ public class BiomePipelineProvider implements BiomeProvider {
} }
@Override @Override
public TerraBiome getBiome(int x, int z, long seed) { public Biome getBiome(int x, int z, long seed) {
x += mutator.noise(seed + 1, x, z) * noiseAmp; x += mutator.noise(seed + 1, x, z) * noiseAmp;
z += mutator.noise(seed + 2, x, z) * noiseAmp; z += mutator.noise(seed + 2, x, z) * noiseAmp;
@@ -66,10 +67,10 @@ public class BiomePipelineProvider implements BiomeProvider {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes() { public Iterable<Biome> getBiomes() {
Set<TerraBiome> biomeSet = new HashSet<>(); Set<Biome> biomeSet = new HashSet<>();
pipeline.getSource().getBiomes().forEach(biomeSet::add); pipeline.getSource().getBiomes().forEach(biomeSet::add);
Iterable<TerraBiome> result = biomeSet; Iterable<Biome> result = biomeSet;
for(Stage stage : pipeline.getStages()) { for(Stage stage : pipeline.getStages()) {
result = stage.getBiomes(result); // pass through all stages result = stage.getBiomes(result); // pass through all stages
} }
@@ -7,9 +7,9 @@
package com.dfsek.terra.addons.biome.pipeline.api; package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeExpander { public interface BiomeExpander {
TerraBiome getBetween(double x, double z, long seed, TerraBiome... others); Biome getBetween(double x, double z, long seed, Biome... others);
} }
@@ -8,7 +8,7 @@
package com.dfsek.terra.addons.biome.pipeline.api; package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeHolder { public interface BiomeHolder {
@@ -18,7 +18,7 @@ public interface BiomeHolder {
void fill(BiomeSource source, long seed); void fill(BiomeSource source, long seed);
TerraBiome getBiome(int x, int z); Biome getBiome(int x, int z);
TerraBiome getBiomeRaw(int x, int z); Biome getBiomeRaw(int x, int z);
} }
@@ -7,13 +7,13 @@
package com.dfsek.terra.addons.biome.pipeline.api; package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeMutator { public interface BiomeMutator {
TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed); Biome mutate(ViewPoint viewPoint, double x, double z, long seed);
default Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { default Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
return biomes; return biomes;
} }
@@ -29,7 +29,7 @@ public interface BiomeMutator {
} }
public TerraBiome getBiome(int x, int z) { public Biome getBiome(int x, int z) {
return biomes.getBiomeRaw(x + offX, z + offZ); return biomes.getBiomeRaw(x + offX, z + offZ);
} }
} }
@@ -7,7 +7,7 @@
package com.dfsek.terra.addons.biome.pipeline.api; package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface Stage { public interface Stage {
@@ -15,5 +15,5 @@ public interface Stage {
boolean isExpansion(); boolean isExpansion();
Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes); Iterable<Biome> getBiomes(Iterable<Biome> biomes);
} }
@@ -14,7 +14,7 @@ import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class NoiseSourceTemplate extends SourceTemplate { public class NoiseSourceTemplate extends SourceTemplate {
@@ -22,7 +22,7 @@ public class NoiseSourceTemplate extends SourceTemplate {
private @Meta NoiseSampler noise; private @Meta NoiseSampler noise;
@Value("biomes") @Value("biomes")
private @Meta ProbabilityCollection<@Meta TerraBiome> biomes; private @Meta ProbabilityCollection<@Meta Biome> biomes;
@Override @Override
public BiomeSource get() { public BiomeSource get() {
@@ -17,7 +17,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -29,10 +29,10 @@ public class BorderListMutatorTemplate extends StageTemplate {
private @Meta String defaultReplace; private @Meta String defaultReplace;
@Value("default-to") @Value("default-to")
private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo; private @Meta ProbabilityCollection<@Meta Biome> defaultTo;
@Value("replace") @Value("replace")
private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace; private @Meta Map<@Meta Biome, @Meta ProbabilityCollection<@Meta Biome>> replace;
@Override @Override
@@ -15,7 +15,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -27,7 +27,7 @@ public class BorderMutatorTemplate extends StageTemplate {
private @Meta String replace; private @Meta String replace;
@Value("to") @Value("to")
private @Meta ProbabilityCollection<@Meta TerraBiome> to; private @Meta ProbabilityCollection<@Meta Biome> to;
@Override @Override
public Stage get() { public Stage get() {
@@ -17,7 +17,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -26,10 +26,10 @@ public class ReplaceListMutatorTemplate extends StageTemplate {
private @Meta String defaultFrom; private @Meta String defaultFrom;
@Value("default-to") @Value("default-to")
private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo; private @Meta ProbabilityCollection<@Meta Biome> defaultTo;
@Value("to") @Value("to")
private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace; private @Meta Map<@Meta Biome, @Meta ProbabilityCollection<@Meta Biome>> replace;
@Override @Override
public Stage get() { public Stage get() {
@@ -15,7 +15,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -24,7 +24,7 @@ public class ReplaceMutatorTemplate extends StageTemplate {
private @Meta String from; private @Meta String from;
@Value("to") @Value("to")
private @Meta ProbabilityCollection<@Meta TerraBiome> to; private @Meta ProbabilityCollection<@Meta Biome> to;
@Override @Override
public Stage get() { public Stage get() {
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.biome.pipeline.expand;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander; import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class FractalExpander implements BiomeExpander { public class FractalExpander implements BiomeExpander {
@@ -21,7 +21,7 @@ public class FractalExpander implements BiomeExpander {
} }
@Override @Override
public TerraBiome getBetween(double x, double z, long seed, TerraBiome... others) { public Biome getBetween(double x, double z, long seed, Biome... others) {
return others[MathUtil.normalizeIndex(sampler.noise(seed, x, z), others.length)]; return others[MathUtil.normalizeIndex(sampler.noise(seed, x, z), others.length)];
} }
} }
@@ -15,18 +15,18 @@ import java.util.Set;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BorderListMutator implements BiomeMutator { public class BorderListMutator implements BiomeMutator {
private final String border; private final String border;
private final NoiseSampler noiseSampler; private final NoiseSampler noiseSampler;
private final ProbabilityCollection<TerraBiome> replaceDefault; private final ProbabilityCollection<Biome> replaceDefault;
private final String defaultReplace; private final String defaultReplace;
private final Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace; private final Map<Biome, ProbabilityCollection<Biome>> replace;
public BorderListMutator(Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace, String border, String defaultReplace, public BorderListMutator(Map<Biome, ProbabilityCollection<Biome>> replace, String border, String defaultReplace,
NoiseSampler noiseSampler, ProbabilityCollection<TerraBiome> replaceDefault) { NoiseSampler noiseSampler, ProbabilityCollection<Biome> replaceDefault) {
this.border = border; this.border = border;
this.noiseSampler = noiseSampler; this.noiseSampler = noiseSampler;
this.replaceDefault = replaceDefault; this.replaceDefault = replaceDefault;
@@ -35,20 +35,20 @@ public class BorderListMutator implements BiomeMutator {
} }
@Override @Override
public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { public Biome mutate(ViewPoint viewPoint, double x, double z, long seed) {
TerraBiome origin = viewPoint.getBiome(0, 0); Biome origin = viewPoint.getBiome(0, 0);
if(origin.getTags().contains(defaultReplace)) { if(origin.getTags().contains(defaultReplace)) {
for(int xi = -1; xi <= 1; xi++) { for(int xi = -1; xi <= 1; xi++) {
for(int zi = -1; zi <= 1; zi++) { for(int zi = -1; zi <= 1; zi++) {
if(xi == 0 && zi == 0) continue; if(xi == 0 && zi == 0) continue;
TerraBiome current = viewPoint.getBiome(xi, zi); Biome current = viewPoint.getBiome(xi, zi);
if(current == null) continue; if(current == null) continue;
if(current.getTags().contains(border)) { if(current.getTags().contains(border)) {
if(replace.containsKey(origin)) { if(replace.containsKey(origin)) {
TerraBiome biome = replace.get(origin).get(noiseSampler, x, z, seed); Biome biome = replace.get(origin).get(noiseSampler, x, z, seed);
return biome == null ? origin : biome; return biome == null ? origin : biome;
} }
TerraBiome biome = replaceDefault.get(noiseSampler, x, z, seed); Biome biome = replaceDefault.get(noiseSampler, x, z, seed);
return biome == null ? origin : biome; return biome == null ? origin : biome;
} }
} }
@@ -58,8 +58,8 @@ public class BorderListMutator implements BiomeMutator {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
Set<TerraBiome> biomeSet = new HashSet<>(); Set<Biome> biomeSet = new HashSet<>();
biomes.forEach(biomeSet::add); biomes.forEach(biomeSet::add);
biomeSet.addAll(replaceDefault.getContents().stream().filter(Objects::nonNull).toList()); biomeSet.addAll(replaceDefault.getContents().stream().filter(Objects::nonNull).toList());
replace.forEach((biome, collection) -> biomeSet.addAll(collection.getContents())); replace.forEach((biome, collection) -> biomeSet.addAll(collection.getContents()));
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.biome.pipeline.mutator;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import java.util.HashSet; import java.util.HashSet;
import java.util.Objects; import java.util.Objects;
@@ -20,10 +20,10 @@ import java.util.Set;
public class BorderMutator implements BiomeMutator { public class BorderMutator implements BiomeMutator {
private final String border; private final String border;
private final NoiseSampler noiseSampler; private final NoiseSampler noiseSampler;
private final ProbabilityCollection<TerraBiome> replace; private final ProbabilityCollection<Biome> replace;
private final String replaceTag; private final String replaceTag;
public BorderMutator(String border, String replaceTag, NoiseSampler noiseSampler, ProbabilityCollection<TerraBiome> replace) { public BorderMutator(String border, String replaceTag, NoiseSampler noiseSampler, ProbabilityCollection<Biome> replace) {
this.border = border; this.border = border;
this.noiseSampler = noiseSampler; this.noiseSampler = noiseSampler;
this.replace = replace; this.replace = replace;
@@ -31,16 +31,16 @@ public class BorderMutator implements BiomeMutator {
} }
@Override @Override
public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { public Biome mutate(ViewPoint viewPoint, double x, double z, long seed) {
TerraBiome origin = viewPoint.getBiome(0, 0); Biome origin = viewPoint.getBiome(0, 0);
if(origin.getTags().contains(replaceTag)) { if(origin.getTags().contains(replaceTag)) {
for(int xi = -1; xi <= 1; xi++) { for(int xi = -1; xi <= 1; xi++) {
for(int zi = -1; zi <= 1; zi++) { for(int zi = -1; zi <= 1; zi++) {
if(xi == 0 && zi == 0) continue; if(xi == 0 && zi == 0) continue;
TerraBiome current = viewPoint.getBiome(xi, zi); Biome current = viewPoint.getBiome(xi, zi);
if(current == null) continue; if(current == null) continue;
if(current.getTags().contains(border)) { if(current.getTags().contains(border)) {
TerraBiome biome = replace.get(noiseSampler, x, z, seed); Biome biome = replace.get(noiseSampler, x, z, seed);
return biome == null ? origin : biome; return biome == null ? origin : biome;
} }
} }
@@ -50,8 +50,8 @@ public class BorderMutator implements BiomeMutator {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
Set<TerraBiome> biomeSet = new HashSet<>(); Set<Biome> biomeSet = new HashSet<>();
biomes.forEach(biomeSet::add); biomes.forEach(biomeSet::add);
biomeSet.addAll(replace.getContents().stream().filter(Objects::nonNull).toList()); biomeSet.addAll(replace.getContents().stream().filter(Objects::nonNull).toList());
return biomeSet; return biomeSet;
@@ -15,17 +15,17 @@ import java.util.stream.Stream;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class ReplaceListMutator implements BiomeMutator { public class ReplaceListMutator implements BiomeMutator {
private final Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace; private final Map<Biome, ProbabilityCollection<Biome>> replace;
private final NoiseSampler sampler; private final NoiseSampler sampler;
private final ProbabilityCollection<TerraBiome> replaceDefault; private final ProbabilityCollection<Biome> replaceDefault;
private final String defaultTag; private final String defaultTag;
public ReplaceListMutator(Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace, String defaultTag, public ReplaceListMutator(Map<Biome, ProbabilityCollection<Biome>> replace, String defaultTag,
ProbabilityCollection<TerraBiome> replaceDefault, NoiseSampler sampler) { ProbabilityCollection<Biome> replaceDefault, NoiseSampler sampler) {
this.replace = replace; this.replace = replace;
this.sampler = sampler; this.sampler = sampler;
this.defaultTag = defaultTag; this.defaultTag = defaultTag;
@@ -33,24 +33,24 @@ public class ReplaceListMutator implements BiomeMutator {
} }
@Override @Override
public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { public Biome mutate(ViewPoint viewPoint, double x, double z, long seed) {
TerraBiome center = viewPoint.getBiome(0, 0); Biome center = viewPoint.getBiome(0, 0);
if(replace.containsKey(center)) { if(replace.containsKey(center)) {
TerraBiome biome = replace.get(center).get(sampler, x, z, seed); Biome biome = replace.get(center).get(sampler, x, z, seed);
return biome == null ? viewPoint.getBiome(0, 0) : biome; return biome == null ? viewPoint.getBiome(0, 0) : biome;
} }
if(viewPoint.getBiome(0, 0).getTags().contains(defaultTag)) { if(viewPoint.getBiome(0, 0).getTags().contains(defaultTag)) {
TerraBiome biome = replaceDefault.get(sampler, x, z, seed); Biome biome = replaceDefault.get(sampler, x, z, seed);
return biome == null ? viewPoint.getBiome(0, 0) : biome; return biome == null ? viewPoint.getBiome(0, 0) : biome;
} }
return center; return center;
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
Set<TerraBiome> biomeSet = new HashSet<>(); Set<Biome> biomeSet = new HashSet<>();
Set<TerraBiome> reject = new HashSet<>(); Set<Biome> reject = new HashSet<>();
biomes.forEach(biome -> { biomes.forEach(biome -> {
if(!biome.getTags().contains(defaultTag) && !replace.containsKey(biome)) { if(!biome.getTags().contains(defaultTag) && !replace.containsKey(biome)) {
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.biome.pipeline.mutator;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@@ -19,28 +19,28 @@ import java.util.stream.Stream;
public class ReplaceMutator implements BiomeMutator { public class ReplaceMutator implements BiomeMutator {
private final String replaceableTag; private final String replaceableTag;
private final ProbabilityCollection<TerraBiome> replace; private final ProbabilityCollection<Biome> replace;
private final NoiseSampler sampler; private final NoiseSampler sampler;
public ReplaceMutator(String replaceable, ProbabilityCollection<TerraBiome> replace, NoiseSampler sampler) { public ReplaceMutator(String replaceable, ProbabilityCollection<Biome> replace, NoiseSampler sampler) {
this.replaceableTag = replaceable; this.replaceableTag = replaceable;
this.replace = replace; this.replace = replace;
this.sampler = sampler; this.sampler = sampler;
} }
@Override @Override
public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { public Biome mutate(ViewPoint viewPoint, double x, double z, long seed) {
if(viewPoint.getBiome(0, 0).getTags().contains(replaceableTag)) { if(viewPoint.getBiome(0, 0).getTags().contains(replaceableTag)) {
TerraBiome biome = replace.get(sampler, x, z, seed); Biome biome = replace.get(sampler, x, z, seed);
return biome == null ? viewPoint.getBiome(0, 0) : biome; return biome == null ? viewPoint.getBiome(0, 0) : biome;
} }
return viewPoint.getBiome(0, 0); return viewPoint.getBiome(0, 0);
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
Set<TerraBiome> biomeSet = new HashSet<>(); Set<Biome> biomeSet = new HashSet<>();
Set<TerraBiome> reject = new HashSet<>(); Set<Biome> reject = new HashSet<>();
biomes.forEach(biome -> { biomes.forEach(biome -> {
if(!biome.getTags().contains(replaceableTag)) { if(!biome.getTags().contains(replaceableTag)) {
biomeSet.add(biome); biomeSet.add(biome);
@@ -12,7 +12,7 @@ import java.util.Objects;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class SmoothMutator implements BiomeMutator { public class SmoothMutator implements BiomeMutator {
@@ -24,11 +24,11 @@ public class SmoothMutator implements BiomeMutator {
} }
@Override @Override
public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { public Biome mutate(ViewPoint viewPoint, double x, double z, long seed) {
TerraBiome top = viewPoint.getBiome(1, 0); Biome top = viewPoint.getBiome(1, 0);
TerraBiome bottom = viewPoint.getBiome(-1, 0); Biome bottom = viewPoint.getBiome(-1, 0);
TerraBiome left = viewPoint.getBiome(0, 1); Biome left = viewPoint.getBiome(0, 1);
TerraBiome right = viewPoint.getBiome(0, -1); Biome right = viewPoint.getBiome(0, -1);
boolean vert = Objects.equals(top, bottom) && top != null; boolean vert = Objects.equals(top, bottom) && top != null;
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.biome.pipeline.source; package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeSource { public interface BiomeSource {
TerraBiome getBiome(double x, double z, long seed); Biome getBiome(double x, double z, long seed);
Iterable<TerraBiome> getBiomes(); Iterable<Biome> getBiomes();
} }
@@ -9,25 +9,25 @@ package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class NoiseSource implements BiomeSource { public class NoiseSource implements BiomeSource {
private final ProbabilityCollection<TerraBiome> biomes; private final ProbabilityCollection<Biome> biomes;
private final NoiseSampler sampler; private final NoiseSampler sampler;
public NoiseSource(ProbabilityCollection<TerraBiome> biomes, NoiseSampler sampler) { public NoiseSource(ProbabilityCollection<Biome> biomes, NoiseSampler sampler) {
this.biomes = biomes; this.biomes = biomes;
this.sampler = sampler; this.sampler = sampler;
} }
@Override @Override
public TerraBiome getBiome(double x, double z, long seed) { public Biome getBiome(double x, double z, long seed) {
return biomes.get(sampler, x, z, seed); return biomes.get(sampler, x, z, seed);
} }
@Override @Override
public Iterable<TerraBiome> getBiomes() { public Iterable<Biome> getBiomes() {
return biomes.getContents(); return biomes.getContents();
} }
} }
@@ -10,9 +10,7 @@ package com.dfsek.terra.addons.biome.pipeline.stages;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander; import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import java.util.Collections;
public class ExpanderStage implements Stage { public class ExpanderStage implements Stage {
@@ -33,7 +31,7 @@ public class ExpanderStage implements Stage {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
return biomes; return biomes;
} }
} }
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.biome.pipeline.stages;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class MutatorStage implements Stage { public class MutatorStage implements Stage {
@@ -32,7 +32,7 @@ public class MutatorStage implements Stage {
} }
@Override @Override
public Iterable<TerraBiome> getBiomes(Iterable<TerraBiome> biomes) { public Iterable<Biome> getBiomes(Iterable<Biome> biomes) {
return mutator.getBiomes(biomes); return mutator.getBiomes(biomes);
} }
@@ -7,26 +7,26 @@
package com.dfsek.terra.addons.biome.single; package com.dfsek.terra.addons.biome.single;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import java.util.Collections; import java.util.Collections;
public class SingleBiomeProvider implements BiomeProvider { public class SingleBiomeProvider implements BiomeProvider {
private final TerraBiome biome; private final Biome biome;
public SingleBiomeProvider(TerraBiome biome) { public SingleBiomeProvider(Biome biome) {
this.biome = biome; this.biome = biome;
} }
@Override @Override
public TerraBiome getBiome(int x, int z, long seed) { public Biome getBiome(int x, int z, long seed) {
return biome; return biome;
} }
@Override @Override
public Iterable<TerraBiome> getBiomes() { public Iterable<Biome> getBiomes() {
return Collections.singleton(biome); return Collections.singleton(biome);
} }
} }
@@ -11,13 +11,13 @@ 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.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider> { public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {
@Value("biome") @Value("biome")
private @Meta TerraBiome biome; private @Meta Biome biome;
@Override @Override
public BiomeProvider get() { public BiomeProvider get() {
@@ -20,7 +20,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.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider; import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
@@ -54,8 +54,8 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer {
.getHandler(FunctionalEventHandler.class) .getHandler(FunctionalEventHandler.class)
.register(addon, ConfigurationLoadEvent.class) .register(addon, ConfigurationLoadEvent.class)
.then(event -> { .then(event -> {
if(event.is(TerraBiome.class)) { if(event.is(Biome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomePaletteTemplate()).get()); event.getLoadedObject(Biome.class).getContext().put(event.load(new BiomePaletteTemplate()).get());
} }
}) })
.failThrough(); .failThrough();
@@ -8,6 +8,8 @@
package com.dfsek.terra.addons.chunkgenerator.generation.generators; package com.dfsek.terra.addons.chunkgenerator.generation.generators;
import com.dfsek.terra.api.world.biome.Biome;
import net.jafama.FastMath; import net.jafama.FastMath;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -25,7 +27,6 @@ import com.dfsek.terra.api.util.math.Sampler;
import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.WritableWorld;
import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.GenerationSettings;
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 com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
@@ -70,7 +71,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator {
int cx = xOrig + x; int cx = xOrig + x;
int cz = zOrig + z; int cz = zOrig + z;
TerraBiome biome = grid.getBiome(cx, cz, seed); Biome biome = grid.getBiome(cx, cz, seed);
PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class);
@@ -107,7 +108,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator {
@Override @Override
public BlockState getBlock(ServerWorld world, int x, int y, int z) { public BlockState getBlock(ServerWorld world, int x, int y, int z) {
BiomeProvider provider = world.getBiomeProvider(); BiomeProvider provider = world.getBiomeProvider();
TerraBiome biome = provider.getBiome(x, z, world.getSeed()); Biome biome = provider.getBiome(x, z, world.getSeed());
Sampler sampler = samplerCache.get(x, z, world); Sampler sampler = samplerCache.get(x, z, world);
PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class);
@@ -18,11 +18,11 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.config.ConfigType;
import com.dfsek.terra.api.registry.OpenRegistry; import com.dfsek.terra.api.registry.OpenRegistry;
import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BiomeConfigType implements ConfigType<BiomeTemplate, TerraBiome> { public class BiomeConfigType implements ConfigType<BiomeTemplate, Biome> {
public static final TypeKey<TerraBiome> BIOME_TYPE_TOKEN = new TypeKey<>() { public static final TypeKey<Biome> BIOME_TYPE_TOKEN = new TypeKey<>() {
}; };
private final BiomeFactory factory; private final BiomeFactory factory;
@@ -31,8 +31,8 @@ public class BiomeConfigType implements ConfigType<BiomeTemplate, TerraBiome> {
} }
@Override @Override
public Supplier<OpenRegistry<TerraBiome>> registrySupplier(ConfigPack pack) { public Supplier<OpenRegistry<Biome>> registrySupplier(ConfigPack pack) {
return () -> pack.getRegistryFactory().create(registry -> (TypeLoader<TerraBiome>) (t, c, loader) -> { return () -> pack.getRegistryFactory().create(registry -> (TypeLoader<Biome>) (t, c, loader) -> {
if(c.equals("SELF")) return null; if(c.equals("SELF")) return null;
return registry.get((String) c).orElseThrow(() -> new LoadException( return registry.get((String) c).orElseThrow(() -> new LoadException(
"No such " + t.getType().getTypeName() + " matching \"" + c + "\" was found in this registry.")); "No such " + t.getType().getTypeName() + " matching \"" + c + "\" was found in this registry."));
@@ -45,12 +45,12 @@ public class BiomeConfigType implements ConfigType<BiomeTemplate, TerraBiome> {
} }
@Override @Override
public ConfigFactory<BiomeTemplate, TerraBiome> getFactory() { public ConfigFactory<BiomeTemplate, Biome> getFactory() {
return factory; return factory;
} }
@Override @Override
public TypeKey<TerraBiome> getTypeKey() { public TypeKey<Biome> getTypeKey() {
return BIOME_TYPE_TOKEN; return BIOME_TYPE_TOKEN;
} }
} }
@@ -10,10 +10,10 @@ package com.dfsek.terra.addons.biome;
import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigFactory;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BiomeFactory implements ConfigFactory<BiomeTemplate, TerraBiome> { public class BiomeFactory implements ConfigFactory<BiomeTemplate, Biome> {
private final ConfigPack pack; private final ConfigPack pack;
public BiomeFactory(ConfigPack pack) { public BiomeFactory(ConfigPack pack) {
@@ -21,7 +21,7 @@ public class BiomeFactory implements ConfigFactory<BiomeTemplate, TerraBiome> {
} }
@Override @Override
public TerraBiome build(BiomeTemplate template, Platform platform) { public Biome build(BiomeTemplate template, Platform platform) {
UserDefinedGenerationSettings generator = new UserDefinedGenerationSettings(template.getNoiseEquation(), UserDefinedGenerationSettings generator = new UserDefinedGenerationSettings(template.getNoiseEquation(),
template.getElevationEquation(), template.getElevationEquation(),
template.getCarvingEquation(), template.getBiomeNoise(), template.getCarvingEquation(), template.getBiomeNoise(),
@@ -11,15 +11,15 @@ import java.util.Set;
import com.dfsek.terra.api.properties.Context; import com.dfsek.terra.api.properties.Context;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.PlatformBiome; import com.dfsek.terra.api.world.biome.PlatformBiome;
import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.GenerationSettings;
import com.dfsek.terra.api.world.biome.TerraBiome;
/** /**
* Class representing a config-defined biome * Class representing a config-defined biome
*/ */
public class UserDefinedBiome implements TerraBiome { public class UserDefinedBiome implements Biome {
private final UserDefinedGenerationSettings gen; private final UserDefinedGenerationSettings gen;
private final ProbabilityCollection<PlatformBiome> vanilla; private final ProbabilityCollection<PlatformBiome> vanilla;
private final String id; private final String id;
@@ -9,13 +9,13 @@ package com.dfsek.terra.addons.biome.command.biome;
import com.dfsek.terra.api.world.ServerWorld; import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.biome.Biome;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3;
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;
@@ -25,7 +25,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class AsyncBiomeFinder implements Runnable { public class AsyncBiomeFinder implements Runnable {
protected final BiomeProvider provider; protected final BiomeProvider provider;
protected final TerraBiome target; protected final Biome target;
protected final int startRadius; protected final int startRadius;
protected final int maxRadius; protected final int maxRadius;
protected final int centerX; protected final int centerX;
@@ -35,7 +35,7 @@ public class AsyncBiomeFinder implements Runnable {
private final Consumer<Vector3> callback; private final Consumer<Vector3> callback;
protected int searchSize = 1; protected int searchSize = 1;
public AsyncBiomeFinder(BiomeProvider provider, TerraBiome target, @NotNull Vector3 origin, ServerWorld world, int startRadius, int maxRadius, public AsyncBiomeFinder(BiomeProvider provider, Biome target, @NotNull Vector3 origin, ServerWorld world, int startRadius, int maxRadius,
Consumer<Vector3> callback, Platform platform) { Consumer<Vector3> callback, Platform platform) {
this.provider = provider; this.provider = provider;
this.target = target; this.target = target;
@@ -97,12 +97,12 @@ public class AsyncBiomeFinder implements Runnable {
* *
* @return TerraBiome at coordinates * @return TerraBiome at coordinates
*/ */
public boolean isValid(int x, int z, TerraBiome target) { public boolean isValid(int x, int z, Biome target) {
int res = platform.getTerraConfig().getBiomeSearchResolution(); int res = platform.getTerraConfig().getBiomeSearchResolution();
return getProvider().getBiome(x * res, z * res, world.getSeed()).equals(target); return getProvider().getBiome(x * res, z * res, world.getSeed()).equals(target);
} }
public TerraBiome getTarget() { public Biome getTarget() {
return target; return target;
} }
@@ -16,7 +16,7 @@ import com.dfsek.terra.api.command.annotation.Argument;
import com.dfsek.terra.api.command.annotation.Command; import com.dfsek.terra.api.command.annotation.Command;
import com.dfsek.terra.api.command.annotation.inject.ArgumentTarget; import com.dfsek.terra.api.command.annotation.inject.ArgumentTarget;
import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@Command(arguments = @Argument( @Command(arguments = @Argument(
@@ -26,7 +26,7 @@ import com.dfsek.terra.api.world.biome.TerraBiome;
)) ))
public class BiomeInfoCommand implements CommandTemplate { public class BiomeInfoCommand implements CommandTemplate {
@ArgumentTarget("biome") @ArgumentTarget("biome")
private TerraBiome biome; private Biome biome;
@Override @Override
public void execute(CommandSender sender) { public void execute(CommandSender sender) {
@@ -25,7 +25,7 @@ import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
@PlayerCommand @PlayerCommand
@@ -52,7 +52,7 @@ public class BiomeLocateCommand implements CommandTemplate {
private Integer radius; private Integer radius;
@ArgumentTarget("biome") @ArgumentTarget("biome")
private TerraBiome biome; private Biome biome;
@SwitchTarget("teleport") @SwitchTarget("teleport")
private boolean teleport; private boolean teleport;
@@ -12,16 +12,16 @@ import com.dfsek.terra.api.command.arg.ArgumentParser;
import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BiomeArgumentParser implements ArgumentParser<TerraBiome> { public class BiomeArgumentParser implements ArgumentParser<Biome> {
@Inject @Inject
private Platform platform; private Platform platform;
@Override @Override
public TerraBiome parse(CommandSender sender, String arg) { public Biome parse(CommandSender sender, String arg) {
Player player = (Player) sender; Player player = (Player) sender;
return player.world().getPack().getRegistry(TerraBiome.class).get(arg).orElse(null); return player.world().getPack().getRegistry(Biome.class).get(arg).orElse(null);
} }
} }
@@ -15,7 +15,7 @@ import com.dfsek.terra.api.command.tab.TabCompleter;
import com.dfsek.terra.api.entity.CommandSender; import com.dfsek.terra.api.entity.CommandSender;
import com.dfsek.terra.api.entity.Player; import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public class BiomeTabCompleter implements TabCompleter { public class BiomeTabCompleter implements TabCompleter {
@@ -25,7 +25,7 @@ public class BiomeTabCompleter implements TabCompleter {
@Override @Override
public List<String> complete(CommandSender sender) { public List<String> complete(CommandSender sender) {
Player player = (Player) sender; Player player = (Player) sender;
return player.world().getPack().getRegistry(TerraBiome.class).entries().stream().map(TerraBiome::getID).collect( return player.world().getPack().getRegistry(Biome.class).entries().stream().map(Biome::getID).collect(
Collectors.toList()); Collectors.toList());
} }
} }
@@ -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.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider; import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
@@ -40,8 +40,8 @@ public class FeatureGenerationAddon implements AddonInitializer {
.getHandler(FunctionalEventHandler.class) .getHandler(FunctionalEventHandler.class)
.register(addon, ConfigurationLoadEvent.class) .register(addon, ConfigurationLoadEvent.class)
.then(event -> { .then(event -> {
if(event.is(TerraBiome.class)) { if(event.is(Biome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeFeaturesTemplate()).get()); event.getLoadedObject(Biome.class).getContext().put(event.load(new BiomeFeaturesTemplate()).get());
} }
}) })
.failThrough(); .failThrough();
@@ -8,7 +8,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.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject; import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider; import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
@@ -33,8 +33,8 @@ public class StructureGenerationAddon implements AddonInitializer {
.getHandler(FunctionalEventHandler.class) .getHandler(FunctionalEventHandler.class)
.register(addon, ConfigurationLoadEvent.class) .register(addon, ConfigurationLoadEvent.class)
.then(event -> { .then(event -> {
if(event.is(TerraBiome.class)) { if(event.is(Biome.class)) {
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeStructuresTemplate()).get()); event.getLoadedObject(Biome.class).getContext().put(event.load(new BiomeStructuresTemplate()).get());
} }
}) })
.failThrough(); .failThrough();
@@ -17,7 +17,7 @@ import com.dfsek.terra.api.util.collection.ProbabilityCollection;
/** /**
* Represents a custom biome * Represents a custom biome
*/ */
public interface TerraBiome extends PropertyHolder { public interface Biome extends PropertyHolder {
/** /**
* Gets the Vanilla biome to represent the custom biome. * Gets the Vanilla biome to represent the custom biome.
@@ -9,19 +9,19 @@ package com.dfsek.terra.api.world.biome.generation;
import com.dfsek.terra.api.util.vector.Vector2; import com.dfsek.terra.api.util.vector.Vector2;
import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeProvider { public interface BiomeProvider {
TerraBiome getBiome(int x, int z, long seed); Biome getBiome(int x, int z, long seed);
default TerraBiome getBiome(Vector2 vector2, long seed) { default Biome getBiome(Vector2 vector2, long seed) {
return getBiome(vector2.getBlockX(), vector2.getBlockZ(), seed); return getBiome(vector2.getBlockX(), vector2.getBlockZ(), seed);
} }
default TerraBiome getBiome(Vector3 vector3, long seed) { default Biome getBiome(Vector3 vector3, long seed) {
return getBiome(vector3.getBlockX(), vector3.getBlockZ(), seed); return getBiome(vector3.getBlockX(), vector3.getBlockZ(), seed);
} }
Iterable<TerraBiome> getBiomes(); Iterable<Biome> getBiomes();
} }
@@ -1,6 +1,7 @@
package com.dfsek.terra.bukkit.generator; package com.dfsek.terra.bukkit.generator;
import org.bukkit.block.Biome; import com.dfsek.terra.api.world.biome.Biome;
import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.WorldInfo; import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -10,7 +11,6 @@ import java.util.stream.Collectors;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.world.biome.TerraBiome;
public class BukkitBiomeProvider extends BiomeProvider implements Handle { public class BukkitBiomeProvider extends BiomeProvider implements Handle {
@@ -19,18 +19,18 @@ public class BukkitBiomeProvider extends BiomeProvider implements Handle {
public BukkitBiomeProvider(com.dfsek.terra.api.world.biome.generation.BiomeProvider delegate) { this.delegate = delegate; } public BukkitBiomeProvider(com.dfsek.terra.api.world.biome.generation.BiomeProvider delegate) { this.delegate = delegate; }
@Override @Override
public @NotNull Biome getBiome(@NotNull WorldInfo worldInfo, int x, int y, int z) { public @NotNull org.bukkit.block.Biome getBiome(@NotNull WorldInfo worldInfo, int x, int y, int z) {
TerraBiome terraBiome = delegate.getBiome(x, z, worldInfo.getSeed()); Biome biome = delegate.getBiome(x, z, worldInfo.getSeed());
return (Biome) terraBiome.getVanillaBiomes().get(terraBiome.getGenerator().getBiomeNoise(), x, y, z).getHandle(); return (org.bukkit.block.Biome) biome.getVanillaBiomes().get(biome.getGenerator().getBiomeNoise(), x, y, z).getHandle();
} }
@Override @Override
public @NotNull List<Biome> getBiomes(@NotNull WorldInfo worldInfo) { public @NotNull List<org.bukkit.block.Biome> getBiomes(@NotNull WorldInfo worldInfo) {
return StreamSupport.stream(delegate.getBiomes().spliterator(), false) return StreamSupport.stream(delegate.getBiomes().spliterator(), false)
.flatMap(terraBiome -> terraBiome.getVanillaBiomes() .flatMap(terraBiome -> terraBiome.getVanillaBiomes()
.getContents() .getContents()
.stream() .stream()
.map(biome -> (Biome) biome.getHandle())) .map(biome -> (org.bukkit.block.Biome) biome.getHandle()))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
@@ -20,9 +20,11 @@ package com.dfsek.terra.fabric;
import ca.solostudios.strata.Versions; import ca.solostudios.strata.Versions;
import ca.solostudios.strata.version.Version; import ca.solostudios.strata.version.Version;
import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.world.biome.Biome;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.world.biome.Biome;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -35,7 +37,6 @@ import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent;
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.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.util.generic.pair.Pair.Mutable; import com.dfsek.terra.api.util.generic.pair.Pair.Mutable;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.fabric.config.PostLoadCompatibilityOptions; import com.dfsek.terra.fabric.config.PostLoadCompatibilityOptions;
import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions; import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions;
import com.dfsek.terra.fabric.event.BiomeRegistrationEvent; import com.dfsek.terra.fabric.event.BiomeRegistrationEvent;
@@ -87,12 +88,12 @@ public final class FabricAddon implements BaseAddon {
.then(event -> { .then(event -> {
logger.info("Registering biomes..."); logger.info("Registering biomes...");
Registry<Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY); Registry<net.minecraft.world.biome.Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY);
terraFabricPlugin.getConfigRegistry().forEach(pack -> { // Register all Terra biomes. terraFabricPlugin.getConfigRegistry().forEach(pack -> { // Register all Terra biomes.
pack.getCheckedRegistry(TerraBiome.class) pack.getCheckedRegistry(Biome.class)
.forEach((id, biome) -> { .forEach((id, biome) -> {
Identifier identifier = new Identifier("terra", FabricUtil.createBiomeID(pack, id)); Identifier identifier = new Identifier("terra", FabricUtil.createBiomeID(pack, id));
Biome fabricBiome = FabricUtil.createBiome(biome, pack, event.getRegistryManager()); net.minecraft.world.biome.Biome fabricBiome = FabricUtil.createBiome(biome, pack, event.getRegistryManager());
FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, identifier, fabricBiome); FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, identifier, fabricBiome);
}); });
@@ -20,30 +20,31 @@ package com.dfsek.terra.fabric.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.config.ConfigTemplate; import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.api.world.biome.Biome;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("FieldMayBeFinal") @SuppressWarnings("FieldMayBeFinal")
public class PostLoadCompatibilityOptions implements ConfigTemplate { public class PostLoadCompatibilityOptions implements ConfigTemplate {
@Value("structures.inject-biome.exclude-biomes") @Value("structures.inject-biome.exclude-biomes")
@Default @Default
private Map<TerraBiome, Set<Identifier>> excludedPerBiomeStructures = new HashMap<>(); private Map<Biome, Set<Identifier>> excludedPerBiomeStructures = new HashMap<>();
@Value("features.inject-biome.exclude-biomes") @Value("features.inject-biome.exclude-biomes")
@Default @Default
private Map<TerraBiome, Set<Identifier>> excludedPerBiomeFeatures = new HashMap<>(); private Map<Biome, Set<Identifier>> excludedPerBiomeFeatures = new HashMap<>();
public Map<TerraBiome, Set<Identifier>> getExcludedPerBiomeFeatures() { public Map<Biome, Set<Identifier>> getExcludedPerBiomeFeatures() {
return excludedPerBiomeFeatures; return excludedPerBiomeFeatures;
} }
public Map<TerraBiome, Set<Identifier>> getExcludedPerBiomeStructures() { public Map<Biome, Set<Identifier>> getExcludedPerBiomeStructures() {
return excludedPerBiomeStructures; return excludedPerBiomeStructures;
} }
} }
@@ -17,12 +17,13 @@
package com.dfsek.terra.fabric.generation; package com.dfsek.terra.fabric.generation;
import com.dfsek.terra.api.world.biome.Biome;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder; import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.dynamic.RegistryLookupCodec; import net.minecraft.util.dynamic.RegistryLookupCodec;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler; import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler;
@@ -30,7 +31,6 @@ import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
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 com.dfsek.terra.fabric.FabricEntryPoint; import com.dfsek.terra.fabric.FabricEntryPoint;
import com.dfsek.terra.fabric.util.FabricUtil; import com.dfsek.terra.fabric.util.FabricUtil;
@@ -55,11 +55,11 @@ public class TerraBiomeSource extends BiomeSource {
.apply(instance, instance.stable( .apply(instance, instance.stable(
TerraBiomeSource::new))); TerraBiomeSource::new)));
private final Registry<Biome> biomeRegistry; private final Registry<net.minecraft.world.biome.Biome> biomeRegistry;
private final long seed; private final long seed;
private ConfigPack pack; private ConfigPack pack;
public TerraBiomeSource(Registry<Biome> biomes, long seed, ConfigPack pack) { public TerraBiomeSource(Registry<net.minecraft.world.biome.Biome> biomes, long seed, ConfigPack pack) {
super(biomes.stream() super(biomes.stream()
.filter(biome -> Objects.requireNonNull(biomes.getId(biome)) .filter(biome -> Objects.requireNonNull(biomes.getId(biome))
.getNamespace() .getNamespace()
@@ -85,8 +85,8 @@ public class TerraBiomeSource extends BiomeSource {
} }
@Override @Override
public Biome getBiome(int biomeX, int biomeY, int biomeZ, MultiNoiseSampler noiseSampler) { public net.minecraft.world.biome.Biome getBiome(int biomeX, int biomeY, int biomeZ, MultiNoiseSampler noiseSampler) {
TerraBiome biome = pack.getBiomeProvider().getBiome(biomeX << 2, biomeZ << 2, seed); Biome biome = pack.getBiomeProvider().getBiome(biomeX << 2, biomeZ << 2, seed);
return biomeRegistry.get(new Identifier("terra", FabricUtil.createBiomeID(pack, biome.getID()))); return biomeRegistry.get(new Identifier("terra", FabricUtil.createBiomeID(pack, biome.getID())));
} }
@@ -17,6 +17,8 @@
package com.dfsek.terra.fabric.util; package com.dfsek.terra.fabric.util;
import com.dfsek.terra.api.world.biome.Biome;
import com.mojang.serialization.Lifecycle; import com.mojang.serialization.Lifecycle;
import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.block.entity.LootableContainerBlockEntity;
import net.minecraft.block.entity.MobSpawnerBlockEntity; import net.minecraft.block.entity.MobSpawnerBlockEntity;
@@ -28,7 +30,6 @@ import net.minecraft.util.registry.MutableRegistry;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldAccess;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.BiomeEffects;
import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.biome.GenerationSettings;
import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.GenerationStep;
@@ -45,7 +46,6 @@ import com.dfsek.terra.api.block.entity.Container;
import com.dfsek.terra.api.block.entity.MobSpawner; import com.dfsek.terra.api.block.entity.MobSpawner;
import com.dfsek.terra.api.block.entity.Sign; import com.dfsek.terra.api.block.entity.Sign;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor; import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor;
@@ -62,14 +62,14 @@ public final class FabricUtil {
* *
* @return The Minecraft delegate biome. * @return The Minecraft delegate biome.
*/ */
public static Biome createBiome(TerraBiome biome, ConfigPack pack, DynamicRegistryManager registryManager) { public static net.minecraft.world.biome.Biome createBiome(Biome biome, ConfigPack pack, DynamicRegistryManager registryManager) {
// BiomeTemplate template = biome.getTemplate(); // BiomeTemplate template = biome.getTemplate();
Map<String, Integer> colors = new HashMap<>(); // template.getColors(); Map<String, Integer> colors = new HashMap<>(); // template.getColors();
//TerraFabricPlugin.FabricAddon fabricAddon = TerraFabricPlugin.getInstance().getFabricAddon(); //TerraFabricPlugin.FabricAddon fabricAddon = TerraFabricPlugin.getInstance().getFabricAddon();
Registry<Biome> biomeRegistry = registryManager.get(Registry.BIOME_KEY); Registry<net.minecraft.world.biome.Biome> biomeRegistry = registryManager.get(Registry.BIOME_KEY);
Biome vanilla = ((ProtoPlatformBiome) (new ArrayList<>(biome.getVanillaBiomes().getContents()).get(0))).get(biomeRegistry); net.minecraft.world.biome.Biome vanilla = ((ProtoPlatformBiome) (new ArrayList<>(biome.getVanillaBiomes().getContents()).get(0))).get(biomeRegistry);
GenerationSettings.Builder generationSettings = new GenerationSettings.Builder(); GenerationSettings.Builder generationSettings = new GenerationSettings.Builder();
@@ -135,7 +135,7 @@ public final class FabricUtil {
accessor.getFoliageColor().ifPresent(effects::foliageColor); accessor.getFoliageColor().ifPresent(effects::foliageColor);
} }
return new Biome.Builder() return new net.minecraft.world.biome.Biome.Builder()
.precipitation(vanilla.getPrecipitation()) .precipitation(vanilla.getPrecipitation())
.category(vanilla.getCategory()) .category(vanilla.getCategory())
.temperature(vanilla.getTemperature()) .temperature(vanilla.getTemperature())