mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 02:20:57 +00:00
registered chunk generators in impl
This commit is contained in:
@@ -27,6 +27,7 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
||||
import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
|
||||
import com.dfsek.terra.api.world.TerraWorld;
|
||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||
import com.dfsek.terra.config.dummy.DummyWorld;
|
||||
import com.dfsek.terra.config.fileloaders.FolderLoader;
|
||||
import com.dfsek.terra.config.fileloaders.ZIPLoader;
|
||||
@@ -362,4 +363,9 @@ public class ConfigPackImpl implements ConfigPack {
|
||||
public RegistryFactory getRegistryFactory() {
|
||||
return registryFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkGeneratorProvider getGeneratorProvider() {
|
||||
return template.getGeneratorProvider();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -84,6 +85,13 @@ public class ConfigPackTemplate implements ConfigTemplate {
|
||||
@Default
|
||||
private boolean disableFlora = false;
|
||||
|
||||
@Value("generator")
|
||||
private ChunkGeneratorProvider generatorProvider;
|
||||
|
||||
public ChunkGeneratorProvider getGeneratorProvider() {
|
||||
return generatorProvider;
|
||||
}
|
||||
|
||||
public boolean disableCarvers() {
|
||||
return disableCarvers;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
import com.dfsek.terra.api.world.generator.SamplerCache;
|
||||
import com.dfsek.terra.registry.LockedRegistryImpl;
|
||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||
import com.dfsek.terra.world.generation.math.SamplerCacheImpl;
|
||||
import com.dfsek.terra.world.SamplerCacheImpl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.dfsek.terra.addons.chunkgenerator.generation.math;
|
||||
package com.dfsek.terra.world;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.util.MathUtil;
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.dfsek.terra.world.carving;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.block.state.BlockState;
|
||||
import com.dfsek.terra.api.util.Range;
|
||||
import com.dfsek.terra.api.world.ChunkAccess;
|
||||
import com.dfsek.terra.api.world.World;
|
||||
import com.dfsek.terra.api.world.Carver;
|
||||
import com.dfsek.terra.api.world.generator.ChunkInterpolator;
|
||||
import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator3D;
|
||||
|
||||
public class NoiseCarver implements Carver {
|
||||
private final Range range;
|
||||
private final BlockState data;
|
||||
private final TerraPlugin main;
|
||||
|
||||
public NoiseCarver(Range range, BlockState data, TerraPlugin main) {
|
||||
this.range = range;
|
||||
this.data = data;
|
||||
this.main = main;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void carve(World world, int chunkX, int chunkZ, ChunkAccess chunk) {
|
||||
ChunkInterpolator interpolator = new ChunkInterpolator3D(world, chunkX, chunkZ, main.getWorld(world).getBiomeProvider(), (gen, coord) -> gen.getCarver().getNoise(coord.setY(coord.getY())));
|
||||
for(int y : range) {
|
||||
for(int x = 0; x < 16; x++) {
|
||||
for(int z = 0; z < 16; z++) {
|
||||
double n = interpolator.getNoise(x, y, z);
|
||||
if(n > 0) chunk.setBlock(x, y, z, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user