refactor registries

This commit is contained in:
dfsek
2021-02-14 14:31:14 -07:00
parent b6e414f944
commit 8309ad665e
22 changed files with 59 additions and 30 deletions
@@ -0,0 +1,20 @@
package com.dfsek.terra.api.math.noise.normalizer;
import com.dfsek.terra.api.math.noise.NoiseSampler;
import net.jafama.FastMath;
public class ClampNormalizer extends Normalizer {
private final double min;
private final double max;
public ClampNormalizer(NoiseSampler sampler, double min, double max) {
super(sampler);
this.min = min;
this.max = max;
}
@Override
public double normalize(double in) {
return FastMath.max(FastMath.min(in, max), min);
}
}
@@ -28,8 +28,8 @@ import com.dfsek.terra.api.structures.structure.Rotation;
import com.dfsek.terra.api.structures.structure.buffer.Buffer; import com.dfsek.terra.api.structures.structure.buffer.Buffer;
import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer; import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer;
import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer; import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer;
import com.dfsek.terra.registry.LootRegistry; import com.dfsek.terra.registry.config.LootRegistry;
import com.dfsek.terra.registry.ScriptRegistry; import com.dfsek.terra.registry.config.ScriptRegistry;
import com.dfsek.terra.world.generation.math.SamplerCache; import com.dfsek.terra.world.generation.math.SamplerCache;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
@@ -5,7 +5,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.LootFunction; import com.dfsek.terra.api.structures.script.functions.LootFunction;
import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.registry.LootRegistry; import com.dfsek.terra.registry.config.LootRegistry;
import java.util.List; import java.util.List;
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
import com.dfsek.terra.api.structures.script.functions.StructureFunction; import com.dfsek.terra.api.structures.script.functions.StructureFunction;
import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.registry.ScriptRegistry; import com.dfsek.terra.registry.config.ScriptRegistry;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -12,7 +12,7 @@ import com.dfsek.terra.api.structures.script.TerraImplementationArguments;
import com.dfsek.terra.api.structures.structure.RotationUtil; import com.dfsek.terra.api.structures.structure.RotationUtil;
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication; import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.registry.LootRegistry; import com.dfsek.terra.registry.config.LootRegistry;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.Map; import java.util.Map;
@@ -13,7 +13,7 @@ import com.dfsek.terra.api.structures.structure.Rotation;
import com.dfsek.terra.api.structures.structure.RotationUtil; import com.dfsek.terra.api.structures.structure.RotationUtil;
import com.dfsek.terra.api.structures.structure.buffer.IntermediateBuffer; import com.dfsek.terra.api.structures.structure.buffer.IntermediateBuffer;
import com.dfsek.terra.api.structures.tokenizer.Position; import com.dfsek.terra.api.structures.tokenizer.Position;
import com.dfsek.terra.registry.ScriptRegistry; import com.dfsek.terra.registry.config.ScriptRegistry;
import net.jafama.FastMath; import net.jafama.FastMath;
import java.util.List; import java.util.List;
@@ -8,7 +8,7 @@ import com.dfsek.terra.api.util.seeded.StageSeeded;
import com.dfsek.terra.biome.pipeline.BiomePipeline; import com.dfsek.terra.biome.pipeline.BiomePipeline;
import com.dfsek.terra.biome.provider.BiomeProvider; import com.dfsek.terra.biome.provider.BiomeProvider;
import com.dfsek.terra.biome.provider.StandardBiomeProvider; import com.dfsek.terra.biome.provider.StandardBiomeProvider;
import com.dfsek.terra.registry.BiomeRegistry; import com.dfsek.terra.registry.config.BiomeRegistry;
import java.util.List; import java.util.List;
@@ -7,7 +7,7 @@ import com.dfsek.terra.api.math.noise.NoiseSampler;
import com.dfsek.terra.api.math.noise.samplers.ConstantSampler; import com.dfsek.terra.api.math.noise.samplers.ConstantSampler;
import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.biome.provider.BiomeProvider; import com.dfsek.terra.biome.provider.BiomeProvider;
import com.dfsek.terra.registry.BiomeRegistry; import com.dfsek.terra.registry.config.BiomeRegistry;
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider.BiomeProviderBuilder>, BiomeProvider.BiomeProviderBuilder { public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider.BiomeProviderBuilder>, BiomeProvider.BiomeProviderBuilder {
protected final BiomeRegistry registry; protected final BiomeRegistry registry;
@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.config.biome.templates.source;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.biome.provider.BiomeProvider; import com.dfsek.terra.biome.provider.BiomeProvider;
import com.dfsek.terra.biome.provider.ImageBiomeProvider; import com.dfsek.terra.biome.provider.ImageBiomeProvider;
import com.dfsek.terra.registry.BiomeRegistry; import com.dfsek.terra.registry.config.BiomeRegistry;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
@@ -4,7 +4,7 @@ import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.biome.provider.BiomeProvider; import com.dfsek.terra.biome.provider.BiomeProvider;
import com.dfsek.terra.biome.provider.SingleBiomeProvider; import com.dfsek.terra.biome.provider.SingleBiomeProvider;
import com.dfsek.terra.registry.BiomeRegistry; import com.dfsek.terra.registry.config.BiomeRegistry;
public class SingleBiomeProviderTemplate extends BiomeProviderTemplate { public class SingleBiomeProviderTemplate extends BiomeProviderTemplate {
@Value("biome") @Value("biome")
@@ -42,16 +42,16 @@ import com.dfsek.terra.config.templates.OreTemplate;
import com.dfsek.terra.config.templates.PaletteTemplate; import com.dfsek.terra.config.templates.PaletteTemplate;
import com.dfsek.terra.config.templates.StructureTemplate; import com.dfsek.terra.config.templates.StructureTemplate;
import com.dfsek.terra.config.templates.TreeTemplate; import com.dfsek.terra.config.templates.TreeTemplate;
import com.dfsek.terra.registry.BiomeRegistry;
import com.dfsek.terra.registry.CarverRegistry;
import com.dfsek.terra.registry.FloraRegistry;
import com.dfsek.terra.registry.LootRegistry;
import com.dfsek.terra.registry.OreRegistry;
import com.dfsek.terra.registry.PaletteRegistry;
import com.dfsek.terra.registry.ScriptRegistry;
import com.dfsek.terra.registry.StructureRegistry;
import com.dfsek.terra.registry.TerraRegistry; import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.registry.TreeRegistry; import com.dfsek.terra.registry.config.BiomeRegistry;
import com.dfsek.terra.registry.config.CarverRegistry;
import com.dfsek.terra.registry.config.FloraRegistry;
import com.dfsek.terra.registry.config.LootRegistry;
import com.dfsek.terra.registry.config.OreRegistry;
import com.dfsek.terra.registry.config.PaletteRegistry;
import com.dfsek.terra.registry.config.ScriptRegistry;
import com.dfsek.terra.registry.config.StructureRegistry;
import com.dfsek.terra.registry.config.TreeRegistry;
import com.dfsek.terra.world.generation.math.SamplerCache; import com.dfsek.terra.world.generation.math.SamplerCache;
import com.dfsek.terra.world.population.items.TerraStructure; import com.dfsek.terra.world.population.items.TerraStructure;
import com.dfsek.terra.world.population.items.ores.Ore; import com.dfsek.terra.world.population.items.ores.Ore;
@@ -1,8 +1,9 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.terra.biome.TerraBiome; import com.dfsek.terra.biome.TerraBiome;
import com.dfsek.terra.registry.TerraRegistry;
import java.lang.reflect.Type; import java.lang.reflect.Type;
@@ -1,6 +1,7 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.carving.UserDefinedCarver; import com.dfsek.terra.carving.UserDefinedCarver;
import com.dfsek.terra.registry.TerraRegistry;
public class CarverRegistry extends TerraRegistry<UserDefinedCarver> { public class CarverRegistry extends TerraRegistry<UserDefinedCarver> {
} }
@@ -1,9 +1,10 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.core.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.block.MaterialData; import com.dfsek.terra.api.platform.block.MaterialData;
import com.dfsek.terra.api.world.flora.Flora; import com.dfsek.terra.api.world.flora.Flora;
import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.util.MaterialSet; import com.dfsek.terra.util.MaterialSet;
import com.dfsek.terra.world.population.items.flora.ConstantFlora; import com.dfsek.terra.world.population.items.flora.ConstantFlora;
@@ -1,6 +1,7 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.structures.loot.LootTable; import com.dfsek.terra.api.structures.loot.LootTable;
import com.dfsek.terra.registry.TerraRegistry;
public class LootRegistry extends TerraRegistry<LootTable> { public class LootRegistry extends TerraRegistry<LootTable> {
} }
@@ -1,5 +1,6 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.world.population.items.ores.Ore; import com.dfsek.terra.world.population.items.ores.Ore;
public class OreRegistry extends TerraRegistry<Ore> { public class OreRegistry extends TerraRegistry<Ore> {
@@ -1,9 +1,10 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.core.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.block.BlockData; import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.world.palette.Palette; import com.dfsek.terra.api.world.palette.Palette;
import com.dfsek.terra.api.world.palette.SinglePalette; import com.dfsek.terra.api.world.palette.SinglePalette;
import com.dfsek.terra.registry.TerraRegistry;
public class PaletteRegistry extends TerraRegistry<Palette<BlockData>> { public class PaletteRegistry extends TerraRegistry<Palette<BlockData>> {
private final TerraPlugin main; private final TerraPlugin main;
@@ -1,6 +1,7 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.structures.script.StructureScript; import com.dfsek.terra.api.structures.script.StructureScript;
import com.dfsek.terra.registry.TerraRegistry;
public class ScriptRegistry extends TerraRegistry<StructureScript> { public class ScriptRegistry extends TerraRegistry<StructureScript> {
} }
@@ -1,5 +1,6 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.world.population.items.TerraStructure; import com.dfsek.terra.world.population.items.TerraStructure;
public class StructureRegistry extends TerraRegistry<TerraStructure> { public class StructureRegistry extends TerraRegistry<TerraStructure> {
@@ -1,4 +1,4 @@
package com.dfsek.terra.registry; package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.core.TerraPlugin; import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.vector.Location; import com.dfsek.terra.api.math.vector.Location;
@@ -14,6 +14,7 @@ import com.dfsek.terra.api.world.tree.fractal.trees.ShatteredTree;
import com.dfsek.terra.api.world.tree.fractal.trees.SmallShatteredPillar; import com.dfsek.terra.api.world.tree.fractal.trees.SmallShatteredPillar;
import com.dfsek.terra.api.world.tree.fractal.trees.SmallShatteredTree; import com.dfsek.terra.api.world.tree.fractal.trees.SmallShatteredTree;
import com.dfsek.terra.api.world.tree.fractal.trees.SpruceTree; import com.dfsek.terra.api.world.tree.fractal.trees.SpruceTree;
import com.dfsek.terra.registry.TerraRegistry;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@@ -33,8 +33,8 @@ import com.dfsek.terra.config.loaders.config.sampler.NoiseSamplerBuilderLoader;
import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.config.templates.AbstractableTemplate; import com.dfsek.terra.config.templates.AbstractableTemplate;
import com.dfsek.terra.debug.DebugLogger; import com.dfsek.terra.debug.DebugLogger;
import com.dfsek.terra.registry.BiomeRegistry;
import com.dfsek.terra.registry.ConfigRegistry; import com.dfsek.terra.registry.ConfigRegistry;
import com.dfsek.terra.registry.config.BiomeRegistry;
import com.dfsek.terra.world.TerraWorld; import com.dfsek.terra.world.TerraWorld;
import javax.swing.*; import javax.swing.*;
@@ -9,7 +9,7 @@ import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.api.world.tree.Tree; import com.dfsek.terra.api.world.tree.Tree;
import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.registry.TreeRegistry; import com.dfsek.terra.registry.config.TreeRegistry;
import com.dfsek.terra.world.TerraWorld; import com.dfsek.terra.world.TerraWorld;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.TreeType; import org.bukkit.TreeType;