WIP Seismic Integration

This commit is contained in:
Zoë Gidiere
2025-03-01 21:32:39 -07:00
parent 8366a5288b
commit 5892464a1d
239 changed files with 623 additions and 6195 deletions
@@ -15,7 +15,7 @@ import com.dfsek.terra.addons.feature.locator.locators.AdjacentPatternLocator;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
@SuppressWarnings({ "FieldCanBeLocal", "FieldMayBeFinal" })
@@ -14,7 +14,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.GaussianRandomLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
@SuppressWarnings("FieldMayBeFinal")
@@ -14,7 +14,7 @@ import com.dfsek.terra.addons.feature.locator.locators.PatternLocator;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class PatternLocatorTemplate implements ObjectTemplate<Locator> {
@@ -14,7 +14,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.RandomLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
@SuppressWarnings("FieldMayBeFinal")
@@ -12,13 +12,13 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.Sampler3DLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Locator;
public class Sampler3DLocatorTemplate implements ObjectTemplate<Locator> {
@Value("sampler")
private @Meta NoiseSampler sampler;
private @Meta Sampler sampler;
@Override
public Locator get() {
@@ -14,13 +14,13 @@ import java.util.List;
import com.dfsek.terra.addons.feature.locator.locators.SamplerLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Locator;
public class SamplerLocatorTemplate implements ObjectTemplate<Locator> {
@Value("samplers")
private @Meta List<@Meta NoiseSampler> samplers;
private @Meta List<@Meta Sampler> samplers;
@Override
public Locator get() {
@@ -13,7 +13,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class SurfaceLocatorTemplate implements ObjectTemplate<Locator> {
@@ -13,7 +13,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.TopLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class TopLocatorTemplate implements ObjectTemplate<Locator> {
@@ -14,7 +14,7 @@ import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class AirMatchPatternTemplate implements ObjectTemplate<Pattern> {
@@ -13,7 +13,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.MaterialSet;
@@ -14,7 +14,7 @@ import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class SingleBlockMatchPatternTemplate implements ObjectTemplate<Pattern> {
@@ -12,7 +12,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
public class SolidMatchPatternTemplate implements ObjectTemplate<Pattern> {
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.WritableWorld;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -12,7 +12,7 @@ import java.util.random.RandomGeneratorFactory;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder;
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -12,7 +12,7 @@ import java.util.random.RandomGeneratorFactory;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder;
@@ -7,16 +7,16 @@
package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
public class Sampler3DLocator implements Locator {
private final NoiseSampler sampler;
private final Sampler sampler;
public Sampler3DLocator(NoiseSampler sampler) {
public Sampler3DLocator(Sampler sampler) {
this.sampler = sampler;
}
@@ -25,6 +25,6 @@ public class Sampler3DLocator implements Locator {
long seed = column.getWorld().getSeed();
int x = column.getX();
int z = column.getZ();
return column.newBinaryColumn(y -> sampler.noise(seed, x, y, z) > 0);
return column.newBinaryColumn(y -> sampler.getSample(seed, x, y, z) > 0);
}
}
@@ -9,7 +9,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import java.util.List;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -17,9 +17,9 @@ import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilde
public class SamplerLocator implements Locator {
private final List<NoiseSampler> samplers;
private final List<Sampler> samplers;
public SamplerLocator(List<NoiseSampler> samplers) {
public SamplerLocator(List<Sampler> samplers) {
this.samplers = samplers;
}
@@ -42,7 +42,7 @@ public class SamplerLocator implements Locator {
long seed = column.getWorld().getSeed();
samplers.forEach(sampler -> {
int y = floorToInt(sampler.noise(seed, column.getX(), column.getZ()));
int y = floorToInt(sampler.getSample(seed, column.getX(), column.getZ()));
if(y >= column.getMaxY() || y < column.getMinY()) return;
results.set(y);
});
@@ -9,7 +9,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder;
@@ -9,7 +9,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.patterns;
import java.util.function.Predicate;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.WritableWorld;
import com.dfsek.terra.api.world.chunk.generation.util.Column;