mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-19 07:11:14 +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.util.generic.pair.ImmutablePair;
|
||||||
import com.dfsek.terra.api.world.TerraWorld;
|
import com.dfsek.terra.api.world.TerraWorld;
|
||||||
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
|
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.dummy.DummyWorld;
|
||||||
import com.dfsek.terra.config.fileloaders.FolderLoader;
|
import com.dfsek.terra.config.fileloaders.FolderLoader;
|
||||||
import com.dfsek.terra.config.fileloaders.ZIPLoader;
|
import com.dfsek.terra.config.fileloaders.ZIPLoader;
|
||||||
@@ -362,4 +363,9 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
public RegistryFactory getRegistryFactory() {
|
public RegistryFactory getRegistryFactory() {
|
||||||
return registryFactory;
|
return registryFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChunkGeneratorProvider getGeneratorProvider() {
|
||||||
|
return template.getGeneratorProvider();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Value;
|
|||||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
|
||||||
|
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -84,6 +85,13 @@ public class ConfigPackTemplate implements ConfigTemplate {
|
|||||||
@Default
|
@Default
|
||||||
private boolean disableFlora = false;
|
private boolean disableFlora = false;
|
||||||
|
|
||||||
|
@Value("generator")
|
||||||
|
private ChunkGeneratorProvider generatorProvider;
|
||||||
|
|
||||||
|
public ChunkGeneratorProvider getGeneratorProvider() {
|
||||||
|
return generatorProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean disableCarvers() {
|
public boolean disableCarvers() {
|
||||||
return disableCarvers;
|
return disableCarvers;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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.api.world.generator.SamplerCache;
|
||||||
import com.dfsek.terra.registry.LockedRegistryImpl;
|
import com.dfsek.terra.registry.LockedRegistryImpl;
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
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.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
+1
-1
@@ -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.TerraPlugin;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
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