From f5a503f546430f17f68c2b525ef4f684dfb93208 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 16 Nov 2020 11:29:30 -0700 Subject: [PATCH] Cleanup noise functions --- .../dfsek/terra/config/base/ConfigPack.java | 6 +-- .../config/genconfig/noise/NoiseConfig.java | 3 +- .../terra/generation/config/NoiseBuilder.java | 54 +++++++++++++++++++ 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/dfsek/terra/config/base/ConfigPack.java b/src/main/java/com/dfsek/terra/config/base/ConfigPack.java index dc516fb50..01fa2b265 100644 --- a/src/main/java/com/dfsek/terra/config/base/ConfigPack.java +++ b/src/main/java/com/dfsek/terra/config/base/ConfigPack.java @@ -79,7 +79,6 @@ public class ConfigPack extends YamlConfiguration { private final File dataFolder; private final String id; - @SuppressWarnings("unchecked") public ConfigPack(File file) throws IOException, InvalidConfigurationException { long l = System.nanoTime(); load(new File(file, "pack.yml")); @@ -90,8 +89,9 @@ public class ConfigPack extends YamlConfiguration { Map noise = Objects.requireNonNull(getConfigurationSection("noise")).getValues(false); for(Map.Entry entry : noise.entrySet()) { - noiseBuilders.put(entry.getKey(), new NoiseConfig((ConfigurationSection) entry.getValue())); - Debug.info("Loaded noise function " + entry.getKey()); + NoiseConfig noiseConfig = new NoiseConfig((ConfigurationSection) entry.getValue()); + noiseBuilders.put(entry.getKey(), noiseConfig); + Debug.info("Loaded noise function " + entry.getKey() + " with type " + noiseConfig.getBuilder().getType()); } ores = ConfigLoader.load(new File(file, "ores").toPath(), this, OreConfig.class); diff --git a/src/main/java/com/dfsek/terra/config/genconfig/noise/NoiseConfig.java b/src/main/java/com/dfsek/terra/config/genconfig/noise/NoiseConfig.java index ef11a6415..f02ef80f4 100644 --- a/src/main/java/com/dfsek/terra/config/genconfig/noise/NoiseConfig.java +++ b/src/main/java/com/dfsek/terra/config/genconfig/noise/NoiseConfig.java @@ -9,11 +9,10 @@ public class NoiseConfig { private final NoiseBuilder builder; private final int dimensions; - @SuppressWarnings("unchecked") public NoiseConfig(ConfigurationSection section) throws ConfigException { NoiseBuilder builder = new NoiseBuilder(); try { - builder.setType(FastNoiseLite.NoiseType.valueOf((String) section.get("type"))); + builder.setType(FastNoiseLite.NoiseType.valueOf(section.getString("type", "OpenSimplex2"))); builder.setFrequency(section.getDouble("frequency", 0.02D)); dimensions = section.getInt("dimensions", 3); diff --git a/src/main/java/com/dfsek/terra/generation/config/NoiseBuilder.java b/src/main/java/com/dfsek/terra/generation/config/NoiseBuilder.java index 7c51571bb..4c2e49c65 100644 --- a/src/main/java/com/dfsek/terra/generation/config/NoiseBuilder.java +++ b/src/main/java/com/dfsek/terra/generation/config/NoiseBuilder.java @@ -37,6 +37,8 @@ public class NoiseBuilder { noise.setCellularJitter(cellularJitter); } + noise.setNoiseType(type); + noise.setDomainWarpType(domainWarpType); noise.setDomainWarpAmp(domainWarpAmp); @@ -105,5 +107,57 @@ public class NoiseBuilder { public void setRotationType3D(FastNoiseLite.RotationType3D rotationType3D) { this.rotationType3D = rotationType3D; } + + public FastNoiseLite.CellularDistanceFunction getCellularDistanceFunction() { + return cellularDistanceFunction; + } + + public FastNoiseLite.CellularReturnType getCellularReturnType() { + return cellularReturnType; + } + + public FastNoiseLite.DomainWarpType getDomainWarpType() { + return domainWarpType; + } + + public double getCellularJitter() { + return cellularJitter; + } + + public double getDomainWarpAmp() { + return domainWarpAmp; + } + + public double getFractalGain() { + return fractalGain; + } + + public double getFractalLacunarity() { + return fractalLacunarity; + } + + public double getFrequency() { + return frequency; + } + + public double getPingPong() { + return pingPong; + } + + public double getWeightedStrength() { + return weightedStrength; + } + + public int getOctaves() { + return octaves; + } + + public FastNoiseLite.FractalType getFractalType() { + return fractalType; + } + + public FastNoiseLite.RotationType3D getRotationType3D() { + return rotationType3D; + } }