finish refactoring world api

This commit is contained in:
dfsek 2021-11-28 16:51:04 -07:00
parent 6b9dfc5d43
commit 397c464fb2
47 changed files with 60 additions and 70 deletions

View File

@ -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.SlantHolder;
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> {

View File

@ -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.inject.annotations.Inject;
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 {

View File

@ -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.math.Sampler;
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 {

View File

@ -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.ChunkGenerator;
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 {

View File

@ -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.world.biome.GenerationSettings;
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;
/**

View File

@ -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.world.biome.GenerationSettings;
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;
/**

View File

@ -7,7 +7,7 @@
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 {

View File

@ -12,7 +12,7 @@ import net.jafama.FastMath;
import java.util.Map;
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 {

View File

@ -15,7 +15,7 @@ import java.lang.reflect.AnnotatedType;
import java.util.List;
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> {

View File

@ -8,7 +8,7 @@
package com.dfsek.terra.addons.chunkgenerator.palette;
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 {

View File

@ -28,7 +28,7 @@ import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
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" })

View File

@ -9,7 +9,7 @@ package com.dfsek.terra.addons.biome;
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
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 {

View File

@ -7,7 +7,7 @@
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 {

View File

@ -12,7 +12,7 @@ import net.jafama.FastMath;
import java.util.Map;
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 {

View File

@ -15,7 +15,7 @@ import java.lang.reflect.AnnotatedType;
import java.util.List;
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> {

View File

@ -10,7 +10,7 @@ package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
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 {

View File

@ -14,7 +14,7 @@ import java.util.List;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
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 {

View File

@ -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.Locator;
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 {

View File

@ -12,7 +12,7 @@ import java.util.Random;
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.world.access.Column;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
public class RandomLocator implements Locator {

View File

@ -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.Locator;
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 {

View File

@ -11,7 +11,7 @@ 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.world.access.Column;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
public class MatchPattern implements Pattern {

View File

@ -7,7 +7,7 @@
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 {

View File

@ -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.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
public class OreAddon implements AddonInitializer {

View File

@ -19,7 +19,7 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.ConfigType;
import com.dfsek.terra.api.registry.OpenRegistry;
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> {

View File

@ -11,7 +11,7 @@ import com.dfsek.terra.addons.palette.palette.NoisePalette;
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
import com.dfsek.terra.api.Platform;
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> {

View File

@ -13,7 +13,7 @@ import java.util.List;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
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;
/**

View File

@ -11,7 +11,7 @@ import java.util.function.IntConsumer;
import com.dfsek.terra.api.block.state.BlockState;
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;

View File

@ -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.inject.annotations.Inject;
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 {

View File

@ -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.inject.annotations.Inject;
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 {

View File

@ -23,7 +23,7 @@ import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.util.RotationUtil;
import com.dfsek.terra.api.util.vector.Vector2;
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> {
@ -72,7 +72,7 @@ public class CheckFunction implements Function<String> {
private String apply(Vector3 vector, WritableWorld world) {
int y = vector.getBlockY();
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);
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
}
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 cz = FastMath.floorDiv(z, 16);
return cache.get(x, z).sample(x - (cx << 4), y, z - (cz << 4));

View File

@ -23,8 +23,8 @@ import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder, StringIdentifiable {

View File

@ -13,7 +13,7 @@ import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.world.ServerWorld;
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 {
@ -33,7 +33,7 @@ public interface WorldConfig extends StringIdentifiable {
ServerWorld getWorld();
SamplerCache getSamplerCache();
SamplerProvider getSamplerCache();
BiomeProvider getProvider();

View File

@ -7,7 +7,7 @@
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 {

View File

@ -7,7 +7,7 @@
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 {

View File

@ -5,7 +5,7 @@
* 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;

View File

@ -5,7 +5,7 @@
* 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.world.chunk.generation.ChunkGenerator;

View File

@ -5,7 +5,7 @@
* 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.noise.NoiseSampler;

View File

@ -5,7 +5,7 @@
* 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;

View File

@ -5,15 +5,13 @@
* 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;
public interface SamplerCache {
public interface SamplerProvider {
Sampler get(int x, int z);
void clear();
Sampler getChunk(int cx, int cz);
}

View File

@ -5,7 +5,7 @@
* 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.world.chunk.generation.ChunkGenerator;

View File

@ -5,7 +5,7 @@
* 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.world.chunk.generation.stage.GenerationStage;

View File

@ -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.reflection.ReflectionUtil;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
import com.dfsek.terra.config.dummy.DummyServerWorld;
import com.dfsek.terra.config.fileloaders.FolderLoader;
import com.dfsek.terra.config.fileloaders.ZIPLoader;

View File

@ -26,8 +26,8 @@ import java.util.List;
import java.util.Map;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.chunk.generation.util.provider.GenerationStageProvider;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })

View File

@ -27,13 +27,13 @@ import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.world.ServerWorld;
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.world.SamplerCacheImpl;
import com.dfsek.terra.world.SamplerProviderImpl;
public class WorldConfigImpl implements WorldConfig {
private final SamplerCache samplerCache;
private final SamplerProvider samplerProvider;
private final BiomeProvider provider;
@ -45,7 +45,7 @@ public class WorldConfigImpl implements WorldConfig {
public WorldConfigImpl(ServerWorld world, ConfigPackImpl pack, Platform platform) {
this.world = world;
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())));
@ -94,8 +94,8 @@ public class WorldConfigImpl implements WorldConfig {
}
@Override
public SamplerCache getSamplerCache() {
return samplerCache;
public SamplerProvider getSamplerCache() {
return samplerProvider;
}
@Override

View File

@ -18,7 +18,7 @@
package com.dfsek.terra.world;
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.CacheLoader;
@ -31,10 +31,10 @@ import com.dfsek.terra.api.util.MathUtil;
import com.dfsek.terra.api.util.math.Sampler;
public class SamplerCacheImpl implements SamplerCache {
public class SamplerProviderImpl implements SamplerProvider {
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())
.build(new CacheLoader<>() {
@Override
@ -54,12 +54,6 @@ public class SamplerCacheImpl implements SamplerCache {
return getChunk(cx, cz);
}
@Override
public void clear() {
cache.invalidateAll();
cache.cleanUp();
}
@Override
public Sampler getChunk(int cx, int cz) {
long key = MathUtil.squash(cx, cz);

View File

@ -30,14 +30,13 @@ import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import com.dfsek.terra.api.config.WorldConfig;
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;

View File

@ -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.ChunkGenerator;
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.block.FabricBlockState;
import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor;