From 600393399f49de3b17bb23a172d1c6b385082285 Mon Sep 17 00:00:00 2001 From: feldenr <135638674+feldenr@users.noreply.github.com> Date: Sun, 21 Jun 2026 16:13:47 +0200 Subject: [PATCH] feat(worldgen): custom ultra-large terrain + fix spawn-dark-forest bias Two related worldgen improvements validated in-game with Distant Horizons + Lithosphere. Build + 6 GameTests green. == Custom ultra-large terrain (preset ultra_wide_biome) == The mod controlled biome distribution but not relief, so the "long prairies / immense mountain chains" effect was weak (relief was the vanilla one that changes every ~1-2k blocks). Added a custom noise settings custom_ore_gen:ultra_large_biome, built on top of Lithosphere's large_biomes (which the mod already depends on for the mountain/cave density functions). Approach (iteratively tuned - v1/v2 with amplitude boost created HOLES in the terrain; this v3-safe is the one that works): - 34 density functions copied verbatim from lithosphere, re-pointed to the custom_ore_gen: namespace (so our preset can reference them). - Cave density functions are NOT copied (left pointing at lithosphere:) so cave generation stays the natural Lithosphere one. - NOISE parameter references are NEVER namespacespaced - the noise parameter definitions live in the lithosphere jar and we just reference them (this was the v2 crash: an "Unbound values in registry noise: [custom_ore_gen:rivers, ...]" crash). - 9 MACRO density functions are stretched 2x in xz_scale only: continents, mountains_shape, basic_topography, orogeny, topography_final, topography_mountains, topography_swamps, topography_rivers, topography_cliffs. These drive the large-scale relief, so the effect is "longer plains, longer mountain chains". - 25 DETAIL density functions are left UNTOUCHED (xz_scale = original): roughness, rivers, mesas, erosion_detail, lake_placement, etc. Details must NOT be stretched or the terrain becomes incoherent. - NO amplitude boost on sloped_cheese: a v1 attempt with a x1.3 multiplier pushed final_density out of [-1,1], which broke the `squeeze` envelope and carved literal HOLES in the terrain. The preset data/custom_ore_gen/worldgen/world_preset/ultra_wide_biome.json now references custom_ore_gen:ultra_large_biome (instead of the vanilla minecraft:overworld it pointed at after the tectonic preset cleanup). == Fix: spawn always landed in dark_forest == Root cause found by offline analysis: - LatitudeBiomeSource.spawnSafeBiomes (plains/forest/birch/...) only applied inside a 191x191 square (SPAWN_SAFE_RADIUS=96). - LatitudeSpawnHandler.findSpawnBiome scans rings up to MAX_RADIUS=512, so once it wandered past 96 blocks it fell out of the safe square and into the latitude_temperate_surface pool - which contains dark_forest. - Worse: findSpawnBiome probed biomes at y=0 (underground), but the latitude biome legitimately differs between y=0 and y=64 (the 3-zone underground model extends latitude DOWNWARDS), so a "safe" biome at y=0 could be dark_forest at the actual surface. Fix: - SPAWN_SAFE_RADIUS 96 -> 540 (covers the handler's MAX_RADIUS=512 search so the safe-square guarantee applies to everything found). - SPAWN_SELECTOR_SCALE 0.02 -> 0.004 so the safe square is populated by large blocks of the same safe biome (instead of a per-block patchwork). - LatitudeSpawnHandler now probes biomes at SURFACE_Y=64 instead of y=0, so what it validates matches what the player actually sees. LatitudeMathTest updated for the new radius (191->1079 inclusive square). Verification: ./gradlew test build -> BUILD SUCCESSFUL, 71/71 unit tests ./gradlew runGameTestServer -> 6/6 GameTests passed in 1.0s, spawn=birch_forest (safe, not dark_forest), north=100% cold, south=100% hot, deepDark=1.3% --- .../customoregen/worldgen/LatitudeMath.java | 4 +- .../worldgen/LatitudeSpawnHandler.java | 26 +- .../density_function/basic_topography.json | 93 + .../density_function/coastal_cliffs.json | 300 ++ .../worldgen/density_function/continents.json | 196 ++ .../density_function/continents_coasts.json | 65 + .../density/final_density.json | 72 + .../worldgen/density_function/depth.json | 40 + .../density_function/erosion_detail.json | 19 + .../density_function/lakes_depth.json | 69 + .../density_function/lakes_placement.json | 146 + .../density_function/mesa_placement.json | 71 + .../worldgen/density_function/mesas.json | 200 ++ .../worldgen/density_function/mesas_old.json | 179 ++ .../density_function/mountains_base.json | 164 ++ .../density_function/mountains_shape.json | 243 ++ .../mountains_weathering.json | 27 + .../density_function/mushroom_islands.json | 73 + .../worldgen/density_function/orogeny.json | 100 + .../worldgen/density_function/river_mask.json | 37 + .../density_function/river_roughness.json | 46 + .../density_function/river_valley_c.json | 154 + .../density_function/river_valley_g.json | 124 + .../density_function/river_valley_u.json | 114 + .../density_function/river_valleys.json | 103 + .../worldgen/density_function/roughness.json | 19 + .../density_function/sloped_cheese.json | 22 + .../density_function/swamp_placement.json | 126 + .../density_function/swamp_terrain.json | 61 + .../density_function/topography_cliffs.json | 15 + .../density_function/topography_final.json | 7 + .../topography_mountains.json | 95 + .../density_function/topography_rivers.json | 19 + .../density_function/topography_swamps.json | 44 + .../density_function/volcanic_islands.json | 140 + .../density_function/volcanic_mountains.json | 92 + .../noise_settings/ultra_large_biome.json | 2481 +++++++++++++++++ .../world_preset/ultra_wide_biome.json | 2 +- .../worldgen/LatitudeMathTest.java | 26 +- 39 files changed, 5790 insertions(+), 24 deletions(-) create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/basic_topography.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/coastal_cliffs.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/continents.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/continents_coasts.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/density/final_density.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/depth.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/erosion_detail.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_depth.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_placement.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mesa_placement.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas_old.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_base.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_shape.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_weathering.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/mushroom_islands.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/orogeny.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_mask.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_roughness.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_c.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_g.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_u.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valleys.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/roughness.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/sloped_cheese.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_placement.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_terrain.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_cliffs.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_final.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_mountains.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_rivers.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_swamps.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_islands.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_mountains.json create mode 100644 src/main/resources/data/custom_ore_gen/worldgen/noise_settings/ultra_large_biome.json diff --git a/src/main/java/net/mcreator/customoregen/worldgen/LatitudeMath.java b/src/main/java/net/mcreator/customoregen/worldgen/LatitudeMath.java index 7a25bf0e..844a782c 100644 --- a/src/main/java/net/mcreator/customoregen/worldgen/LatitudeMath.java +++ b/src/main/java/net/mcreator/customoregen/worldgen/LatitudeMath.java @@ -42,8 +42,8 @@ public final class LatitudeMath { // Spawn safe zone // ------------------------------------------------------------------ - public static final int SPAWN_SAFE_RADIUS = 96; - public static final double SPAWN_SELECTOR_SCALE = 0.02; + public static final int SPAWN_SAFE_RADIUS = 540; + public static final double SPAWN_SELECTOR_SCALE = 0.004; /** Underground vertical zone, mirroring {@link LatitudeBiomeSource#applyCaveOverrides}. */ public enum Zone { diff --git a/src/main/java/net/mcreator/customoregen/worldgen/LatitudeSpawnHandler.java b/src/main/java/net/mcreator/customoregen/worldgen/LatitudeSpawnHandler.java index eccf8ecc..938a04d6 100644 --- a/src/main/java/net/mcreator/customoregen/worldgen/LatitudeSpawnHandler.java +++ b/src/main/java/net/mcreator/customoregen/worldgen/LatitudeSpawnHandler.java @@ -38,12 +38,16 @@ public class LatitudeSpawnHandler { Biomes.MEADOW, Biomes.CHERRY_GROVE ); - /** Maximum search radius (in blocks) around the origin. */ + /** Maximum search radius (in blocks) around the origin. Kept inside the BiomeSource */ + /** SPAWN_SAFE_RADIUS (540) so the safe-square guarantee applies to everything we find. */ private static final int MAX_RADIUS = 512; /** Step between sampled positions. */ private static final int STEP = 8; + /** Surface Y used for biome probing - must match LatitudeGameTest.SURFACE_Y semantics. */ + private static final int SURFACE_Y = 64; + private static volatile boolean initialized = false; @SubscribeEvent @@ -64,8 +68,14 @@ public class LatitudeSpawnHandler { return; } + // Probe biomes at the SURFACE (y=64), not at y=0. Underground the latitude biome extends + // downwards by design, so probing at y=0 could match a SPAWN_BIOMES that differs from what + // the player actually sees on the surface. The BiomeSource spawn-safe square covers the + // first 540 blocks around the origin, so probing at surface y and within that square reliably + // lands on plains/forest - never dark_forest (which is only in the temperate surface pool, + // used outside the safe square). BlockPos current = levelData.getSpawnPos(); - if (isSpawnBiome(level, current)) { + if (isSpawnBiomeAtSurface(level, current.getX(), current.getZ())) { return; // Already on a good biome, leave it alone. } @@ -82,13 +92,14 @@ public class LatitudeSpawnHandler { level.getBiome(spawn).unwrapKey().map(Object::toString).orElse("?")); } - private static boolean isSpawnBiome(ServerLevel level, BlockPos pos) { - Holder biome = level.getBiome(pos); + private static boolean isSpawnBiomeAtSurface(ServerLevel level, int x, int z) { + Holder biome = level.getBiome(new BlockPos(x, SURFACE_Y, z)); return biome.unwrapKey().map(SPAWN_BIOMES::contains).orElse(false); } private static BlockPos findSpawnBiome(ServerLevel level) { - // Concentric square rings starting from the origin. + // Concentric square rings starting from the origin. We probe at SURFACE_Y because the + // latitude biome at y=0 can legitimately differ from the surface biome. for (int radius = 0; radius <= MAX_RADIUS; radius += STEP) { for (int x = -radius; x <= radius; x += STEP) { for (int z = -radius; z <= radius; z += STEP) { @@ -96,9 +107,8 @@ public class LatitudeSpawnHandler { if (Math.abs(x) != radius && Math.abs(z) != radius && radius != 0) { continue; } - BlockPos pos = new BlockPos(x, 0, z); - if (isSpawnBiome(level, pos)) { - return pos; + if (isSpawnBiomeAtSurface(level, x, z)) { + return new BlockPos(x, 0, z); } } } diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/basic_topography.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/basic_topography.json new file mode 100644 index 00000000..6b3d795b --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/basic_topography.json @@ -0,0 +1,93 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": 0.6, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:volcanic_islands", + "argument2": "custom_ore_gen:continents" + }, + "argument2": { + "type": "abs", + "argument": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 1.05, + "y_scale": 0 + }, + "argument2": 0.1 + } + } + }, + "points": [ + { + "location": -1.213001338068079, + "value": -1.7064387458300765, + "derivative": 0 + }, + { + "location": -0.7627571197458174, + "value": -1.6061786740436106, + "derivative": 0.3380331078862123 + }, + { + "location": -0.48698253602343267, + "value": -1.4380004891114746, + "derivative": 0.7293714366314117 + }, + { + "location": -0.397, + "value": -1.06, + "derivative": 0.185 + }, + { + "location": -0.1, + "value": -0.95, + "derivative": 0.5755 + }, + { + "location": 0.06, + "value": -0.85, + "derivative": 0.15 + }, + { + "location": 0.139, + "value": -0.79, + "derivative": 0.7 + }, + { + "location": 0.14, + "value": -0.79, + "derivative": 0.2 + }, + { + "location": 0.2, + "value": -0.7555, + "derivative": 0.16 + }, + { + "location": 0.5764376203349904, + "value": -0.7167748114217367, + "derivative": 0.059949233699557354 + }, + { + "location": 1.4999126514129806, + "value": -0.6132805437711915, + "derivative": 0 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/coastal_cliffs.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/coastal_cliffs.json new file mode 100644 index 00000000..cb88da08 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/coastal_cliffs.json @@ -0,0 +1,300 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:river_valleys", + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 3, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:roughness", + "argument2": { + "type": "noise", + "noise": "lithosphere:cliffs_height", + "xz_scale": 150, + "y_scale": 0 + } + }, + "points": [ + { + "location": -0.5, + "value": 0.5, + "derivative": 0 + }, + { + "location": 0, + "value": 0.75, + "derivative": 0.55 + }, + { + "location": 0.5, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": 0.6, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:continents", + "argument2": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 9.1, + "y_scale": 0 + }, + "argument2": 0.1 + } + }, + "argument2": -0.35 + }, + "argument2": 0.5 + }, + "points": [ + { + "location": -0.7, + "value": 0.0, + "derivative": 0 + }, + { + "location": -0.4, + "value": -0.07, + "derivative": 0 + }, + { + "location": -0.185, + "value": 0.05, + "derivative": 0.3 + }, + { + "location": -0.18, + "value": 0.075, + "derivative": 9.0 + }, + { + "location": -0.075, + "value": 1.0, + "derivative": 0 + }, + { + "location": 0.3, + "value": 0.0, + "derivative": 0 + } + ] + } + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:variation_select", + "xz_scale": 0.18, + "y_scale": 0 + }, + "points": [ + { + "location": -0.1, + "value": 0.0, + "derivative": 0 + }, + { + "location": 0.0, + "value": 1.0, + "derivative": 0 + } + ] + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": 0.5, + "argument2": { + "type": "add", + "argument1": -0.275, + "argument2": { + "type": "add", + "argument1": "custom_ore_gen:continents", + "argument2": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 9.1, + "y_scale": 0 + }, + "argument2": 0.07 + } + } + } + }, + "points": [ + { + "location": -0.7, + "value": 0, + "derivative": 0 + }, + { + "location": -0.4, + "value": -0.08, + "derivative": 0 + }, + { + "location": -0.25, + "value": 0.0, + "derivative": 0.2 + }, + { + "location": -0.249, + "value": 0.0, + "derivative": 0.0 + }, + { + "location": -0.175, + "value": 0.0, + "derivative": 0.0 + }, + { + "location": -0.13, + "value": 0.175, + "derivative": 15.0 + }, + { + "location": -0.1, + "value": 1, + "derivative": 0 + }, + { + "location": 0.3, + "value": 0, + "derivative": 0 + } + ] + } + }, + "argument2": 0.6 + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:variation_select", + "xz_scale": 0.18, + "y_scale": 0 + }, + "points": [ + { + "location": -0.1, + "value": 1.0, + "derivative": 0 + }, + { + "location": 0.0, + "value": 0.0, + "derivative": 0 + } + ] + } + } + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "clamp", + "min": 0, + "max": 1, + "input": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:cliffs", + "xz_scale": 0.4, + "y_scale": 0 + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:roughness", + "argument2": 0.3 + } + }, + "argument2": 0.3 + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:orogeny", + "points": [ + { + "location": 0.6, + "value": 0, + "derivative": 0 + }, + { + "location": 2, + "value": 1.2, + "derivative": 0 + } + ] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents.json new file mode 100644 index 00000000..98335969 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents.json @@ -0,0 +1,196 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": 0.6, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 0.1, + "y_scale": 0 + }, + "argument2": 0.1 + }, + "argument2": { + "type": "min", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continent_trenches_b", + "xz_scale": 0.1, + "y_scale": 0 + } + }, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continent_trenches_a", + "xz_scale": 0.1, + "y_scale": 0 + } + } + } + }, + "argument2": 0.3 + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.005, + "value": 0.2, + "derivative": 0.5 + }, + { + "location": 0.06, + "value": 0.45, + "derivative": 0.1 + }, + { + "location": 0.105, + "value": 0.55, + "derivative": 0.22 + }, + { + "location": 0.165, + "value": 0.6, + "derivative": 0.22 + }, + { + "location": 0.5, + "value": 0.75, + "derivative": 0.7 + }, + { + "location": 1, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": 0.1, + "argument2": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:continentalness_large", + "xz_scale": 0.05, + "y_scale": 0 + } + }, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continentalness", + "xz_scale": 0.025, + "y_scale": 0 + } + } + } + }, + "argument2": 5.0 + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "clamp", + "min": -0.1, + "max": 6, + "input": { + "type": "mul", + "argument1": 2.5, + "argument2": { + "type": "add", + "argument1": -0.1, + "argument2": { + "type": "noise", + "noise": "lithosphere:continent_regions", + "xz_scale": 10.0, + "y_scale": 0 + } + } + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:orogeny", + "xz_scale": 0.025, + "y_scale": 0 + }, + "points": [ + { + "location": -1.0059170172770522, + "value": -0.0023781670732448967, + "derivative": 0 + }, + { + "location": -0.2629656813549912, + "value": 2, + "derivative": 0 + }, + { + "location": 0.503051207772355, + "value": 0.003392583914896552, + "derivative": 0 + } + ] + } + } + } + } + }, + "argument2": -1.5000000000000002 + } + }, + "points": [ + { + "location": -1.0014012866114452, + "value": -0.7471759829313853, + "derivative": 0 + }, + { + "location": 1, + "value": 1, + "derivative": 1 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents_coasts.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents_coasts.json new file mode 100644 index 00000000..7dfc6c68 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/continents_coasts.json @@ -0,0 +1,65 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "max", + "argument1": "custom_ore_gen:continents", + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:volcanic_islands", + "points": [ + { + "location": 0.14360335362930743, + "value": -0.1310218390591008, + "derivative": 18.0000000000004 + }, + { + "location": 0.14880633072371618, + "value": -0.1015555424693857, + "derivative": 0 + }, + { + "location": 0.2, + "value": -0.08147924539874107, + "derivative": 0 + } + ] + } + } + }, + "points": [ + { + "location": -0.49976008525166954, + "value": -0.5002721028087205, + "derivative": 1 + }, + { + "location": -0.10337850472876609, + "value": -0.20295646190819788, + "derivative": 0.25036175009465034 + }, + { + "location": 0.12634764285727262, + "value": -0.09327753654205617, + "derivative": 0 + }, + { + "location": 0.17710100129056594, + "value": 0.3240372305999084, + "derivative": 0 + }, + { + "location": 0.49749810507038805, + "value": 0.49871852056804145, + "derivative": 1.0325850374726078 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/density/final_density.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/density/final_density.json new file mode 100644 index 00000000..35e2a916 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/density/final_density.json @@ -0,0 +1,72 @@ +{ + "type": "squeeze", + "argument": { + "type": "mul", + "argument1": 0.64, + "argument2": { + "type": "interpolated", + "argument": { + "type": "add", + "argument1": 0.1171875, + "argument2": { + "type": "mul", + "argument1": { + "type": "y_clamped_gradient", + "from_y": -64, + "to_y": -40, + "from_value": 0, + "to_value": 1 + }, + "argument2": { + "type": "add", + "argument1": -0.1171875, + "argument2": { + "type": "add", + "argument1": -0.078125, + "argument2": { + "type": "mul", + "argument1": { + "type": "y_clamped_gradient", + "from_y": 500, + "to_y": 520, + "from_value": 1, + "to_value": 0 + }, + "argument2": { + "type": "add", + "argument1": 0.078125, + "argument2": { + "type": "add", + "argument1": "custom_ore_gen:sloped_cheese", + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:sloped_cheese", + "points": [ + { + "location": 0.1, + "value": 0.0, + "derivative": 0 + }, + { + "location": 0.45, + "value": 1.0, + "derivative": 0 + } + ] + } + }, + "argument2": "lithosphere:caves/caves_final" + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/depth.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/depth.json new file mode 100644 index 00000000..0c8cc071 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/depth.json @@ -0,0 +1,40 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "y_clamped_gradient", + "from_y": -64, + "to_y": 512, + "from_value": 1.5, + "to_value": -2.5 + }, + "points": [ + { + "location": -0.001, + "value": -0.001, + "derivative": 1 + }, + { + "location": 0.001, + "value": -0.001, + "derivative": 0.4 + }, + { + "location": 1.0, + "value": 1.0, + "derivative": 1 + } + ] + } + }, + "argument2": "custom_ore_gen:topography_final" + }, + "argument2": -0.1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/erosion_detail.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/erosion_detail.json new file mode 100644 index 00000000..1c5f4243 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/erosion_detail.json @@ -0,0 +1,19 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "abs", + "argument": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 3, + "y_scale": 0 + }, + "argument2": 0.10000000000000003 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_depth.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_depth.json new file mode 100644 index 00000000..21878cb8 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_depth.json @@ -0,0 +1,69 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": -1, + "argument2": { + "type": "add", + "argument1": -1, + "argument2": "custom_ore_gen:lakes_placement" + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 3, + "y_scale": 0 + }, + "argument2": -0.2 + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 5.9, + "y_scale": 0 + } + }, + "argument2": -0.4 + }, + "argument2": 0.5 + } + }, + "points": [ + { + "location": 0.5, + "value": -0.26, + "derivative": 0.07 + }, + { + "location": 1, + "value": -0.24, + "derivative": 0 + } + ] + } + }, + "argument2": -0.3 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_placement.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_placement.json new file mode 100644 index 00000000..a2ce7235 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/lakes_placement.json @@ -0,0 +1,146 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": 0.5, + "argument2": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": -0.4, + "argument2": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:lakes_placement", + "xz_scale": 0.4, + "y_scale": 0 + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continentalness", + "xz_scale": 0.3, + "y_scale": 0 + } + }, + "argument2": -4.4 + }, + "argument2": -0.9999999999999999 + }, + "argument2": 0.06 + } + } + }, + "points": [ + { + "location": -0.3, + "value": 1, + "derivative": -0.05 + }, + { + "location": 0.4, + "value": -1, + "derivative": 0 + } + ] + } + }, + "argument2": 0.9999999999999992 + }, + "argument2": { + "type": "add", + "argument1": "custom_ore_gen:roughness", + "argument2": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 3, + "y_scale": 0 + } + }, + "argument2": -0.4 + }, + "argument2": 0.35 + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:continents", + "points": [ + { + "location": -0.3, + "value": 1, + "derivative": 0 + }, + { + "location": 1, + "value": 0, + "derivative": 0 + } + ] + } + }, + "argument2": 2 + } + } + }, + "points": [ + { + "location": -0.8, + "value": 0, + "derivative": 0 + }, + { + "location": -0.5, + "value": 0.15, + "derivative": 0.3 + }, + { + "location": -0.32, + "value": 0.25, + "derivative": 1 + }, + { + "location": 0.6, + "value": 1, + "derivative": 0 + }, + { + "location": 0.7, + "value": 1, + "derivative": 0 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesa_placement.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesa_placement.json new file mode 100644 index 00000000..23321440 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesa_placement.json @@ -0,0 +1,71 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:mesa_placement", + "xz_scale": 0.35, + "y_scale": 0 + }, + "points": [ + { + "location": -1.5, + "value": -4, + "derivative": 0 + }, + { + "location": 0.6, + "value": 0.5, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:continents", + "points": [ + { + "location": -0.8, + "value": -4, + "derivative": 0 + }, + { + "location": 0.6, + "value": 0, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:swamp_placement", + "points": [ + { + "location": 0.19925928566100026, + "value": -0.00394316740780809, + "derivative": 0 + }, + { + "location": 1.098883476098011, + "value": -3.9953112100754486, + "derivative": 0 + } + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas.json new file mode 100644 index 00000000..98fa73a7 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas.json @@ -0,0 +1,200 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:orogeny", + "points": [ + { + "location": 1.0, + "value": 1.0, + "derivative": 0 + }, + { + "location": 2.0, + "value": 0.0, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:mesa_height", + "xz_scale": 0.7, + "y_scale": 0 + }, + "points": [ + { + "location": -1.5, + "value": 0, + "derivative": 0 + }, + { + "location": 1, + "value": 0.7, + "derivative": 0 + }, + { + "location": 2.2, + "value": 1.2, + "derivative": 0 + } + ] + } + } + }, + "argument2": 0.30000000000000004 + }, + "argument2": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:mesa_variation", + "xz_scale": 0.3, + "y_scale": 0 + }, + "argument2": { + "type": "add", + "argument1": "custom_ore_gen:mesa_placement", + "argument2": { + "type": "noise", + "noise": "lithosphere:mesa_additions", + "xz_scale": 1.5, + "y_scale": 0 + } + } + }, + "points": [ + { + "location": -0.15, + "value": 0, + "derivative": 0 + }, + { + "location": 0.0471304347826087, + "value": 0.1993478260869566, + "derivative": 0 + }, + { + "location": 0.12, + "value": 1, + "derivative": 0.25 + }, + { + "location": 0.32, + "value": 1.15, + "derivative": 0.15 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:mesa_placement", + "argument2": { + "type": "noise", + "noise": "lithosphere:mesa_base", + "xz_scale": 1, + "y_scale": 0 + } + }, + "argument2": 0.6666666666666666 + }, + "points": [ + { + "location": -0.16, + "value": 0, + "derivative": 0 + }, + { + "location": 0.049913043478260866, + "value": 0.1993478260869566, + "derivative": 0 + }, + { + "location": 0.1, + "value": 1, + "derivative": 0.25 + }, + { + "location": 0.3, + "value": 1.15, + "derivative": 0.15 + } + ] + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": -0.10000000000000003, + "argument2": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:mesa_base", + "xz_scale": 1.7000000000000004, + "y_scale": 0 + }, + "argument2": "custom_ore_gen:mesa_placement" + } + }, + "points": [ + { + "location": -0.16330434782608683, + "value": -0.0013043478260863495, + "derivative": 0 + }, + { + "location": 0.05026086956521736, + "value": 0.20452173913043542, + "derivative": 0 + }, + { + "location": 0.10434782608695659, + "value": 0.9965217391304348, + "derivative": 0.1768421052631575 + }, + { + "location": 0.30086956521739117, + "value": 1.1521739130434785, + "derivative": 0.1424999999999989 + } + ] + } + }, + "argument2": 0.7 + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas_old.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas_old.json new file mode 100644 index 00000000..bed20675 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mesas_old.json @@ -0,0 +1,179 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:mesa_height", + "xz_scale": 0.7, + "y_scale": 0 + }, + "points": [ + { + "location": -1.5, + "value": 0.0, + "derivative": 0 + }, + { + "location": 1, + "value": 0.7, + "derivative": 0 + }, + { + "location": 2.2, + "value": 1.2, + "derivative": 0 + } + ] + } + }, + "argument2": 0.30000000000000004 + }, + "argument2": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:mesa_variation", + "xz_scale": 0.3, + "y_scale": 0 + }, + "argument2": { + "type": "add", + "argument1": "custom_ore_gen:mesa_placement", + "argument2": { + "type": "noise", + "noise": "lithosphere:mesa_additions", + "xz_scale": 1.5, + "y_scale": 0 + } + } + }, + "points": [ + { + "location": -0.15, + "value": 0, + "derivative": 0 + }, + { + "location": 0.0471304347826087, + "value": 0.1993478260869566, + "derivative": 0 + }, + { + "location": 0.12, + "value": 1, + "derivative": 0.25 + }, + { + "location": 0.32, + "value": 1.15, + "derivative": 0.15 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:mesa_placement", + "argument2": { + "type": "noise", + "noise": "lithosphere:mesa_base", + "xz_scale": 1, + "y_scale": 0 + } + }, + "argument2": 0.6666666666666666 + }, + "points": [ + { + "location": -0.16, + "value": 0, + "derivative": 0 + }, + { + "location": 0.049913043478260866, + "value": 0.1993478260869566, + "derivative": 0 + }, + { + "location": 0.1, + "value": 1, + "derivative": 0.25 + }, + { + "location": 0.3, + "value": 1.15, + "derivative": 0.15 + } + ] + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": -0.10000000000000003, + "argument2": { + "type": "add", + "argument1": { + "type": "noise", + "noise": "lithosphere:mesa_base", + "xz_scale": 1.7000000000000004, + "y_scale": 0 + }, + "argument2": "custom_ore_gen:mesa_placement" + } + }, + "points": [ + { + "location": -0.16330434782608683, + "value": -0.0013043478260863495, + "derivative": 0 + }, + { + "location": 0.05026086956521736, + "value": 0.20452173913043542, + "derivative": 0 + }, + { + "location": 0.10434782608695659, + "value": 0.9965217391304348, + "derivative": 0.1768421052631575 + }, + { + "location": 0.30086956521739117, + "value": 1.1521739130434785, + "derivative": 0.1424999999999989 + } + ] + } + }, + "argument2": 0.7 + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_base.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_base.json new file mode 100644 index 00000000..79d253b5 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_base.json @@ -0,0 +1,164 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "shifted_noise", + "noise": "lithosphere:mountains_shape", + "xz_scale": 105.90000000000047, + "y_scale": 0, + "shift_x": -100000, + "shift_y": 0, + "shift_z": 100000 + } + }, + "argument2": { + "type": "abs", + "argument": { + "type": "shifted_noise", + "noise": "lithosphere:mountains_shape", + "xz_scale": 60.0000000000006, + "y_scale": 0, + "shift_x": 100000, + "shift_y": 0, + "shift_z": -100000 + } + } + }, + "argument2": 0.5999999999999993 + }, + "argument2": 1.5 + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "mul", + "argument1": 2.1, + "argument2": { + "type": "noise", + "noise": "lithosphere:mountains_valleys", + "xz_scale": 0.175, + "y_scale": 0 + } + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:jagged", + "xz_scale": 1.0999999999999999, + "y_scale": 0 + } + }, + "argument2": -0.01 + }, + "argument2": 0.2 + } + }, + "points": [ + { + "location": 0.0002636959756417423, + "value": 0.0016079171144931514, + "derivative": 0 + }, + { + "location": 0.25, + "value": 0.5025172744345754, + "derivative": 0.36574074074074464 + }, + { + "location": 0.5680059985537048, + "value": 0.9974804958648761, + "derivative": 0 + }, + { + "location": 0.877068240778131, + "value": 1.1727179882717886, + "derivative": 0.2 + }, + { + "location": 3.006104525397133, + "value": 1.3979741128283603, + "derivative": 0 + } + ] + } + } + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:mountains_weathering", + "argument2": 0.15 + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 0.975, + "y_scale": 0 + } + }, + "argument2": 0.05 + } + }, + "argument2": 0.7999999999999999 + }, + "points": [ + { + "location": -1.2, + "value": -0.6461375418382934, + "derivative": 0.587048994490454 + }, + { + "location": 0.3, + "value": 0.5, + "derivative": 0.8 + }, + { + "location": 1.3466961487857894, + "value": 1.523097380959721, + "derivative": 1.021015477029345 + }, + { + "location": 2.5563444318881157, + "value": 2.2988765929422055, + "derivative": 0 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_shape.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_shape.json new file mode 100644 index 00000000..19453820 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_shape.json @@ -0,0 +1,243 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:continents", + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 1.25, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "add", + "argument1": 1.0999999999999999, + "argument2": { + "type": "mul", + "argument1": -0.7, + "argument2": { + "type": "abs", + "argument": { + "type": "shifted_noise", + "noise": "lithosphere:mountains_base", + "xz_scale": 0.85, + "y_scale": 0, + "shift_x": -5000, + "shift_y": 0, + "shift_z": -5000 + } + } + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "shifted_noise", + "noise": "lithosphere:mountains_base", + "xz_scale": 0.8, + "y_scale": 0, + "shift_x": 5000, + "shift_y": 0, + "shift_z": 5000 + } + }, + "argument2": -0.7 + }, + "argument2": 1.3 + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:mountains_base", + "xz_scale": 0.85, + "y_scale": 0 + } + }, + "argument2": 0.09999999999999992 + }, + "argument2": 0.9999999999999999 + } + }, + "argument2": -0.9999999999999999 + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": "custom_ore_gen:mountains_base", + "argument2": { + "type": "mul", + "argument1": 0.5, + "argument2": "custom_ore_gen:orogeny" + } + }, + "points": [ + { + "location": -0.1, + "value": 0.0, + "derivative": 0 + }, + { + "location": 0.9, + "value": 0.5, + "derivative": 1.2 + }, + { + "location": 1.3, + "value": 0.95, + "derivative": 0 + }, + { + "location": 1.6, + "value": 1.0, + "derivative": 0 + }, + { + "location": 2.25, + "value": 1.1, + "derivative": 0 + } + ] + } + } + }, + "argument2": 1.5000000000000007 + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:mountains_base", + "argument2": 0.7999999999999999 + } + }, + "argument2": 1.2 + }, + "points": [ + { + "location": -2.0008288243387504, + "value": -0.49897615549681923, + "derivative": 0 + }, + { + "location": -0.7722271935763148, + "value": -0.12420646904228239, + "derivative": 0.49344316811070665 + }, + { + "location": 0.4, + "value": 0.6, + "derivative": 0.8 + }, + { + "location": 2.6224934733128626, + "value": 3.1735981437831056, + "derivative": 0.3494421418602317 + }, + { + "location": 5.000299852617543, + "value": 6.583799642372736, + "derivative": 1.7304960909246236 + }, + { + "location": 5.156001748812116, + "value": 6.996412354006738, + "derivative": 0.33835761411195625 + }, + { + "location": 7.582408947589361, + "value": 6.011514694863861, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.35, + "y_scale": 0 + } + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:mountains_weathering", + "argument2": 0.3 + } + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.5, + "value": 0.25, + "derivative": 0 + }, + { + "location": 2, + "value": 0.85, + "derivative": 0.33 + }, + { + "location": 3, + "value": 1, + "derivative": 0 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_weathering.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_weathering.json new file mode 100644 index 00000000..1d25f1c4 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mountains_weathering.json @@ -0,0 +1,27 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 2, + "y_scale": 0 + } + }, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:ridge", + "xz_scale": 0.6, + "y_scale": 0 + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/mushroom_islands.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mushroom_islands.json new file mode 100644 index 00000000..28eadd57 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/mushroom_islands.json @@ -0,0 +1,73 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:roughness", + "argument2": { + "type": "noise", + "noise": "lithosphere:mountains_base", + "xz_scale": 2.0, + "y_scale": 0 + } + }, + "points": [ + { + "location": -0.15, + "value": 0.7, + "derivative": 0 + }, + { + "location": -0.05, + "value": 0.6, + "derivative": 0 + }, + { + "location": 0.05, + "value": 0.5, + "derivative": 0 + }, + { + "location": 0.15, + "value": 0.4, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:roughness", + "argument2": "minecraft:overworld/continents" + }, + "points": [ + { + "location": -1.2, + "value": 1.1, + "derivative": 0 + }, + { + "location": -1.08, + "value": 1.0, + "derivative": 0 + }, + { + "location": -1.02, + "value": 0.0, + "derivative": 0 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/orogeny.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/orogeny.json new file mode 100644 index 00000000..f7882b18 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/orogeny.json @@ -0,0 +1,100 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": -0.2, + "argument2": { + "type": "mul", + "argument1": 3.200000000000001, + "argument2": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": 3, + "argument2": { + "type": "add", + "argument1": -0.10000000000000003, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:orogeny", + "xz_scale": 0.03, + "y_scale": 0 + } + } + } + }, + "points": [ + { + "location": -1, + "value": -1, + "derivative": 1 + }, + { + "location": 1.9869910107372983, + "value": 1.493458466864761, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:orogeny_variation", + "xz_scale": 0.04, + "y_scale": 0 + } + }, + "argument2": -1.2000000000000037 + }, + "argument2": 0.35 + } + } + } + }, + "points": [ + { + "location": -1.5473011420027334, + "value": 2.1448256191166886, + "derivative": 0 + }, + { + "location": -0.0034350304074217686, + "value": 1.912965422058449, + "derivative": -0.03837981999595763 + }, + { + "location": 1.2462071875958165, + "value": 1.112938038310409, + "derivative": -0.1041737971318851 + }, + { + "location": 2.4862331054926377, + "value": 0.43427069702551413, + "derivative": 0 + }, + { + "location": 4.545910168043465, + "value": -0.014228459376440017, + "derivative": 0 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_mask.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_mask.json new file mode 100644 index 00000000..88c2cad6 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_mask.json @@ -0,0 +1,37 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.01, + "value": 0, + "derivative": 0 + }, + { + "location": 0.1, + "value": 1, + "derivative": 0 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_roughness.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_roughness.json new file mode 100644 index 00000000..feb5a92f --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_roughness.json @@ -0,0 +1,46 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": "custom_ore_gen:roughness", + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7000000000000001, + "y_scale": 0 + } + }, + "points": [ + { + "location": 0.0010537059864972331, + "value": 0.004126671646150548, + "derivative": 0 + }, + { + "location": 0.029203935180293905, + "value": 0.0823975951013069, + "derivative": 7.44416873449137 + }, + { + "location": 0.057658190170974344, + "value": 0.503543855067291, + "derivative": 14.516129032258162 + }, + { + "location": 0.1497165175582627, + "value": 1.0016307049315492, + "derivative": 0 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_c.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_c.json new file mode 100644 index 00000000..d277ff3a --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_c.json @@ -0,0 +1,154 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": -0.555, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:river_roughness", + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": { + "type": "clamp", + "min": 0.1, + "max": 1, + "input": { + "type": "add", + "argument1": { + "type": "clamp", + "min": 0, + "max": 0.9999999999999999, + "input": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:river_mask", + "argument2": -0.8 + }, + "argument2": 0.9999999999999992 + } + }, + "argument2": { + "type": "add", + "argument1": 0.10000000000000003, + "argument2": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 3, + "y_scale": 0 + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": 0.5 + } + } + } + } + } + } + }, + "points": [ + { + "location": 0.002150713233593282, + "value": 0.00283157812902024, + "derivative": 0 + }, + { + "location": 0.04556430113928506, + "value": 0.053225427270452236, + "derivative": 0 + }, + { + "location": 0.07896186418523429, + "value": 0.072, + "derivative": 0 + }, + { + "location": 0.10079873233066206, + "value": 0.19800802886104754, + "derivative": 0 + }, + { + "location": 0.13676533868783816, + "value": 0.23, + "derivative": 0 + }, + { + "location": 0.17273194504501424, + "value": 0.3577681409610177, + "derivative": 0 + }, + { + "location": 0.23438898451445841, + "value": 0.38772316197976187, + "derivative": 0 + }, + { + "location": 0.2665020259047942, + "value": 0.5325057635703576, + "derivative": 0 + }, + { + "location": 0.34, + "value": 0.5656221260946868, + "derivative": 0 + }, + { + "location": 0.4, + "value": 0.7459135514914128, + "derivative": 0.09838292737042877 + }, + { + "location": 0.6320222622401517, + "value": 0.8426675039419397, + "derivative": 0.7367765729832989 + }, + { + "location": 0.953557190932748, + "value": 1.3034812477103055, + "derivative": 2.650176228977901 + }, + { + "location": 1.236636844332311, + "value": 3.249141950234568, + "derivative": 11.062042422762687 + }, + { + "location": 1.274425255713071, + "value": 3.940363333744151, + "derivative": 44.120242722438554 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_g.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_g.json new file mode 100644 index 00000000..b44dc22e --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_g.json @@ -0,0 +1,124 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": -0.555, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:river_roughness", + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": { + "type": "clamp", + "min": 0.1, + "max": 1, + "input": { + "type": "add", + "argument1": { + "type": "clamp", + "min": 0, + "max": 0.9999999999999999, + "input": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:river_mask", + "argument2": -0.8 + }, + "argument2": 0.9999999999999992 + } + }, + "argument2": { + "type": "add", + "argument1": 0.10000000000000003, + "argument2": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 3, + "y_scale": 0 + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": 0.5 + } + } + } + } + } + } + }, + "points": [ + { + "location": 0.002150713233593282, + "value": 0.00283157812902024, + "derivative": 0 + }, + { + "location": 0.04556430113928506, + "value": 0.053225427270452236, + "derivative": 0 + }, + { + "location": 0.11683002315235638, + "value": 0.17106586853891428, + "derivative": 2.841754163538001 + }, + { + "location": 0.16803221618275213, + "value": 0.6895411547682563, + "derivative": 0.5564641133485675 + }, + { + "location": 0.44402241600853787, + "value": 0.9072477204507282, + "derivative": 1.3322291880341446 + }, + { + "location": 0.6814559792436795, + "value": 1.312107604429511, + "derivative": 2.650176228977901 + }, + { + "location": 0.9642524869571842, + "value": 2.8781031875231036, + "derivative": 11.062042422762687 + }, + { + "location": 1.0118376810340126, + "value": 3.9468951729844814, + "derivative": 44.120242722438554 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_u.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_u.json new file mode 100644 index 00000000..1deb73f9 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valley_u.json @@ -0,0 +1,114 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": -0.555, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": "custom_ore_gen:river_roughness", + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": { + "type": "clamp", + "min": 0, + "max": 1, + "input": { + "type": "add", + "argument1": { + "type": "clamp", + "min": 0, + "max": 0.9999999999999999, + "input": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:river_mask", + "argument2": -0.9999999999999999 + }, + "argument2": 0.9999999999999992 + } + }, + "argument2": { + "type": "add", + "argument1": 0.10000000000000003, + "argument2": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers_detail", + "xz_scale": 3, + "y_scale": 0 + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:rivers", + "xz_scale": 0.7, + "y_scale": 0 + } + }, + "argument2": 1.0999999999999999 + } + } + } + } + } + } + }, + "points": [ + { + "location": 0.002150713233593282, + "value": 0.00283157812902024, + "derivative": 0 + }, + { + "location": 0.05916748863798171, + "value": 0.05144477569651196, + "derivative": 0 + }, + { + "location": 0.19897245586388027, + "value": 0.12606260307540926, + "derivative": 0.9366564776007699 + }, + { + "location": 0.6421418963420271, + "value": 0.6781976604534464, + "derivative": 1.90617809476648 + }, + { + "location": 0.9115889184005059, + "value": 1.4742994511987502, + "derivative": 3.9509873236978024 + }, + { + "location": 1.0040835486261095, + "value": 2.0034070394217585, + "derivative": 6.86687905660854 + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valleys.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valleys.json new file mode 100644 index 00000000..7393f07f --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/river_valleys.json @@ -0,0 +1,103 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "minecraft:erosion_large", + "xz_scale": 0.1, + "y_scale": 0 + }, + "points": [ + { + "location": -0.2, + "value": 1, + "derivative": 0 + }, + { + "location": -0.1, + "value": 0, + "derivative": 0 + } + ] + } + }, + "argument2": "custom_ore_gen:river_valley_c" + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:river_valley_u", + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "minecraft:erosion_large", + "xz_scale": 0.1, + "y_scale": 0 + }, + "points": [ + { + "location": -0.2, + "value": 0, + "derivative": 0 + }, + { + "location": -0.1, + "value": 1, + "derivative": 0 + }, + { + "location": 0.2029680059923502, + "value": 0.9975880546997432, + "derivative": 0 + }, + { + "location": 0.3045291371814176, + "value": -0.003445104388667977, + "derivative": 0 + } + ] + } + } + } + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:river_valley_g", + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "minecraft:erosion_large", + "xz_scale": 0.1, + "y_scale": 0 + }, + "points": [ + { + "location": 0.20385214652993805, + "value": 0.001440659571383729, + "derivative": 0 + }, + { + "location": 0.3020744126764428, + "value": 1.0014724913605504, + "derivative": 0 + } + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/roughness.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/roughness.json new file mode 100644 index 00000000..27bbcc3f --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/roughness.json @@ -0,0 +1,19 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "abs", + "argument": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 2.1, + "y_scale": 0 + }, + "argument2": 0.1 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/sloped_cheese.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/sloped_cheese.json new file mode 100644 index 00000000..87a02d77 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/sloped_cheese.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:cache_once", + "argument": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "y_clamped_gradient", + "from_y": -64, + "to_y": 512, + "from_value": 1.5, + "to_value": -2.5 + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:topography_final", + "argument2": 1 + } + }, + "argument2": -0.11 + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_placement.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_placement.json new file mode 100644 index 00000000..5f48302d --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_placement.json @@ -0,0 +1,126 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:mesa_placement", + "xz_scale": 0.2, + "y_scale": 0 + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.5, + "value": -2, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:humidity", + "xz_scale": 0.3, + "y_scale": 0 + } + }, + "argument2": -0.2 + }, + "argument2": "custom_ore_gen:erosion_detail" + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:erosion_detail", + "argument2": 3 + }, + "argument2": "custom_ore_gen:orogeny" + }, + "points": [ + { + "location": 0.503565217391304, + "value": 0.004347826086956719, + "derivative": 0 + }, + { + "location": 1.75, + "value": -2, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:continents", + "points": [ + { + "location": -0.3, + "value": -1, + "derivative": 0 + }, + { + "location": -0.05, + "value": 0, + "derivative": 0.8344036966842363 + }, + { + "location": 0.4101997289458542, + "value": 0.15034429690187112, + "derivative": 0 + }, + { + "location": 2.0002734861642413, + "value": -0.05276463848770696, + "derivative": 0 + } + ] + } + } + } + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.1, + "value": 1, + "derivative": 0 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_terrain.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_terrain.json new file mode 100644 index 00000000..262417d5 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/swamp_terrain.json @@ -0,0 +1,61 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:river_mask", + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.9965217391304348, + "value": 0.9998260869565221, + "derivative": 0 + } + ] + } + }, + "argument2": "custom_ore_gen:swamp_placement" + }, + "argument2": { + "type": "add", + "argument1": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:swamp_terrain", + "xz_scale": 5.000000000000003, + "y_scale": 0 + } + }, + "argument2": 0.06 + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "noise", + "noise": "minecraft:gravel", + "xz_scale": 3, + "y_scale": 0 + }, + "argument2": 0.005 + } + }, + "argument2": -0.525 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_cliffs.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_cliffs.json new file mode 100644 index 00000000..a7a59f76 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_cliffs.json @@ -0,0 +1,15 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:coastal_cliffs", + "argument2": "custom_ore_gen:topography_mountains" + }, + "argument2": "custom_ore_gen:mesas" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_final.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_final.json new file mode 100644 index 00000000..9928e58e --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_final.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:flat_cache", + "argument": { + "type": "cache_2d", + "argument": "custom_ore_gen:topography_swamps" + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_mountains.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_mountains.json new file mode 100644 index 00000000..af26eaf9 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_mountains.json @@ -0,0 +1,95 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:volcanic_mountains", + "argument2": "custom_ore_gen:basic_topography" + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": -0.05, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": 0.2, + "argument2": { + "type": "noise", + "noise": "minecraft:jagged", + "xz_scale": 125.0, + "y_scale": 0 + } + }, + "argument2": "custom_ore_gen:continents" + } + }, + "points": [ + { + "location": -0.5, + "value": 0, + "derivative": 0 + }, + { + "location": -0.164, + "value": 0, + "derivative": 0 + }, + { + "location": 0.7, + "value": 0.5, + "derivative": 1.3100436681222607 + }, + { + "location": 1.4957218502292502, + "value": 0.9966698642152904, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": { + "type": "add", + "argument1": "custom_ore_gen:roughness", + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:orogeny", + "argument2": "custom_ore_gen:mountains_base" + } + }, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:mountains_shape", + "argument2": "custom_ore_gen:orogeny" + } + }, + "argument2": 0.04 + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:orogeny", + "argument2": "custom_ore_gen:mountains_base" + }, + "argument2": 0.01 + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_rivers.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_rivers.json new file mode 100644 index 00000000..504d255a --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_rivers.json @@ -0,0 +1,19 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "min", + "argument1": "custom_ore_gen:river_valleys", + "argument2": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": "custom_ore_gen:topography_cliffs", + "argument2": "custom_ore_gen:lakes_placement" + }, + "argument2": "custom_ore_gen:lakes_depth" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_swamps.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_swamps.json new file mode 100644 index 00000000..d4ab65a7 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/topography_swamps.json @@ -0,0 +1,44 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "add", + "argument1": "custom_ore_gen:swamp_terrain", + "argument2": { + "type": "mul", + "argument1": { + "type": "mul", + "argument1": -1, + "argument2": { + "type": "add", + "argument1": -1, + "argument2": { + "type": "mul", + "argument1": "custom_ore_gen:swamp_placement", + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:river_mask", + "points": [ + { + "location": 0.0049565217391304706, + "value": -0.0049565217391304706, + "derivative": 0 + }, + { + "location": 0.998260869565218, + "value": 1.00304347826087, + "derivative": 0 + } + ] + } + } + } + } + }, + "argument2": "custom_ore_gen:topography_rivers" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_islands.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_islands.json new file mode 100644 index 00000000..d41f1efc --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_islands.json @@ -0,0 +1,140 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": "custom_ore_gen:continents", + "points": [ + { + "location": -1, + "value": 1, + "derivative": 0 + }, + { + "location": -0.75, + "value": 0.75, + "derivative": -1.25 + }, + { + "location": -0.2, + "value": 0, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "noise", + "noise": "lithosphere:continent_regions", + "xz_scale": 20, + "y_scale": 0 + }, + "points": [ + { + "location": -0.2, + "value": 0, + "derivative": 0 + }, + { + "location": 0.5, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continentalness", + "xz_scale": 0.15, + "y_scale": 0 + } + }, + "points": [ + { + "location": 0, + "value": 1, + "derivative": 0 + }, + { + "location": 0.2, + "value": 0.9, + "derivative": -2.8 + }, + { + "location": 0.4, + "value": 0, + "derivative": 0 + } + ] + } + } + } + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.37, + "value": 0.25, + "derivative": 1.55 + }, + { + "location": 0.72, + "value": 1, + "derivative": 0 + } + ] + } + }, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:continent_regions", + "xz_scale": 40, + "y_scale": 0 + } + } + }, + "points": [ + { + "location": 0, + "value": 0, + "derivative": 0 + }, + { + "location": 0.95, + "value": 1.1, + "derivative": 0.55 + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_mountains.json b/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_mountains.json new file mode 100644 index 00000000..f6aa7e11 --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/density_function/volcanic_mountains.json @@ -0,0 +1,92 @@ +{ + "type": "flat_cache", + "argument": { + "type": "cache_2d", + "argument": { + "type": "mul", + "argument1": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "add", + "argument1": { + "type": "mul", + "argument1": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "minecraft:erosion", + "xz_scale": 2.5, + "y_scale": 0 + } + }, + "argument2": -0.1 + }, + "argument2": "custom_ore_gen:volcanic_islands" + }, + "points": [ + { + "location": 0.6, + "value": 0, + "derivative": 0 + }, + { + "location": 0.75, + "value": 0.15163141469685884, + "derivative": 0.32629796373549297 + }, + { + "location": 0.9851171512607291, + "value": 0.9443211533398697, + "derivative": 4.551856594110115 + }, + { + "location": 0.9984760406417272, + "value": 0.9952003584978202, + "derivative": 1.4036059106481638 + } + ] + } + }, + "argument2": { + "type": "mul", + "argument1": 0.5, + "argument2": { + "type": "minecraft:spline", + "spline": { + "coordinate": { + "type": "mul", + "argument1": 1.2, + "argument2": { + "type": "abs", + "argument": { + "type": "noise", + "noise": "lithosphere:mountains_shape", + "xz_scale": 79.09999999999997, + "y_scale": 0 + } + } + }, + "points": [ + { + "location": 0.0022965455811022606, + "value": 1.0013258014742137, + "derivative": -0.6318579006228999 + }, + { + "location": 0.7368348150264282, + "value": 0.17988579803906854, + "derivative": -0.17711721525263788 + }, + { + "location": 1.500845810182251, + "value": -0.002047815788355556, + "derivative": 0 + } + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/noise_settings/ultra_large_biome.json b/src/main/resources/data/custom_ore_gen/worldgen/noise_settings/ultra_large_biome.json new file mode 100644 index 00000000..0a11c4aa --- /dev/null +++ b/src/main/resources/data/custom_ore_gen/worldgen/noise_settings/ultra_large_biome.json @@ -0,0 +1,2481 @@ +{ + "aquifers_enabled": true, + "default_block": { + "Name": "minecraft:stone" + }, + "default_fluid": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + }, + "disable_mob_generation": false, + "legacy_random_source": false, + "noise": { + "height": 576, + "min_y": -64, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": { + "type": "range_choice", + "min_inclusive": -1.3, + "max_exclusive": 10, + "input": "lithosphere:caves/underground_rivers", + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 0.8, + "y_scale": 0.7 + }, + "when_out_of_range": -1.0 + }, + "continents": "minecraft:overworld/continents", + "depth": "lithosphere:depth", + "erosion": "minecraft:overworld/erosion", + "final_density": "custom_ore_gen:density/final_density", + "fluid_level_floodedness": { + "type": "range_choice", + "min_inclusive": 1.7, + "max_exclusive": 10, + "input": "lithosphere:caves/underground_rivers", + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 0.8, + "y_scale": 0.67 + }, + "when_out_of_range": 0.8 + }, + "fluid_level_spread": { + "type": "range_choice", + "min_inclusive": 3.9, + "max_exclusive": 10, + "input": "lithosphere:caves/underground_rivers", + "when_in_range": { + "type": "noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 0.4, + "y_scale": 0.714 + }, + "when_out_of_range": -0.55 + }, + "initial_density_without_jaggedness": { + "type": "minecraft:add", + "argument1": 0.1171875, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 0.0, + "from_y": -64, + "to_value": 1.0, + "to_y": -40 + }, + "argument2": { + "type": "minecraft:add", + "argument1": -0.1171875, + "argument2": { + "type": "minecraft:add", + "argument1": -0.078125, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_value": 1.0, + "from_y": 496, + "to_value": 0.0, + "to_y": 512 + }, + "argument2": { + "type": "minecraft:add", + "argument1": 0.078125, + "argument2": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:add", + "argument1": -0.703125, + "argument2": { + "type": "minecraft:mul", + "argument1": 4.0, + "argument2": { + "type": "minecraft:quarter_negative", + "argument": { + "type": "minecraft:mul", + "argument1": "lithosphere:depth", + "argument2": { + "type": "minecraft:cache_2d", + "argument": "minecraft:overworld/factor" + } + } + } + } + }, + "max": 64.0, + "min": -64.0 + } + } + } + } + } + } + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 0.1, + "y_scale": 0.2 + }, + "ridges": "minecraft:overworld/ridges", + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.1, + "y_scale": 0.0 + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0.0, + "shift_z": "minecraft:shift_z", + "xz_scale": 0.1, + "y_scale": 0.0 + }, + "vein_gap": { + "type": "minecraft:noise", + "noise": "minecraft:ore_gap", + "xz_scale": 1.0, + "y_scale": 1.0 + }, + "vein_ridged": { + "type": "minecraft:add", + "argument1": -0.07999999821186066, + "argument2": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_a", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + }, + "argument2": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_vein_b", + "xz_scale": 4.0, + "y_scale": 4.0 + }, + "when_out_of_range": 0.0 + } + } + } + } + }, + "vein_toggle": { + "type": "minecraft:interpolated", + "argument": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "max_exclusive": 51.0, + "min_inclusive": -60.0, + "when_in_range": { + "type": "minecraft:noise", + "noise": "minecraft:ore_veininess", + "xz_scale": 1.5, + "y_scale": 1.5 + }, + "when_out_of_range": 0.0 + } + } + }, + "ore_veins_enabled": true, + "sea_level": 63, + "spawn_target": [ + { + "continentalness": [ + 0.0, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + -0.16 + ] + }, + { + "continentalness": [ + 0.0, + 1.0 + ], + "depth": 0.0, + "erosion": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "offset": 0.0, + "temperature": [ + -1.0, + 1.0 + ], + "weirdness": [ + 0.16, + 1.0 + ] + } + ], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "above_bottom": 5 + }, + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:above_preliminary_surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 97 + }, + "surface_depth_multiplier": 2 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 62 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 60 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.0, + "noise": "minecraft:surface_swamp" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:badlands", + "minecraft:eroded_badlands", + "minecraft:wooded_badlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 256 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": -0.5454, + "min_threshold": -0.909, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.1818, + "min_threshold": -0.1818, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.909, + "min_threshold": 0.5454, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:terracotta" + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:red_sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:hole" + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 63 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": true, + "anchor": { + "absolute": 74 + }, + "surface_depth_multiplier": 1 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:orange_terracotta" + } + } + } + }, + { + "type": "minecraft:bandlands" + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:white_terracotta" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": -1, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:temperature" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + ] + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": 0.0, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": 0.0, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.6, + "min_threshold": 0.35, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 10 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 65 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": -0.06060606060606061, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:coarse_dirt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": -0.11515151515151514, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:podzol", + "Properties": { + "snowy": "false" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:ice_spikes" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mushroom_fields" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mycelium", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:grass_block", + "Properties": { + "snowy": "false" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + ] + } + ] + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": true, + "offset": -6, + "surface_depth_multiplier": -1 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:hole" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:water", + "Properties": { + "level": "0" + } + } + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.2, + "min_threshold": -0.5, + "noise": "minecraft:packed_ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:packed_ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.025, + "min_threshold": -0.0625, + "noise": "minecraft:ice" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:ice" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:snowy_slopes" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:steep" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:snow_block" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:grove" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.58, + "min_threshold": 0.45, + "noise": "minecraft:powder_snow" + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:water", + "add_stone_depth": false, + "offset": 0, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:powder_snow" + } + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_peaks" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.0125, + "min_threshold": -0.0125, + "noise": "minecraft:calcite" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:calcite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:stony_shore" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 0.05, + "min_threshold": -0.05, + "noise": "minecraft:gravel" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_hills" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 10 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 65 + }, + "surface_depth_multiplier": 1 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:dripstone_caves" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_savanna" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.21212121212121213, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:windswept_gravelly_hills" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.24242424242424243, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": 0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "max_threshold": 1.7976931348623157e+308, + "min_threshold": -0.12121212121212122, + "noise": "minecraft:surface" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:mangrove_swamp" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:mud" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dirt" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:beach", + "minecraft:snowy_beach" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 6, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:desert" + ] + }, + "then_run": { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": true, + "offset": 0, + "secondary_depth_range": 30, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "floor" + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:frozen_peaks", + "minecraft:jagged_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sandstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:sand" + } + } + ] + } + }, + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "add_surface_depth": false, + "offset": 0, + "secondary_depth_range": 0, + "surface_type": "ceiling" + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:stone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:gravel" + } + } + ] + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", + "false_at_and_above": { + "absolute": 8 + }, + "random_name": "minecraft:deepslate", + "true_at_and_below": { + "absolute": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/custom_ore_gen/worldgen/world_preset/ultra_wide_biome.json b/src/main/resources/data/custom_ore_gen/worldgen/world_preset/ultra_wide_biome.json index b66fecdd..0c607724 100644 --- a/src/main/resources/data/custom_ore_gen/worldgen/world_preset/ultra_wide_biome.json +++ b/src/main/resources/data/custom_ore_gen/worldgen/world_preset/ultra_wide_biome.json @@ -8,7 +8,7 @@ "type": "custom_ore_gen:latitude", "seed": 0 }, - "settings": "minecraft:overworld" + "settings": "custom_ore_gen:ultra_large_biome" } }, "minecraft:the_nether": { diff --git a/src/test/java/net/mcreator/customoregen/worldgen/LatitudeMathTest.java b/src/test/java/net/mcreator/customoregen/worldgen/LatitudeMathTest.java index e5cd8244..639f65c1 100644 --- a/src/test/java/net/mcreator/customoregen/worldgen/LatitudeMathTest.java +++ b/src/test/java/net/mcreator/customoregen/worldgen/LatitudeMathTest.java @@ -174,28 +174,28 @@ class LatitudeMathTest { @DisplayName("origin is inside the spawn safe zone") void spawnSafeZone_origin() { assertTrue(LatitudeMath.isInSpawnSafeZone(0, 0)); - assertTrue(LatitudeMath.isInSpawnSafeZone(95, 95)); + assertTrue(LatitudeMath.isInSpawnSafeZone(539, 539)); } @Test @DisplayName("just outside the safe radius is NOT safe") void spawnSafeZone_outside() { - assertFalse(LatitudeMath.isInSpawnSafeZone(96, 0), - "x=96 equals radius, must be outside (strict <)"); - assertFalse(LatitudeMath.isInSpawnSafeZone(0, 96)); - assertFalse(LatitudeMath.isInSpawnSafeZone(-96, -96)); + assertFalse(LatitudeMath.isInSpawnSafeZone(540, 0), + "x=540 equals radius, must be outside (strict <)"); + assertFalse(LatitudeMath.isInSpawnSafeZone(0, 540)); + assertFalse(LatitudeMath.isInSpawnSafeZone(-540, -540)); assertFalse(LatitudeMath.isInSpawnSafeZone(1000, 1000)); } @Test @DisplayName("spawn safe zone is a square symmetric around the origin") void spawnSafeZone_symmetricSquare() { - for (int x : new int[]{0, 50, 95, -50, -95}) { + for (int x : new int[]{0, 50, 539, -50, -539}) { assertEquals(LatitudeMath.isInSpawnSafeZone(x, 50), LatitudeMath.isInSpawnSafeZone(-x, 50), "safe zone must be X-symmetric at x=" + x); } - for (int z : new int[]{0, 50, 95, -50, -95}) { + for (int z : new int[]{0, 50, 539, -50, -539}) { assertEquals(LatitudeMath.isInSpawnSafeZone(50, z), LatitudeMath.isInSpawnSafeZone(50, -z), "safe zone must be Z-symmetric at z=" + z); @@ -205,16 +205,16 @@ class LatitudeMathTest { @Test @DisplayName("spawn safe zone edge count matches a 2*radius x 2*radius square (exclusive)") void spawnSafeZone_edgeCount() { - // SPAWN_SAFE_RADIUS = 96, strict <, so the square is [-95, 95] inclusive on both axes. + // SPAWN_SAFE_RADIUS = 540, strict <, so the square is [-539, 539] inclusive on both axes. int count = 0; - for (int x = -100; x <= 100; x++) { - for (int z = -100; z <= 100; z++) { + for (int x = -545; x <= 545; x++) { + for (int z = -545; z <= 545; z++) { if (LatitudeMath.isInSpawnSafeZone(x, z)) count++; } } - assertEquals(2 * 95 + 1, (int) Math.sqrt(count), - "safe zone side length must be 2*(96-1)+1 = 191"); - assertEquals(191 * 191, count); + assertEquals(2 * 539 + 1, (int) Math.sqrt(count), + "safe zone side length must be 2*(540-1)+1 = 1079"); + assertEquals(1079 * 1079, count); } // ------------------------------------------------------------------