mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
finish refactoring world api
This commit is contained in:
parent
6b9dfc5d43
commit
397c464fb2
@ -15,7 +15,7 @@ import com.dfsek.terra.addons.chunkgenerator.palette.PaletteHolder;
|
|||||||
import com.dfsek.terra.addons.chunkgenerator.palette.PaletteInfo;
|
import com.dfsek.terra.addons.chunkgenerator.palette.PaletteInfo;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder;
|
import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder;
|
||||||
import com.dfsek.terra.api.config.meta.Meta;
|
import com.dfsek.terra.api.config.meta.Meta;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> {
|
public class BiomePaletteTemplate implements ObjectTemplate<PaletteInfo> {
|
||||||
|
@ -20,7 +20,7 @@ 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.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
|
||||||
|
|
||||||
|
|
||||||
public class NoiseChunkGenerator3DAddon implements AddonInitializer {
|
public class NoiseChunkGenerator3DAddon implements AddonInitializer {
|
||||||
|
@ -12,7 +12,7 @@ import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder;
|
|||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
import com.dfsek.terra.api.util.math.Sampler;
|
import com.dfsek.terra.api.util.math.Sampler;
|
||||||
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public final class PaletteUtil {
|
public final class PaletteUtil {
|
||||||
|
@ -30,7 +30,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
|||||||
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
|
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
|
||||||
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.stage.GenerationStage;
|
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class NoiseChunkGenerator3D implements ChunkGenerator {
|
public class NoiseChunkGenerator3D implements ChunkGenerator {
|
||||||
|
@ -18,7 +18,7 @@ import com.dfsek.terra.api.util.mutable.MutableInteger;
|
|||||||
import com.dfsek.terra.api.util.vector.Vector3;
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkInterpolator;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.ChunkInterpolator;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +18,7 @@ import com.dfsek.terra.api.util.mutable.MutableInteger;
|
|||||||
import com.dfsek.terra.api.util.vector.Vector3;
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
import com.dfsek.terra.api.world.biome.GenerationSettings;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkInterpolator;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.ChunkInterpolator;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.addons.chunkgenerator.palette;
|
package com.dfsek.terra.addons.chunkgenerator.palette;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolder {
|
public class PaletteHolder {
|
||||||
|
@ -12,7 +12,7 @@ import net.jafama.FastMath;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolderBuilder {
|
public class PaletteHolderBuilder {
|
||||||
|
@ -15,7 +15,7 @@ import java.lang.reflect.AnnotatedType;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
|
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.palette;
|
package com.dfsek.terra.addons.chunkgenerator.palette;
|
||||||
|
|
||||||
import com.dfsek.terra.api.properties.Properties;
|
import com.dfsek.terra.api.properties.Properties;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteInfo implements Properties {
|
public class PaletteInfo implements Properties {
|
||||||
|
@ -28,7 +28,7 @@ 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.Biome;
|
import com.dfsek.terra.api.world.biome.Biome;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings({ "FieldMayBeFinal", "unused" })
|
@SuppressWarnings({ "FieldMayBeFinal", "unused" })
|
||||||
|
@ -9,7 +9,7 @@ package com.dfsek.terra.addons.biome;
|
|||||||
|
|
||||||
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
|
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
|
||||||
import com.dfsek.terra.api.world.biome.PaletteSettings;
|
import com.dfsek.terra.api.world.biome.PaletteSettings;
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteSettingsImpl implements PaletteSettings {
|
public class PaletteSettingsImpl implements PaletteSettings {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.addons.biome.holder;
|
package com.dfsek.terra.addons.biome.holder;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolder {
|
public class PaletteHolder {
|
||||||
|
@ -12,7 +12,7 @@ import net.jafama.FastMath;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolderBuilder {
|
public class PaletteHolderBuilder {
|
||||||
|
@ -15,7 +15,7 @@ import java.lang.reflect.AnnotatedType;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
|
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
|
||||||
|
@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
|
|||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.structure.feature.Locator;
|
import com.dfsek.terra.api.structure.feature.Locator;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class Noise3DLocator implements Locator {
|
public class Noise3DLocator implements Locator {
|
||||||
|
@ -14,7 +14,7 @@ import java.util.List;
|
|||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.structure.feature.Locator;
|
import com.dfsek.terra.api.structure.feature.Locator;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class NoiseLocator implements Locator {
|
public class NoiseLocator implements Locator {
|
||||||
|
@ -11,7 +11,7 @@ import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
|
|||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.structure.feature.Locator;
|
import com.dfsek.terra.api.structure.feature.Locator;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class PatternLocator implements Locator {
|
public class PatternLocator implements Locator {
|
||||||
|
@ -12,7 +12,7 @@ import java.util.Random;
|
|||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.structure.feature.Locator;
|
import com.dfsek.terra.api.structure.feature.Locator;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class RandomLocator implements Locator {
|
public class RandomLocator implements Locator {
|
||||||
|
@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
|
|||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.structure.feature.Locator;
|
import com.dfsek.terra.api.structure.feature.Locator;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class SurfaceLocator implements Locator {
|
public class SurfaceLocator implements Locator {
|
||||||
|
@ -11,7 +11,7 @@ import java.util.function.Predicate;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public class MatchPattern implements Pattern {
|
public class MatchPattern implements Pattern {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.addons.feature.locator.patterns;
|
package com.dfsek.terra.addons.feature.locator.patterns;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public interface Pattern {
|
public interface Pattern {
|
||||||
|
@ -13,7 +13,6 @@ import com.dfsek.terra.api.addon.BaseAddon;
|
|||||||
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.generator.GenerationStageProvider;
|
|
||||||
|
|
||||||
|
|
||||||
public class OreAddon implements AddonInitializer {
|
public class OreAddon implements AddonInitializer {
|
||||||
|
@ -19,7 +19,7 @@ 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.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteConfigType implements ConfigType<PaletteTemplate, Palette> {
|
public class PaletteConfigType implements ConfigType<PaletteTemplate, Palette> {
|
||||||
|
@ -11,7 +11,7 @@ import com.dfsek.terra.addons.palette.palette.NoisePalette;
|
|||||||
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
||||||
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.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
public class PaletteFactory implements ConfigFactory<PaletteTemplate, Palette> {
|
||||||
|
@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
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.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@ import java.util.function.IntConsumer;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
import com.dfsek.terra.api.world.WritableWorld;
|
import com.dfsek.terra.api.world.WritableWorld;
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ 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.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
|
||||||
|
|
||||||
|
|
||||||
public class FeatureGenerationAddon implements AddonInitializer {
|
public class FeatureGenerationAddon implements AddonInitializer {
|
||||||
|
@ -9,7 +9,7 @@ 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.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
|
||||||
|
|
||||||
|
|
||||||
public class StructureGenerationAddon implements AddonInitializer {
|
public class StructureGenerationAddon implements AddonInitializer {
|
||||||
|
@ -23,7 +23,7 @@ import com.dfsek.terra.api.Platform;
|
|||||||
import com.dfsek.terra.api.util.RotationUtil;
|
import com.dfsek.terra.api.util.RotationUtil;
|
||||||
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.generator.SamplerCache;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.SamplerProvider;
|
||||||
|
|
||||||
|
|
||||||
public class CheckFunction implements Function<String> {
|
public class CheckFunction implements Function<String> {
|
||||||
@ -72,7 +72,7 @@ public class CheckFunction implements Function<String> {
|
|||||||
private String apply(Vector3 vector, WritableWorld world) {
|
private String apply(Vector3 vector, WritableWorld world) {
|
||||||
int y = vector.getBlockY();
|
int y = vector.getBlockY();
|
||||||
if(y >= world.getMaxHeight() || y < 0) return "AIR";
|
if(y >= world.getMaxHeight() || y < 0) return "AIR";
|
||||||
SamplerCache cache = world.getConfig().getSamplerCache();
|
SamplerProvider cache = world.getConfig().getSamplerCache();
|
||||||
double comp = sample(vector.getBlockX(), vector.getBlockY(), vector.getBlockZ(), cache);
|
double comp = sample(vector.getBlockX(), vector.getBlockY(), vector.getBlockZ(), cache);
|
||||||
|
|
||||||
if(comp > 0) return "LAND"; // If noise val is greater than zero, location will always be land.
|
if(comp > 0) return "LAND"; // If noise val is greater than zero, location will always be land.
|
||||||
@ -85,7 +85,7 @@ public class CheckFunction implements Function<String> {
|
|||||||
//return "OCEAN"; // Below sea level
|
//return "OCEAN"; // Below sea level
|
||||||
}
|
}
|
||||||
|
|
||||||
private double sample(int x, int y, int z, SamplerCache cache) {
|
private double sample(int x, int y, int z, SamplerProvider cache) {
|
||||||
int cx = FastMath.floorDiv(x, 16);
|
int cx = FastMath.floorDiv(x, 16);
|
||||||
int cz = FastMath.floorDiv(z, 16);
|
int cz = FastMath.floorDiv(z, 16);
|
||||||
return cache.get(x, z).sample(x - (cx << 4), y, z - (cz << 4));
|
return cache.get(x, z).sample(x - (cx << 4), y, z - (cz << 4));
|
||||||
|
@ -23,8 +23,8 @@ import com.dfsek.terra.api.util.StringIdentifiable;
|
|||||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||||
import com.dfsek.terra.api.world.ServerWorld;
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
|
||||||
|
|
||||||
|
|
||||||
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder, StringIdentifiable {
|
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder, StringIdentifiable {
|
||||||
|
@ -13,7 +13,7 @@ import com.dfsek.terra.api.registry.Registry;
|
|||||||
import com.dfsek.terra.api.util.StringIdentifiable;
|
import com.dfsek.terra.api.util.StringIdentifiable;
|
||||||
import com.dfsek.terra.api.world.ServerWorld;
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.SamplerCache;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.SamplerProvider;
|
||||||
|
|
||||||
|
|
||||||
public interface WorldConfig extends StringIdentifiable {
|
public interface WorldConfig extends StringIdentifiable {
|
||||||
@ -33,7 +33,7 @@ public interface WorldConfig extends StringIdentifiable {
|
|||||||
|
|
||||||
ServerWorld getWorld();
|
ServerWorld getWorld();
|
||||||
|
|
||||||
SamplerCache getSamplerCache();
|
SamplerProvider getSamplerCache();
|
||||||
|
|
||||||
BiomeProvider getProvider();
|
BiomeProvider getProvider();
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.api.structure.feature;
|
package com.dfsek.terra.api.structure.feature;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.access.Column;
|
import com.dfsek.terra.api.world.chunk.generation.util.Column;
|
||||||
|
|
||||||
|
|
||||||
public interface Locator {
|
public interface Locator {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.api.world.biome;
|
package com.dfsek.terra.api.world.biome;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.generator.Palette;
|
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
|
||||||
|
|
||||||
|
|
||||||
public interface PaletteSettings {
|
public interface PaletteSettings {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.access;
|
package com.dfsek.terra.api.world.chunk.generation.util;
|
||||||
|
|
||||||
import java.util.function.IntConsumer;
|
import java.util.function.IntConsumer;
|
||||||
|
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util.math;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -5,15 +5,13 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util.math;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.math.Sampler;
|
import com.dfsek.terra.api.util.math.Sampler;
|
||||||
|
|
||||||
|
|
||||||
public interface SamplerCache {
|
public interface SamplerProvider {
|
||||||
Sampler get(int x, int z);
|
Sampler get(int x, int z);
|
||||||
|
|
||||||
void clear();
|
|
||||||
|
|
||||||
Sampler getChunk(int cx, int cz);
|
Sampler getChunk(int cx, int cz);
|
||||||
}
|
}
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util.provider;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
@ -5,7 +5,7 @@
|
|||||||
* reference the LICENSE file in the common/api directory.
|
* reference the LICENSE file in the common/api directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.dfsek.terra.api.world.generator;
|
package com.dfsek.terra.api.world.chunk.generation.util.provider;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
|
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
|
@ -77,8 +77,8 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory;
|
|||||||
import com.dfsek.terra.api.util.generic.pair.Pair;
|
import com.dfsek.terra.api.util.generic.pair.Pair;
|
||||||
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
|
import com.dfsek.terra.api.util.reflection.ReflectionUtil;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
|
||||||
import com.dfsek.terra.config.dummy.DummyServerWorld;
|
import com.dfsek.terra.config.dummy.DummyServerWorld;
|
||||||
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;
|
||||||
|
@ -26,8 +26,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.meta.Meta;
|
import com.dfsek.terra.api.config.meta.Meta;
|
||||||
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
|
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
|
||||||
|
@ -27,13 +27,13 @@ import com.dfsek.terra.api.config.WorldConfig;
|
|||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.world.ServerWorld;
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.generator.SamplerCache;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.SamplerProvider;
|
||||||
import com.dfsek.terra.registry.LockedRegistryImpl;
|
import com.dfsek.terra.registry.LockedRegistryImpl;
|
||||||
import com.dfsek.terra.world.SamplerCacheImpl;
|
import com.dfsek.terra.world.SamplerProviderImpl;
|
||||||
|
|
||||||
|
|
||||||
public class WorldConfigImpl implements WorldConfig {
|
public class WorldConfigImpl implements WorldConfig {
|
||||||
private final SamplerCache samplerCache;
|
private final SamplerProvider samplerProvider;
|
||||||
|
|
||||||
private final BiomeProvider provider;
|
private final BiomeProvider provider;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ public class WorldConfigImpl implements WorldConfig {
|
|||||||
public WorldConfigImpl(ServerWorld world, ConfigPackImpl pack, Platform platform) {
|
public WorldConfigImpl(ServerWorld world, ConfigPackImpl pack, Platform platform) {
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.pack = pack;
|
this.pack = pack;
|
||||||
this.samplerCache = new SamplerCacheImpl(platform, world);
|
this.samplerProvider = new SamplerProviderImpl(platform, world);
|
||||||
|
|
||||||
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
|
||||||
|
|
||||||
@ -94,8 +94,8 @@ public class WorldConfigImpl implements WorldConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SamplerCache getSamplerCache() {
|
public SamplerProvider getSamplerCache() {
|
||||||
return samplerCache;
|
return samplerProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
package com.dfsek.terra.world;
|
package com.dfsek.terra.world;
|
||||||
|
|
||||||
import com.dfsek.terra.api.world.ServerWorld;
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
import com.dfsek.terra.api.world.generator.SamplerCache;
|
import com.dfsek.terra.api.world.chunk.generation.util.math.SamplerProvider;
|
||||||
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
@ -31,10 +31,10 @@ import com.dfsek.terra.api.util.MathUtil;
|
|||||||
import com.dfsek.terra.api.util.math.Sampler;
|
import com.dfsek.terra.api.util.math.Sampler;
|
||||||
|
|
||||||
|
|
||||||
public class SamplerCacheImpl implements SamplerCache {
|
public class SamplerProviderImpl implements SamplerProvider {
|
||||||
private final LoadingCache<Long, Sampler> cache;
|
private final LoadingCache<Long, Sampler> cache;
|
||||||
|
|
||||||
public SamplerCacheImpl(Platform platform, ServerWorld world) {
|
public SamplerProviderImpl(Platform platform, ServerWorld world) {
|
||||||
cache = CacheBuilder.newBuilder().maximumSize(platform.getTerraConfig().getSamplerCache())
|
cache = CacheBuilder.newBuilder().maximumSize(platform.getTerraConfig().getSamplerCache())
|
||||||
.build(new CacheLoader<>() {
|
.build(new CacheLoader<>() {
|
||||||
@Override
|
@Override
|
||||||
@ -54,12 +54,6 @@ public class SamplerCacheImpl implements SamplerCache {
|
|||||||
return getChunk(cx, cz);
|
return getChunk(cx, cz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clear() {
|
|
||||||
cache.invalidateAll();
|
|
||||||
cache.cleanUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Sampler getChunk(int cx, int cz) {
|
public Sampler getChunk(int cx, int cz) {
|
||||||
long key = MathUtil.squash(cx, cz);
|
long key = MathUtil.squash(cx, cz);
|
@ -30,14 +30,13 @@ import org.bukkit.generator.WorldInfo;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.dfsek.terra.api.config.WorldConfig;
|
import com.dfsek.terra.api.config.WorldConfig;
|
||||||
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
||||||
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper;
|
||||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ import com.dfsek.terra.api.config.ConfigPack;
|
|||||||
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
|
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
|
||||||
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.stage.Chunkified;
|
import com.dfsek.terra.api.world.chunk.generation.stage.Chunkified;
|
||||||
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
|
import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper;
|
||||||
import com.dfsek.terra.fabric.FabricEntryPoint;
|
import com.dfsek.terra.fabric.FabricEntryPoint;
|
||||||
import com.dfsek.terra.fabric.block.FabricBlockState;
|
import com.dfsek.terra.fabric.block.FabricBlockState;
|
||||||
import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor;
|
import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user