mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 08:25:31 +00:00
make SeededBuilder use unboxed long
This commit is contained in:
parent
3a94c5287c
commit
ec28f613d3
@ -24,6 +24,6 @@ public class ImageProviderTemplate /*extends BiomeProviderTemplate */ {
|
|||||||
|
|
||||||
//@Override
|
//@Override
|
||||||
public BiomeProvider build(long seed) {
|
public BiomeProvider build(long seed) {
|
||||||
return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.apply(seed)).collect(Collectors.toSet()), image, resolution, align);
|
return new ImageBiomeProvider(biomes.entries().stream().map(biomeBuilder -> biomeBuilder.build(seed)).collect(Collectors.toSet()), image, resolution, align);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ public class BiomePipelineImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BiomePipelineImpl build(BiomeSource source, long seed) {
|
public BiomePipelineImpl build(BiomeSource source, long seed) {
|
||||||
List<Stage> stagesBuilt = stages.stream().map(stageBuilder -> stageBuilder.apply(seed)).collect(Collectors.toList());
|
List<Stage> stagesBuilt = stages.stream().map(stageBuilder -> stageBuilder.build(seed)).collect(Collectors.toList());
|
||||||
|
|
||||||
for(Stage stage : stagesBuilt) {
|
for(Stage stage : stagesBuilt) {
|
||||||
if(stage.isExpansion()) expand = expand * 2 - 1;
|
if(stage.isExpansion()) expand = expand * 2 - 1;
|
||||||
|
@ -32,7 +32,7 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
|
|||||||
public BiomeProvider build(long seed) {
|
public BiomeProvider build(long seed) {
|
||||||
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
||||||
stages.forEach(biomePipelineBuilder::addStage);
|
stages.forEach(biomePipelineBuilder::addStage);
|
||||||
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source.apply(seed), seed);
|
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source.build(seed), seed);
|
||||||
return new StandardBiomeProvider(pipeline, main, resolution, blend.apply(seed), blendAmp, (int) seed);
|
return new StandardBiomeProvider(pipeline, main, resolution, blend.build(seed), blendAmp, (int) seed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ public class NoiseSourceTemplate extends SourceTemplate {
|
|||||||
private ProbabilityCollection<SeededTerraBiome> biomes;
|
private ProbabilityCollection<SeededTerraBiome> biomes;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeSource apply(Long seed) {
|
public BiomeSource build(long seed) {
|
||||||
return new RandomSource(biomes.map((biome) -> biome.apply(seed), false), noise.apply(seed));
|
return new RandomSource(biomes.map((biome) -> biome.build(seed), false), noise.build(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
|||||||
|
|
||||||
public class ExpanderStageTemplate extends StageTemplate {
|
public class ExpanderStageTemplate extends StageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public Stage apply(Long seed) {
|
public Stage build(long seed) {
|
||||||
return new ExpanderStage(new FractalExpander(noise.apply(seed)));
|
return new ExpanderStage(new FractalExpander(noise.build(seed)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,11 +26,11 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator build(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
|
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
|
||||||
|
|
||||||
replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(replacement -> replacement.apply(seed), true)));
|
replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.build(seed), replacements.map(replacement -> replacement.build(seed), true)));
|
||||||
|
|
||||||
return new BorderListMutator(replaceMap, from, defaultReplace, noise.apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.apply(seed), true));
|
return new BorderListMutator(replaceMap, from, defaultReplace, noise.build(seed), defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private ProbabilityCollection<SeededTerraBiome> to;
|
private ProbabilityCollection<SeededTerraBiome> to;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator build(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
return new BorderMutator(from, replace, noise.apply(seed), to.map(biomeBuilder -> biomeBuilder.apply(seed), true));
|
return new BorderMutator(from, replace, noise.build(seed), to.map(biomeBuilder -> biomeBuilder.build(seed), true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,10 @@ import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
|||||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||||
|
|
||||||
public abstract class MutatorStageTemplate extends StageTemplate {
|
public abstract class MutatorStageTemplate extends StageTemplate {
|
||||||
public abstract BiomeMutator build(long seed);
|
public abstract BiomeMutator getMutator(long seed);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Stage apply(Long seed) {
|
public Stage build(long seed) {
|
||||||
return new MutatorStage(build(seed));
|
return new MutatorStage(getMutator(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,11 +22,11 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private Map<SeededTerraBiome, ProbabilityCollection<SeededTerraBiome>> replace;
|
private Map<SeededTerraBiome, ProbabilityCollection<SeededTerraBiome>> replace;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator build(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
|
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
|
||||||
|
|
||||||
replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.apply(seed), biomeBuilders.map(builder -> builder.apply(seed), true)));
|
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.apply(seed), true), noise.apply(seed));
|
return new ReplaceListMutator(replaceMap, defaultFrom, defaultTo.map(biomeBuilder -> biomeBuilder.build(seed), true), noise.build(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private ProbabilityCollection<SeededTerraBiome> to;
|
private ProbabilityCollection<SeededTerraBiome> to;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator build(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.apply(seed), true), noise.apply(seed));
|
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.build(seed), true), noise.build(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
|||||||
|
|
||||||
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator build(long seed) {
|
public BiomeMutator getMutator(long seed) {
|
||||||
return new SmoothMutator(noise.apply(seed));
|
return new SmoothMutator(noise.build(seed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ public class SingleBiomeProviderTemplate implements ObjectTemplate<BiomeProvider
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider build(long seed) {
|
public BiomeProvider build(long seed) {
|
||||||
return new SingleBiomeProvider(biome.apply(seed));
|
return new SingleBiomeProvider(biome.build(seed));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -219,19 +219,19 @@ public class BiomeTemplate implements AbstractableTemplate, ValidatedConfigTempl
|
|||||||
//pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions
|
//pack.getTemplate().getNoiseBuilderMap().forEach((id, builder) -> tester.registerFunction(id, new BlankFunction(builder.getDimensions()))); // Register dummy functions
|
||||||
|
|
||||||
try {
|
try {
|
||||||
noiseEquation.apply(0L);
|
noiseEquation.build(0L);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid noise sampler: ", e);
|
throw new ValidationException("Invalid noise sampler: ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
carvingEquation.apply(0L);
|
carvingEquation.build(0L);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid carving sampler: ", e);
|
throw new ValidationException("Invalid carving sampler: ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
elevationEquation.apply(0L);
|
elevationEquation.build(0L);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
throw new ValidationException("Invalid elevation sampler: ", e);
|
throw new ValidationException("Invalid elevation sampler: ", e);
|
||||||
}
|
}
|
||||||
|
@ -19,11 +19,11 @@ public class UserDefinedSeededTerraBiome implements SeededTerraBiome {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserDefinedBiome apply(Long seed) {
|
public UserDefinedBiome build(long seed) {
|
||||||
synchronized(biomeMap) {
|
synchronized(biomeMap) {
|
||||||
return biomeMap.computeIfAbsent(seed,
|
return biomeMap.computeIfAbsent(seed,
|
||||||
s -> {
|
s -> {
|
||||||
UserDefinedGenerator generator = new UserDefinedGenerator(template.getNoiseEquation().apply(seed), template.getElevationEquation().apply(seed), template.getCarvingEquation().apply(seed), template.getBiomeNoise().apply(seed), template.getElevationWeight(),
|
UserDefinedGenerator generator = new UserDefinedGenerator(template.getNoiseEquation().build(seed), template.getElevationEquation().build(seed), template.getCarvingEquation().build(seed), template.getBiomeNoise().build(seed), template.getElevationWeight(),
|
||||||
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight());
|
||||||
return new UserDefinedBiome(template.getVanilla(), generator, template, context);
|
return new UserDefinedBiome(template.getVanilla(), generator, template, context);
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,6 @@ import com.dfsek.terra.api.world.Flora;
|
|||||||
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
|
public class FloraFactory implements ConfigFactory<FloraTemplate, Flora> {
|
||||||
@Override
|
@Override
|
||||||
public TerraFlora build(FloraTemplate config, TerraPlugin main) {
|
public TerraFlora build(FloraTemplate config, TerraPlugin main) {
|
||||||
return new TerraFlora(config.getLayers(), config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main, config.getNoiseDistribution().apply(2403L));
|
return new TerraFlora(config.getLayers(), config.doPhysics(), config.isCeiling(), config.getIrrigable(), config.getSpawnable(), config.getReplaceable(), config.getRotatable(), config.getMaxPlacements(), config.getSearch(), config.isSpawnBlacklist(), config.getIrrigableOffset(), main, config.getNoiseDistribution().build(2403));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ public class DomainWarpTemplate extends SamplerTemplate<DomainWarpedSampler> {
|
|||||||
private double amplitude = 1;
|
private double amplitude = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new DomainWarpedSampler(function.apply(seed), warp.apply(seed), (int) (seed + salt), amplitude);
|
return new DomainWarpedSampler(function.build(seed), warp.build(seed), (int) (seed + salt), amplitude);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public class ImageSamplerTemplate extends SamplerTemplate<ImageSampler> {
|
|||||||
private ImageSampler.Channel channel;
|
private ImageSampler.Channel channel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new ImageSampler(image, channel, frequency);
|
return new ImageSampler(image, channel, frequency);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
|||||||
private double frequency = 1;
|
private double frequency = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
double[][] k = new double[kernel.size()][kernel.get(0).size()];
|
double[][] k = new double[kernel.size()][kernel.get(0).size()];
|
||||||
|
|
||||||
for(int x = 0; x < kernel.size(); x++) {
|
for(int x = 0; x < kernel.size(); x++) {
|
||||||
@ -37,7 +37,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> implements Va
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KernelSampler sampler = new KernelSampler(k, function.apply(seed));
|
KernelSampler sampler = new KernelSampler(k, function.build(seed));
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
|
@ -26,9 +26,8 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
|||||||
@Default
|
@Default
|
||||||
private SeededNoiseSampler lookup = new SeededNoiseSampler() {
|
private SeededNoiseSampler lookup = new SeededNoiseSampler() {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
|
return new OpenSimplex2Sampler((int) seed);
|
||||||
return new OpenSimplex2Sampler((int) (long) seed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,9 +37,9 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
CellularSampler sampler = new CellularSampler((int) (long) seed + salt);
|
CellularSampler sampler = new CellularSampler((int) seed + salt);
|
||||||
sampler.setNoiseLookup(lookup.apply(seed));
|
sampler.setNoiseLookup(lookup.build(seed));
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
sampler.setJitterModifier(cellularJitter);
|
sampler.setJitterModifier(cellularJitter);
|
||||||
sampler.setReturnType(cellularReturnType);
|
sampler.setReturnType(cellularReturnType);
|
||||||
|
@ -13,7 +13,7 @@ public class ConstantNoiseTemplate extends SamplerTemplate<ConstantSampler> {
|
|||||||
private double value = 0d;
|
private double value = 0d;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new ConstantSampler(value);
|
return new ConstantSampler(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
try {
|
try {
|
||||||
Map<String, Function> noiseFunctionMap = generateFunctions(seed);
|
Map<String, Function> noiseFunctionMap = generateFunctions(seed);
|
||||||
return new ExpressionFunction(noiseFunctionMap, equation, vars);
|
return new ExpressionFunction(noiseFunctionMap, equation, vars);
|
||||||
@ -71,14 +71,14 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionFuncti
|
|||||||
|
|
||||||
otherFunctions.forEach((id, function) -> {
|
otherFunctions.forEach((id, function) -> {
|
||||||
if(function.getDimensions() == 2) {
|
if(function.getDimensions() == 2) {
|
||||||
noiseFunctionMap.put(id, new NoiseFunction2(function.apply(seed)));
|
noiseFunctionMap.put(id, new NoiseFunction2(function.build(seed)));
|
||||||
} else noiseFunctionMap.put(id, new NoiseFunction3(function.apply(seed)));
|
} else noiseFunctionMap.put(id, new NoiseFunction3(function.build(seed)));
|
||||||
});
|
});
|
||||||
|
|
||||||
functions.forEach((id, function) -> {
|
functions.forEach((id, function) -> {
|
||||||
if(function.getDimensions() == 2) {
|
if(function.getDimensions() == 2) {
|
||||||
noiseFunctionMap.put(id, new NoiseFunction2(function.apply(seed)));
|
noiseFunctionMap.put(id, new NoiseFunction2(function.build(seed)));
|
||||||
} else noiseFunctionMap.put(id, new NoiseFunction3(function.apply(seed)));
|
} else noiseFunctionMap.put(id, new NoiseFunction3(function.build(seed)));
|
||||||
});
|
});
|
||||||
|
|
||||||
return noiseFunctionMap;
|
return noiseFunctionMap;
|
||||||
|
@ -27,8 +27,8 @@ public class GaborNoiseTemplate extends NoiseTemplate<GaborNoiseSampler> {
|
|||||||
private double f0 = 0.625;
|
private double f0 = 0.625;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
GaborNoiseSampler gaborNoiseSampler = new GaborNoiseSampler((int) (long) seed + salt);
|
GaborNoiseSampler gaborNoiseSampler = new GaborNoiseSampler((int) seed + salt);
|
||||||
gaborNoiseSampler.setFrequency(frequency);
|
gaborNoiseSampler.setFrequency(frequency);
|
||||||
gaborNoiseSampler.setRotation(rotation);
|
gaborNoiseSampler.setRotation(rotation);
|
||||||
gaborNoiseSampler.setIsotropic(isotropic);
|
gaborNoiseSampler.setIsotropic(isotropic);
|
||||||
|
@ -13,8 +13,8 @@ public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
NoiseFunction sampler = samplerSupplier.apply((int) (long) seed + salt);
|
NoiseFunction sampler = samplerSupplier.apply((int) seed + salt);
|
||||||
sampler.setFrequency(frequency);
|
sampler.setFrequency(frequency);
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
|
|
||||||
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
BrownianMotionSampler sampler = new BrownianMotionSampler((int) (long) seed, function.apply(seed));
|
BrownianMotionSampler sampler = new BrownianMotionSampler((int) seed, function.build(seed));
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -12,8 +12,8 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
|
|||||||
private double pingPong = 2.0D;
|
private double pingPong = 2.0D;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
PingPongSampler sampler = new PingPongSampler((int) (long) seed, function.apply(seed));
|
PingPongSampler sampler = new PingPongSampler((int) seed, function.build(seed));
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -5,8 +5,8 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
|
|
||||||
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
RidgedFractalSampler sampler = new RidgedFractalSampler((int) (long) seed, function.apply(seed));
|
RidgedFractalSampler sampler = new RidgedFractalSampler((int) seed, function.build(seed));
|
||||||
sampler.setGain(fractalGain);
|
sampler.setGain(fractalGain);
|
||||||
sampler.setLacunarity(fractalLacunarity);
|
sampler.setLacunarity(fractalLacunarity);
|
||||||
sampler.setOctaves(octaves);
|
sampler.setOctaves(octaves);
|
||||||
|
@ -13,7 +13,7 @@ public class ClampNormalizerTemplate extends NormalizerTemplate<ClampNormalizer>
|
|||||||
private double min;
|
private double min;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new ClampNormalizer(function.apply(seed), min, max);
|
return new ClampNormalizer(function.build(seed), min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class LinearNormalizerTemplate extends NormalizerTemplate<LinearNormalize
|
|||||||
private double min;
|
private double min;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new LinearNormalizer(function.apply(seed), min, max);
|
return new LinearNormalizer(function.build(seed), min, max);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class NormalNormalizerTemplate extends NormalizerTemplate<NormalNormalize
|
|||||||
private int groups = 16384;
|
private int groups = 16384;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return new NormalNormalizer(function.apply(seed), groups, mean, stdDev);
|
return new NormalNormalizer(function.build(seed), groups, mean, stdDev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,10 @@ public class ExpressionSampler implements NoiseSampler {
|
|||||||
functions.forEach((id, noise) -> {
|
functions.forEach((id, noise) -> {
|
||||||
switch(noise.getDimensions()) {
|
switch(noise.getDimensions()) {
|
||||||
case 2:
|
case 2:
|
||||||
parser.registerFunction(id, new NoiseFunction2(noise.apply(seed)));
|
parser.registerFunction(id, new NoiseFunction2(noise.build(seed)));
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
parser.registerFunction(id, new NoiseFunction3(noise.apply(seed)));
|
parser.registerFunction(id, new NoiseFunction3(noise.build(seed)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -9,7 +9,7 @@ import com.dfsek.terra.api.world.generator.Palette;
|
|||||||
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
||||||
@Override
|
@Override
|
||||||
public Palette build(PaletteTemplate config, TerraPlugin main) {
|
public Palette build(PaletteTemplate config, TerraPlugin main) {
|
||||||
NoisePalette palette = new NoisePalette(config.getNoise().apply(2403L), config.getNoise().getDimensions() == 2);
|
NoisePalette palette = new NoisePalette(config.getNoise().build(2403L), config.getNoise().getDimensions() == 2);
|
||||||
for(PaletteLayerHolder layer : config.getPalette()) {
|
for(PaletteLayerHolder layer : config.getPalette()) {
|
||||||
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
|
palette.add(layer.getLayer(), layer.getSize(), layer.getSampler());
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
|
|||||||
|
|
||||||
NoiseSampler sampler = null;
|
NoiseSampler sampler = null;
|
||||||
if(map.containsKey("noise")) {
|
if(map.containsKey("noise")) {
|
||||||
sampler = configLoader.loadType(SeededNoiseSampler.class, map.get("noise")).apply(2403L);
|
sampler = configLoader.loadType(SeededNoiseSampler.class, map.get("noise")).build(2403L);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(collection == null) throw new LoadException("Collection is null: " + map.get("materials"));
|
if(collection == null) throw new LoadException("Collection is null: " + map.get("materials"));
|
||||||
|
@ -23,6 +23,6 @@ public class FloraLayerLoader implements ObjectTemplate<FloraLayer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FloraLayer get() {
|
public FloraLayer get() {
|
||||||
return new FloraLayer(density, y, items, distribution.apply(2403L));
|
return new FloraLayer(density, y, items, distribution.build(2403L));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,6 @@ public class TreeLayerTemplate implements ObjectTemplate<TreeLayer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TreeLayer get() {
|
public TreeLayer get() {
|
||||||
return new TreeLayer(density, y, items, distribution.apply(2403L));
|
return new TreeLayer(density, y, items, distribution.build(2403L));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,6 @@ package com.dfsek.terra.api.util.seeded;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
public interface BiomeProviderBuilder {
|
public interface BiomeProviderBuilder extends SeededBuilder<BiomeProvider> {
|
||||||
BiomeProvider build(long seed);
|
BiomeProvider build(long seed);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package com.dfsek.terra.api.util.seeded;
|
package com.dfsek.terra.api.util.seeded;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
public interface SeededBuilder<T> extends Function<Long, T> {
|
public interface SeededBuilder<T> {
|
||||||
|
T build(long seed);
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ public interface SeededNoiseSampler extends SeededBuilder<NoiseSampler> {
|
|||||||
static SeededNoiseSampler zero(int dimensions) {
|
static SeededNoiseSampler zero(int dimensions) {
|
||||||
return new SeededNoiseSampler() {
|
return new SeededNoiseSampler() {
|
||||||
@Override
|
@Override
|
||||||
public NoiseSampler apply(Long seed) {
|
public NoiseSampler build(long seed) {
|
||||||
return NoiseSampler.zero();
|
return NoiseSampler.zero();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17,8 +17,5 @@ public interface SeededNoiseSampler extends SeededBuilder<NoiseSampler> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
NoiseSampler apply(Long seed);
|
|
||||||
|
|
||||||
int getDimensions();
|
int getDimensions();
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public class WorldConfigImpl implements WorldConfig {
|
|||||||
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
||||||
|
|
||||||
OpenRegistry<TerraBiome> biomeOpenRegistry = new OpenRegistryImpl<>();
|
OpenRegistry<TerraBiome> biomeOpenRegistry = new OpenRegistryImpl<>();
|
||||||
pack.getCheckedRegistry(SeededTerraBiome.class).forEach((id, biome) -> biomeOpenRegistry.register(id, biome.apply(world.getWorld().getSeed())));
|
pack.getCheckedRegistry(SeededTerraBiome.class).forEach((id, biome) -> biomeOpenRegistry.register(id, biome.build(world.getWorld().getSeed())));
|
||||||
registryMap.put(TerraBiome.class, new LockedRegistryImpl<>(biomeOpenRegistry));
|
registryMap.put(TerraBiome.class, new LockedRegistryImpl<>(biomeOpenRegistry));
|
||||||
|
|
||||||
this.provider = pack.getBiomeProviderBuilder().build(world.getWorld().getSeed());
|
this.provider = pack.getBiomeProviderBuilder().build(world.getWorld().getSeed());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user