diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ddb1fd59..36038b40 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout repo uses: actions/checkout@v3 - + - name: Validate Biome Colors run: bash ./.scripts/validate-biome-colors.sh @@ -33,18 +33,18 @@ jobs: fetch-depth: '2' - name: Check for version bump - run: sh ./.scripts/check-version-bump.sh + run: bash ./.scripts/check-version-bump.sh - name: Create artifacts - run: sh ./.scripts/pack.sh + run: bash ./.scripts/pack.sh - name: Grab release changelog if: env.version-bumped == 'true' - run: sh ./.scripts/changelog/extract-release-changelog.sh + run: bash ./.scripts/changelog/extract-release-changelog.sh - name: Update changelog if: env.version-bumped == 'true' - run: sh ./.scripts/changelog/update-changelog.sh + run: bash ./.scripts/changelog/update-changelog.sh - name: Push changelog if: env.version-bumped == 'true' @@ -81,7 +81,7 @@ jobs: env: WIKI_DIRECTORY: .wiki # Contents of this directory get pushed to the wiki WIKI_PARENT_REPOSITORY: ${{ github.repository }} # Where to publish to - + steps: - name: Checkout repo uses: actions/checkout@v3 @@ -90,10 +90,10 @@ jobs: - name: Create Biomes Wiki Page run: bash ./.scripts/create-biomes-wiki-page.sh - + - name: Upload Documentation to Wiki - run: sh ./.scripts/upload-to-wiki.sh + run: bash ./.scripts/upload-to-wiki.sh env: LOGIN_NAME: Polyhedral-Bot LOGIN_EMAIL: polybot@protonmail.com - ACCESS_TOKEN: ${{ secrets.POLYBOT }} \ No newline at end of file + ACCESS_TOKEN: ${{ secrets.POLYBOT }} diff --git a/.github/workflows/sync-submodules.yml b/.github/workflows/sync-submodules.yml index caae0ea1..9456e743 100644 --- a/.github/workflows/sync-submodules.yml +++ b/.github/workflows/sync-submodules.yml @@ -2,9 +2,9 @@ name: Sync Submodules on: repository_dispatch: # Submodules dispatch to this when they're updated - types: + types: - Sync Images - + jobs: sync: runs-on: ubuntu-latest diff --git a/.gitmodules b/.gitmodules index 5f50a61e..e3b89fa5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "images"] path = .wiki/images - url = git@github.com:PolyhedralDev/TerraOverworldConfigImages.git + url = https://github.com/PolyhedralDev/TerraOverworldConfigImages.git diff --git a/.scripts/changelog/extract-release-changelog.sh b/.scripts/changelog/extract-release-changelog.sh index 403cfe04..531c6ff5 100755 --- a/.scripts/changelog/extract-release-changelog.sh +++ b/.scripts/changelog/extract-release-changelog.sh @@ -2,8 +2,8 @@ # Grabs the unreleased section from the changelog, and cleans it up for publication -source .scripts/lib.sh -source .scripts/vars.sh +source ./.scripts/lib.sh +source ./.scripts/vars.sh ensure_file "$CHANGELOG" # Copy unreleased changelog to temporary file diff --git a/.scripts/changelog/update-changelog.sh b/.scripts/changelog/update-changelog.sh index 12be53a1..032e6d34 100755 --- a/.scripts/changelog/update-changelog.sh +++ b/.scripts/changelog/update-changelog.sh @@ -2,8 +2,8 @@ # Moves unreleased section to a new version release section, and updates anchors at the bottom of the changelog -source .scripts/lib.sh -source .scripts/vars.sh +source ./.scripts/lib.sh +source ./.scripts/vars.sh ensure_env "version" ensure_env "previous_version" ensure_env "repo_url" @@ -42,4 +42,4 @@ sed -i "s|^\[Unreleased\]: .*|[Unreleased]: $repo_url/compare/v$version...HEAD|" echo "v$version changelog:" echo '---' cat $RELEASE_CHANGELOG -echo '---' \ No newline at end of file +echo '---' diff --git a/.scripts/check-version-bump.sh b/.scripts/check-version-bump.sh index 89204033..612758c4 100755 --- a/.scripts/check-version-bump.sh +++ b/.scripts/check-version-bump.sh @@ -1,6 +1,6 @@ #!/bin/bash -source .scripts/vars.sh +source ./.scripts/vars.sh # Search HEAD diff for a change in the pack version version_diff=$(git diff HEAD^ HEAD "$PACK_MANIFEST" | grep '^+version: ') @@ -19,4 +19,4 @@ else echo "version-bumped=true" >> "$GITHUB_ENV" echo "previous_version=$previous_version" >> "$GITHUB_ENV" echo "version=$version" >> "$GITHUB_ENV" -fi \ No newline at end of file +fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fa59c31..31665b35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,14 +40,21 @@ generate in an area where it previously did not (resulting in a chunk border). --- ## [Unreleased] + ### Added +- Added cold steppe. +- Added the spawn island, a flattened landmass at 0,0 that guarantees the world spawn is on land. ### Changed +- Reworked terrain to use a global heightmap. +- Reworked biome distribution to be based on + the [Koppen Climate Classification](https://en.wikipedia.org/wiki/K%C3%B6ppen_climate_classification) ### Removed +- Removed elevation biome variants, as biomes now use a global height map for terrain. ### Fixed @@ -56,29 +63,53 @@ DO NOT MODIFY TEXT BELOW, CI automatically manages new version sections for each new release. Add any new change logs to the [Unreleased] section above instead. --> +## [v1.5.1] + +### Added + +- Added Spring to Life features +- Added Pale Garden +- Added Mob Rooms + +### Changed + +- Improved Shrub Beach + ## [v1.3.4] + ### Fixed + - Translated minecraft:grass to minecraft:short_grass. ## [v1.3.3] + ### Fixed + - Fixed pink petal structure generating broken block IDs. ## [v1.3.2] + ### Added + - Cherry tree features. - Pink petal features. ### Changed + - Sakura Mountains now use Cherry tree features instead of Dark Oak. - Sakura Mountains generate pink petal patches. ## [v1.3.1] + ### Added -- Re-added biome blending, which was previously removed by accident, resulting in blocky biome transitions (notably around beaches). + +- Re-added biome blending, which was previously removed by accident, resulting in blocky biome transitions (notably + around beaches). ## [v1.3.0] + ### Added + - Added Shrub Beaches. - Added Xerophytic Forests. - Added Iceberg Oceans. @@ -86,16 +117,20 @@ new release. Add any new change logs to the [Unreleased] section above instead. - Added iceberg feature. ### Changed + - Sakura Mountains now contain features from Dark Oak Forests. - Evergreen Overhangs now generate as an Evergreen variant. - Dry Rocky Bumpy Mountains now uses it's own grass and foliage color. ### Fixed + - Evergreen biomes generating adjacent to Savanna biomes. - Prairies and Oak Savannas using incorrect biome colors. ## [v1.2.0] + ### Added + - Added Mangrove Swamps. - Added Dripstone Caves. - Added Lush Caves. @@ -106,12 +141,14 @@ new release. Add any new change logs to the [Unreleased] section above instead. - Added texturing to slanted stone areas. ### Changed + - Adjusted the generation of river border biomes (Marshes, Swamps). - Placed packed mud in many existing arid palettes. - Placed mud in bamboo jungles, swamps, and river palettes. - Changed cave generation to include rare giant caverns. ### Fixed + - Snow not generating on trees in polar biomes. - Trees not generating in Snowy Meadow biome. - Changed caldera center vanilla biome. (https://github.com/PolyhedralDev/TerraOverworldConfig/issues/97) @@ -119,10 +156,13 @@ new release. Add any new change logs to the [Unreleased] section above instead. - Fixed some palettes missing samplers, resulting in some blocks not generating correctly. ## [1.1.1] + ## [1.1.0] + ### Added + - Added Arid Highlands biomes (by @ Eris#0075). - Added Eucalyptus trees and forests biome. - Added Sakura biomes. @@ -131,6 +171,7 @@ new release. Add any new change logs to the [Unreleased] section above instead. - Added small/big dripleaf features to many jungle-like biomes. ### Changed + - Replaced Warm Hills biomes and variants with Chaparrals. - Improved Highlands biomes (by @ Eris#0075). - Improved Autumnal forest density and biome colors. @@ -139,21 +180,37 @@ new release. Add any new change logs to the [Unreleased] section above instead. - Amethyst crystals now generate in geodes. ## [1.0.1] + ### Fixed + - Fixed Geodes generating in weird places (oceans, mid air, etc). ## [1.0.0] + ### Added + - Everything -[Unreleased]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.3.4...HEAD +[Unreleased]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.5.1...HEAD + +[v1.5.1]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.5.0...v1.5.1 + [v1.3.4]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.3.3...v1.3.4 + [v1.3.3]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.3.2...v1.3.3 + [v1.3.2]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.3.1...v1.3.2 + [v1.3.1]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.3.0...v1.3.1 + [v1.3.0]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.2.0...v1.3.0 + [v1.2.0]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.1.1...v1.2.0 + [1.1.1]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.1.0...v1.1.1 + [1.1.0]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.0.1...v1.1.0 + [1.0.1]: https://github.com/PolyhedralDev/TerraOverworldConfig/compare/v1.0.0...v1.0.1 + [1.0.0]: https://github.com/PolyhedralDev/TerraOverworldConfig/releases/tag/v1.0.0 diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 00000000..6b5ff766 --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,3 @@ +# Overworld Design Philosophy + +### TODO diff --git a/README.md b/README.md index 482546cb..976a18af 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ specific to a different domain of configuration: - `biomes` Where all biome configs are defined. -- `biome-providers` +- `biome-distribution` Contains configuration files related *where* biomes generate. - `structures` @@ -31,7 +31,7 @@ specific to a different domain of configuration: blocks make up the base terrain. - `math` - Common mathematical functions used in the pack as well as generic noise + Common mathematical functions used in the pack as well as generic noise samplers are defined here. For more in-depth explanations of each directory's files and subdirectories, you @@ -51,7 +51,7 @@ This pack comes with several biome distribution presets, which can be chosen within the [`pack.yml`](./pack.yml) file. If none of these presets do exactly what you want, you can further modify biome distribution presets with alternate sources and stages. Check out the -[`biome-providers/presets/default.yml`](./biome-providers/presets/default.yml) +[`biome-distribution/presets/default.yml`](./biome-distribution/presets/default.yml) config for these alternative sources and stages. ### Where can I learn more about configuration? diff --git a/biome-distribution/README.md b/biome-distribution/README.md new file mode 100644 index 00000000..49ca305b --- /dev/null +++ b/biome-distribution/README.md @@ -0,0 +1,25 @@ +# Biome Distribution + +This directory contains configuration files related to **biome distribution**. +For individual biome configuration, checkout the `biomes` directory instead. + +This directory is organized into 3 subdirectories: + +## Presets + +A collection of preset biome provider configurations. A biome provider is simply +something that tells Terra how to distribute biomes. The provider in use is +determined under the `biomes` parameter in the pack manifest (`pack.yml`). (Only +one can be selected at a time.) + +## Stages + +Contains various mutation stages that are applied to pipeline biome providers. +These do things such as add different climate zones, add rivers, add volcanoes, +etc. Similarly to sources, the ordering of stages is determined by the provider +preset. + +## Extrusions + +Contains extrusion stages that relate to 3D biome distribution. This is primarily +for handling the placement of cave biomes. diff --git a/biome-distribution/extrusions/add_cave_biomes.yml b/biome-distribution/extrusions/add_cave_biomes.yml new file mode 100644 index 00000000..0b6b04be --- /dev/null +++ b/biome-distribution/extrusions/add_cave_biomes.yml @@ -0,0 +1,57 @@ +extrusions: + - type: REPLACE + from: LAND_CAVES + sampler: + type: CELLULAR + return: CellValue + salt: 1252 + frequency: 1 / 200 / ${customization.yml:cave-biome-scale} / ${customization.yml:global-scale} + to: + - SELF: 6 + - LUSH_CAVES: 1 + - DRIPSTONE_CAVES: 1 + range: + min: $meta.yml:deepslate-bottom + max: ${meta.yml:ocean-level} - 13 + + - type: REPLACE + from: ICE_CAVES + sampler: + type: CELLULAR + return: CellValue + salt: 1252 + frequency: 1 / 200 / ${customization.yml:cave-biome-scale} / ${customization.yml:global-scale} + to: + - SELF: 3 + - ICE_CAVES: 7 + range: + min: $meta.yml:deepslate-bottom + max: ${meta.yml:ocean-level} - 13 + + - type: REPLACE + from: ANCIENT_CAVES + sampler: + type: CELLULAR + return: CellValue + salt: 6457 + frequency: 1 / 200 / ${customization.yml:cave-biome-scale} / ${customization.yml:global-scale} + to: + - SELF: 3 + - ANCIENT_CAVES: 1 + range: + min: $meta.yml:bottom-y + max: $meta.yml:deepslate-top + + - type: REPLACE + from: RESIN_ROOTS + sampler: + type: CELLULAR + return: CellValue + salt: 8756 + frequency: 1 / 200 / ${customization.yml:cave-biome-scale} / ${customization.yml:global-scale} + to: + - SELF: 3 + - RESIN_ROOTS: 1 + range: + min: $meta.yml:deepslate-bottom + max: ${meta.yml:ocean-level} - 13 \ No newline at end of file diff --git a/biome-distribution/extrusions/add_deep_dark.yml b/biome-distribution/extrusions/add_deep_dark.yml new file mode 100644 index 00000000..7555c556 --- /dev/null +++ b/biome-distribution/extrusions/add_deep_dark.yml @@ -0,0 +1,9 @@ +extrusions: + - type: REPLACE + from: DEEP_DARK + sampler: + type: CONSTANT + to: DEEP_DARK + range: + min: $meta.yml:bottom-y + max: $meta.yml:deepslate-top \ No newline at end of file diff --git a/biome-distribution/presets/default.yml b/biome-distribution/presets/default.yml new file mode 100644 index 00000000..3ca309d3 --- /dev/null +++ b/biome-distribution/presets/default.yml @@ -0,0 +1,64 @@ +biomes: + type: EXTRUSION + extrusions: + - << biome-distribution/extrusions/add_cave_biomes.yml:extrusions + - << biome-distribution/extrusions/add_deep_dark.yml:extrusions + provider: + type: PIPELINE + resolution: 4 + blend: + amplitude: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.1 + pipeline: + source: + type: SAMPLER + sampler: + type: EXPRESSION + expression: continents(x, z) + biomes: + ocean: 1 + land: 1 + stages: + - << biome-distribution/stages/add_spots.yml:stages + - << biome-distribution/stages/add_large_spots.yml:stages + - << biome-distribution/stages/add_coast.yml:stages + - << biome-distribution/stages/climate/temperature.yml:stages + - << biome-distribution/stages/climate/precipitation.yml:stages + - << biome-distribution/stages/climate/elevation.yml:stages + - << biome-distribution/stages/add_large_spot_coast.yml:stages + - << biome-distribution/stages/add_island_shelf.yml:stages + - << biome-distribution/stages/add_islands.yml:stages + - << biome-distribution/stages/climate/color.yml:stages + - << biome-distribution/stages/add_travertine_terraces.yml:stages + - << biome-distribution/stages/set_biomes_in_climates.yml:stages + - << biome-distribution/stages/add_biome_color_variants.yml:stages + + - type: REPLACE + from: todo + to: TEMPERATE_GRASSLAND + sampler: + type: CONSTANT + + - type: FRACTAL_EXPAND + sampler: + type: WHITE_NOISE + - type: FRACTAL_EXPAND + sampler: + type: WHITE_NOISE + - type: FRACTAL_EXPAND + sampler: + type: WHITE_NOISE + - type: FRACTAL_EXPAND + sampler: + type: WHITE_NOISE + - type: SMOOTH + sampler: + type: WHITE_NOISE + - type: SMOOTH + sampler: + type: WHITE_NOISE + + - << biome-distribution/stages/add_rivers.yml:stages + - << biome-distribution/stages/add_trenches.yml:stages \ No newline at end of file diff --git a/biome-distribution/presets/single.yml b/biome-distribution/presets/single.yml new file mode 100644 index 00000000..baad344f --- /dev/null +++ b/biome-distribution/presets/single.yml @@ -0,0 +1,21 @@ +biomes: + type: EXTRUSION + extrusions: + - << biome-distribution/extrusions/add_cave_biomes.yml:extrusions + - << biome-distribution/extrusions/add_deep_dark.yml:extrusions + provider: + type: PIPELINE + resolution: 4 + blend: + amplitude: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.1 + pipeline: + source: + type: SAMPLER + biomes: $pack.yml:preset-single-biome + sampler: + type: CONSTANT + stages: + - << biome-distribution/stages/add_rivers.yml:stages diff --git a/biome-distribution/presets/single_debug.yml b/biome-distribution/presets/single_debug.yml new file mode 100644 index 00000000..52e03061 --- /dev/null +++ b/biome-distribution/presets/single_debug.yml @@ -0,0 +1,3 @@ +biomes: + type: SINGLE + biome: $pack.yml:preset-single-debug-biome \ No newline at end of file diff --git a/biome-distribution/stages/add_biome_color_variants.yml b/biome-distribution/stages/add_biome_color_variants.yml new file mode 100644 index 00000000..bd7cb75b --- /dev/null +++ b/biome-distribution/stages/add_biome_color_variants.yml @@ -0,0 +1,10 @@ +stages: + - type: REPLACE + from: maple-groves + sampler: + type: WHITE_NOISE + salt: 30402 + to: + - MAPLE_GROVE: 2 + - RED_MAPLE_GROVE: 1 + - YELLOW_MAPLE_GROVE: 2 \ No newline at end of file diff --git a/biome-distribution/stages/add_coast.yml b/biome-distribution/stages/add_coast.yml new file mode 100644 index 00000000..356f7009 --- /dev/null +++ b/biome-distribution/stages/add_coast.yml @@ -0,0 +1,24 @@ +stages: + - type: REPLACE + from: ocean + sampler: + type: EXPRESSION + expression: continentBorder(x, z) + to: + SELF: 1 + coast: 1 + - type: BORDER + sampler: + type: CONSTANT + from: land + replace: ocean + to: coast + - type: REPLACE + from: coast + to: + land: 1 + SELF: 1 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 1 / 300 / ${customization.yml:global-scale} + salt: 1023 diff --git a/biome-distribution/stages/add_island_shelf.yml b/biome-distribution/stages/add_island_shelf.yml new file mode 100644 index 00000000..215255f4 --- /dev/null +++ b/biome-distribution/stages/add_island_shelf.yml @@ -0,0 +1,49 @@ +stages: + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: polar-deep-ocean + to: island-polar-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: polar-ocean + to: island-polar-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: boreal-deep-ocean + to: island-boreal-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: boreal-ocean + to: island-boreal-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: temperate-deep-ocean + to: island-temperate-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: temperate-ocean + to: island-temperate-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: hot-deep-ocean + to: island-hot-shallow-ocean + - type: BORDER + sampler: + type: CONSTANT + from: island-coast + replace: hot-ocean + to: island-hot-shallow-ocean \ No newline at end of file diff --git a/biome-distribution/stages/add_islands.yml b/biome-distribution/stages/add_islands.yml new file mode 100644 index 00000000..9500d144 --- /dev/null +++ b/biome-distribution/stages/add_islands.yml @@ -0,0 +1,12 @@ +stages: + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: largeSpotSizePercent(x, z)*2-1 + + default-from: island + default-to: + - mushroom: 1 + to: + island-coast: + - mushroom-coast: 1 \ No newline at end of file diff --git a/biome-distribution/stages/add_large_spot_coast.yml b/biome-distribution/stages/add_large_spot_coast.yml new file mode 100644 index 00000000..0aacdea5 --- /dev/null +++ b/biome-distribution/stages/add_large_spot_coast.yml @@ -0,0 +1,91 @@ +stages: + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: polar-deep-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: polar-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: polar-shallow-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: boreal-deep-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: boreal-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: boreal-shallow-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: temperate-deep-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: temperate-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: temperate-shallow--ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: hot-deep-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: hot-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: island + replace: hot-shallow-ocean + to: island-coast + - type: BORDER + sampler: + type: CONSTANT + from: polar-vast-forest + replace: ocean + to: polar-vast-forest-coast + - type: BORDER + sampler: + type: CONSTANT + from: boreal-vast-forest + replace: ocean + to: boreal-vast-forest-coast + - type: BORDER + sampler: + type: CONSTANT + from: temperate-vast-forest + replace: ocean + to: temperate-vast-forest-coast \ No newline at end of file diff --git a/biome-distribution/stages/add_large_spots.yml b/biome-distribution/stages/add_large_spots.yml new file mode 100644 index 00000000..be7ceda9 --- /dev/null +++ b/biome-distribution/stages/add_large_spots.yml @@ -0,0 +1,29 @@ +stages: + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: if(largeSpotDistance(x, z) < largeSpotRadius(x, z) + largeBiomeBorder, 1, -1) + variables: $math/samplers/spots.yml:variables + from: land + default-from: land + default-to: + - SELF: 1 + - land-large-spot: 1 + to: + ocean: + - SELF: 1 + - ocean-large-spot: 1 + + # These lists must stay aligned, or a pale garden will not have consistency across land and ocean + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: largeSpotSizePercent(x, z)*2-1 + default-from: land-large-spot + default-to: + - land: 1 + - vast-forest: 1 + to: + ocean-large-spot: + - island: 1 + - ocean: 1 diff --git a/biome-distribution/stages/add_rivers.yml b/biome-distribution/stages/add_rivers.yml new file mode 100644 index 00000000..1bd8d76b --- /dev/null +++ b/biome-distribution/stages/add_rivers.yml @@ -0,0 +1,164 @@ +riverSampler: &riverSampler + type: EXPRESSION + expression: segment(riverBiomeMap(x, z), riverValue, borderValue, (elevation(x, z) < lowlandsThreshold) && (borderMask(x, z) < borderMaskThreshold)) + variables: + riverValue: $math/samplers/rivers.yml:variables.riverValue + borderValue: $math/samplers/rivers.yml:variables.borderValue + borderMaskThreshold: 0.2 + lowlandsThreshold: $customization.yml:elevation-lowlands-threshold + functions: + segment: + arguments: + - river + - riverValue + - borderValue + - borderPredicate + expression: if(river <= riverValue, 1, if((river <= borderValue) && borderPredicate, -0.4, -1)) + samplers: + borderMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + salt: 4812 + frequency: 0.003 + +# Tags are used by biomes to determine the kind of river to use, except for biomes with +# their own specific river biome. These tags are formatted by the type of river, and optionally +# the type of river wetlands surrounding the river, e.g USE_FROZEN_RIVER_FROZEN_MARSH would mean +# the biome will use a frozen river with frozen marshes surrounding it. + +stages: + # Regular rivers + - type: REPLACE_LIST + default-from: USE_RIVER + default-to: + - SELF: 1 + - RIVER: 1 + to: + # Biome specific rivers + TEMPERATE_MOUNTAINS: + - SELF: 1 + - TEMPERATE_MOUNTAINS_RIVER: 1 + MOUNTAINS: + - SELF: 1 + - MOUNTAINS_RIVER: 1 + XERIC_MOUNTAINS: + - SELF: 1 + - XERIC_MOUNTAINS_RIVER: 1 + BADLANDS: + - SELF: 1 + - BADLANDS_RIVER: 1 + DRY_TEMPERATE_MOUNTAINS: + - SELF: 1 + - DRY_TEMPERATE_MOUNTAINS_RIVER: 1 + DRY_TEMPERATE_WHITE_MOUNTAINS: + - SELF: 1 + - DRY_TEMPERATE_WHITE_MOUNTAINS_RIVER: 1 + SNOWY_MOUNTAINS: + - SELF: 1 + - SNOWY_MOUNTAINS_RIVER: 1 + SNOWY_TUFF_MOUNTAINS: + - SELF: 1 + - SNOWY_TUFF_MOUNTAINS_RIVER: 1 + SNOWY_BLACKSTONE_MOUNTAINS: + - SELF: 1 + - SNOWY_BLACKSTONE_MOUNTAINS_RIVER: 1 + TRAVERTINE_TERRACES: + - SELF: 1 + - TRAVERTINE_TERRACES_RIVER: 1 + sampler: *riverSampler + # Desert rivers + - type: REPLACE + from: USE_DESERT_RIVER + to: + - SELF: 1 + - DESERT_RIVER: 1 + sampler: *riverSampler + # Red desert rivers + - type: REPLACE + from: USE_RED_DESERT_RIVER + to: + - SELF: 1 + - RED_DESERT_RIVER: 1 + sampler: *riverSampler + # Regular rivers with temperate marshes + - type: REPLACE + from: USE_RIVER_TEMPERATE_MARSH + to: + - SELF: 1 + - MARSH: 1 + - RIVER: 2 + sampler: *riverSampler + # Pale Garden rivers + - type: REPLACE + from: USE_PALE_GARDEN_RIVER + to: + - SELF: 1 + - PALE_GARDEN_RIVER: 1 + sampler: *riverSampler + # Pale Garden rivers + - type: REPLACE + from: USE_POLAR_PALE_GARDEN_RIVER + to: + - SELF: 1 + - POLAR_PALE_GARDEN_RIVER: 1 + sampler: *riverSampler + - type: REPLACE + from: USE_MUSHROOM_RIVER + to: + - SELF: 1 + - MUSHROOM_RIVER: 1 + sampler: *riverSampler + # Regular rivers with bordering swamps + - type: REPLACE + from: USE_RIVER_TEMPERATE_SWAMP + to: + - SELF: 1 + - SWAMP: 1 + - RIVER: 2 + sampler: *riverSampler + # Warm rivers + - type: REPLACE + from: USE_LUKEWARM_RIVER + to: + - SELF: 1 + - LUKEWARM_RIVER: 1 + sampler: *riverSampler + # Tropical rivers + - type: REPLACE + from: USE_TROPICAL_RIVER + to: + - SELF: 1 + - TROPICAL_RIVER: 1 + sampler: *riverSampler + # Tropical coastal rivers with mangrove swamps + - type: REPLACE + from: USE_RIVER_COASTAL_TROPICAL_SWAMP + to: + - SELF: 1 + - MANGROVE_SWAMP: 1 + - TROPICAL_RIVER: 2 + sampler: *riverSampler + # Cold rivers + - type: REPLACE + from: USE_COLD_RIVER + to: + - SELF: 1 + - COLD_RIVER: 1 + sampler: *riverSampler + # Frozen Rivers + - type: REPLACE + from: USE_FROZEN_RIVER + to: + - SELF: 1 + - FROZEN_RIVER: 1 + sampler: *riverSampler + # Frozen rivers with frozen marshes + - type: REPLACE + from: USE_FROZEN_RIVER_FROZEN_MARSH + to: + - SELF: 1 + - FROZEN_MARSH: 1 + - FROZEN_RIVER: 2 + sampler: *riverSampler \ No newline at end of file diff --git a/biome-distribution/stages/add_spots.yml b/biome-distribution/stages/add_spots.yml new file mode 100644 index 00000000..07659e45 --- /dev/null +++ b/biome-distribution/stages/add_spots.yml @@ -0,0 +1,46 @@ +stages: + - type: REPLACE + from: ALL + to: + - SELF: 1 + - spot: 1 + sampler: + type: EXPRESSION + expression: if(spotDistance(x, z) < spotRadius(x, z) + biomeBorder, 1, -1) + variables: $math/samplers/spots.yml:variables + + - type: REPLACE + from: spot + to: + - volcano: 1 + - mesa: 1 + sampler: + type: EXPRESSION + expression: spotSizePercent(x, z)*2-1 + + - type: REPLACE + from: volcano + to: + - extinct-volcano: 5 + - active-volcano: 1 + sampler: + type: EXPRESSION + expression: volcanoActivity(x, z) + + - type: REPLACE + from: extinct-volcano + to: + - extinct-volcano: 4 + # - crater-lake: 1 # Crater lakes are disabled until a good method of adding fluid is implemented + sampler: + type: EXPRESSION + expression: spotEdgeRadiusPercent(x, z)*2-1 + + - type: REPLACE + from: active-volcano + to: + - ERUPTED_VOLCANO: 4 + - PRISMATIC_SPRING: 1 + sampler: + type: EXPRESSION + expression: spotEdgeRadiusPercent(x, z)*2-1 \ No newline at end of file diff --git a/biome-distribution/stages/add_travertine_terraces.yml b/biome-distribution/stages/add_travertine_terraces.yml new file mode 100644 index 00000000..b6348536 --- /dev/null +++ b/biome-distribution/stages/add_travertine_terraces.yml @@ -0,0 +1,16 @@ +stages: + - type: REPLACE_LIST + sampler: + type: CELLULAR + return: CellValue + frequency: 1 / 100 / ${customization.yml:variation-scale} / ${customization.yml:global-scale} + default-from: tropical-rainforest + default-to: &travertineList + - SELF: 10 + - TRAVERTINE_TERRACES: 1 + to: + tropical-rainforest-highlands: *travertineList + tropical-monsoon: *travertineList + tropical-monsoon-highlands: *travertineList + tropical-savanna-wet: *travertineList + tropical-savanna-wet-highlands: *travertineList diff --git a/biome-distribution/stages/add_trenches.yml b/biome-distribution/stages/add_trenches.yml new file mode 100644 index 00000000..48a7954d --- /dev/null +++ b/biome-distribution/stages/add_trenches.yml @@ -0,0 +1,111 @@ +trenchSampler: &trenchSampler + type: EXPRESSION + expression: segment(trenchBiomeMap(x, z), trenchValue, borderValue, (elevation(x, z) < lowlandsThreshold) && (borderMask(x, z) < borderMaskThreshold)) + variables: + trenchValue: $math/samplers/trenches.yml:variables.trenchValue + borderValue: $math/samplers/trenches.yml:variables.borderValue + borderMaskThreshold: 0.2 + lowlandsThreshold: $customization.yml:elevation-lowlands-threshold + functions: + segment: + arguments: + - trench + - trenchValue + - borderValue + - borderPredicate + expression: if(trench <= trenchValue, 1, if((trench <= borderValue) && borderPredicate, -0.4, -1)) + samplers: + borderMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + salt: 4812 + frequency: 0.003 + +variationSampler: &variationSampler + type: CELLULAR + return: CellValue + frequency: 1 / 100 / ${customization.yml:variation-scale} / ${customization.yml:global-scale} + +# Tags are used by biomes to determine the kind of trench to use, except for biomes with +# their own specific trench biome. + +stages: + # Regular trenches + - type: REPLACE_LIST + default-from: USE_TRENCH + default-to: + - SELF: 1 + - OCEAN_TRENCH: 1 + to: + DEEP_DEPTHS: + - SELF: 1 + - DEEP_DEPTHS_TRENCH: 1 + sampler: *trenchSampler + - type: REPLACE_LIST + default-from: USE_COLD_TRENCH + default-to: + - SELF: 1 + - COLD_OCEAN_TRENCH: 1 + to: + COLD_DEEP_DEPTHS: + - SELF: 1 + - COLD_DEEP_DEPTHS_TRENCH: 1 + sampler: *trenchSampler + - type: REPLACE_LIST + default-from: USE_FROZEN_TRENCH + default-to: + - SELF: 1 + - FROZEN_OCEAN_TRENCH: 1 + to: + FROZEN_DEEP_DEPTHS: + - SELF: 1 + - FROZEN_DEEP_DEPTHS_TRENCH: 1 + sampler: *trenchSampler + - type: REPLACE_LIST + default-from: USE_TROPICAL_TRENCH + default-to: + - SELF: 1 + - TROPICAL_OCEAN_TRENCH: 1 + to: + TROPICAL_DEEP_DEPTHS: + - SELF: 1 + - TROPICAL_DEEP_DEPTHS_TRENCH: 1 + sampler: *trenchSampler + - type: REPLACE_LIST + default-from: USE_SUBTROPICAL_TRENCH + default-to: + - SELF: 1 + - SUBTROPICAL_OCEAN_TRENCH: 1 + to: + SUBTROPICAL_DEEP_DEPTHS: + - SELF: 1 + - SUBTROPICAL_DEEP_DEPTHS_TRENCH: 1 + sampler: *trenchSampler + - type: REPLACE + from: USE_CORAL_TRENCH + to: + - SELF: 1 + - CORAL_OCEAN_TRENCH: 1 + sampler: *trenchSampler + + - type: REPLACE_LIST + default-from: OCEAN_TRENCH + default-to: + - SELF: 2 + - DEEP_OCEAN_VENTS: 1 + to: + COLD_OCEAN_TRENCH: + - SELF: 2 + - COLD_DEEP_OCEAN_VENTS: 1 + FROZEN_OCEAN_TRENCH: + - SELF: 2 + - FROZEN_DEEP_OCEAN_VENTS: 1 + SUBTROPICAL_OCEAN_TRENCH: + - SELF: 2 + - SUBTROPICAL_DEEP_OCEAN_VENTS: 1 + TROPICAL_OCEAN_TRENCH: + - SELF: 2 + - TROPICAL_DEEP_OCEAN_VENTS: 1 + sampler: *variationSampler \ No newline at end of file diff --git a/biome-distribution/stages/climate/color.yml b/biome-distribution/stages/climate/color.yml new file mode 100644 index 00000000..f014ea71 --- /dev/null +++ b/biome-distribution/stages/climate/color.yml @@ -0,0 +1,33 @@ +stages: + - type: REPLACE_LIST + sampler: + type: OPEN_SIMPLEX_2 + salt: 6893 + frequency: 1 / 1000 / ${customization.yml:variation-scale} / ${customization.yml:global-scale} + default-from: hot-desert-flat + default-to: + - hot-desert-flat-red: &red 3 + - hot-desert-flat-orange: &orange 1 + - hot-desert-flat-white: &white 3 + to: + hot-desert: + - hot-desert-red: *red + - hot-desert-orange: *orange + - hot-desert-white: *white + hot-desert-highlands: + - hot-desert-highlands-red: *red + - hot-desert-highlands-orange: *orange + - hot-desert-highlands-white: *white + + hot-steppe-flat: + - hot-steppe-flat-red: *red + - hot-steppe-flat-orange: *orange + - hot-steppe-flat-white: *white + hot-steppe: + - hot-steppe-red: *red + - hot-steppe-orange: *orange + - hot-steppe-white: *white + hot-steppe-highlands: + - hot-steppe-highlands-red: *red + - hot-steppe-highlands-orange: *orange + - hot-steppe-highlands-white: *white diff --git a/biome-distribution/stages/climate/elevation.yml b/biome-distribution/stages/climate/elevation.yml new file mode 100644 index 00000000..1aae51d3 --- /dev/null +++ b/biome-distribution/stages/climate/elevation.yml @@ -0,0 +1,254 @@ +stages: + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: segment(oceanElevation(x, z), shallowThreshold, deepThreshold) + variables: + shallowThreshold: $customization.yml:ocean-shallow-threshold + deepThreshold: $customization.yml:ocean-deep-threshold + functions: + segment: + arguments: + - elevation + - shallow + - deep + expression: if(elevation > shallow, 1, if(elevation < deep, -1, 0)) + + # Weighted lists below are interpreted as: + # - : 1 + # - : 1 + # - : 1 + + default-from: polar-ocean + default-to: + - polar-deep-ocean: 1 + - polar-ocean: 1 + - polar-shallow-ocean: 1 + to: + boreal-ocean: + - boreal-deep-ocean: 1 + - boreal-ocean: 1 + - boreal-shallow-ocean: 1 + temperate-ocean: + - temperate-deep-ocean: 1 + - temperate-ocean: 1 + - temperate-shallow-ocean: 1 + hot-ocean: + - hot-deep-ocean: 1 + - hot-ocean: 1 + - hot-shallow-ocean: 1 + + polar-island: + - island: 1 + - island: 1 + - polar-shallow-ocean: 1 + + boreal-island: + - island: 1 + - island: 1 + - boreal-shallow-ocean: 1 + + temperate-island: + - island: 1 + - island: 1 + - temperate-shallow-ocean: 1 + + hot-island: + - island: 1 + - island: 1 + - hot-shallow-ocean: 1 + + + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: segment(elevation(x, z), flatness(x, z), highlandsThreshold, lowlandsThreshold) + variables: + highlandsThreshold: $customization.yml:elevation-highlands-threshold + lowlandsThreshold: $customization.yml:elevation-lowlands-threshold + functions: + segment: + arguments: + - elevation + - flatness + - highlands + - lowlands + expression: if(elevation > highlands, 0.75, if(elevation > lowlands, 0.25, if(flatness < 1, -0.25, -0.75))) + + # Weighted lists below are interpreted as: + # - : 1 + # - : 1 + # - : 1 + # - : 1 + + default-from: ice-cap + default-to: + - ice-cap-flat: 1 + - ice-cap: 1 + - ice-cap: 1 + - ice-cap-highlands: 1 + to: + tundra: + - tundra-flat: 1 + - tundra: 1 + - tundra: 1 + - tundra-highlands: 1 + polar-coast: + - polar-coast-flat: 1 + - polar-coast-flat: 1 + - polar-coast: 1 + - polar-coast-highlands: 1 + polar-shallow-ocean: + - polar-shallow-ocean: 1 + - polar-shallow-ocean: 1 + - polar-shallow-ocean-midlands: 1 + - polar-shallow-ocean-midlands: 1 + + boreal-hot: + - boreal-hot-flat: 1 + - boreal-hot: 1 + - boreal-hot: 1 + - boreal-hot-highlands: 1 + boreal-warm: + - boreal-warm-flat: 1 + - boreal-warm: 1 + - boreal-warm: 1 + - boreal-warm-highlands: 1 + boreal-cold: + - boreal-cold-flat: 1 + - boreal-cold: 1 + - boreal-cold: 1 + - boreal-cold-highlands: 1 + boreal-snowy: + - boreal-snowy-flat: 1 + - boreal-snowy: 1 + - boreal-snowy: 1 + - boreal-snowy-highlands: 1 + boreal-hot-dry: + - boreal-hot-dry-flat: 1 + - boreal-hot-dry: 1 + - boreal-hot-dry: 1 + - boreal-hot-dry-highlands: 1 + boreal-warm-dry: + - boreal-warm-dry-flat: 1 + - boreal-warm-dry: 1 + - boreal-warm-dry: 1 + - boreal-warm-dry-highlands: 1 + boreal-cold-dry: + - boreal-cold-dry-flat: 1 + - boreal-cold-dry: 1 + - boreal-cold-dry: 1 + - boreal-cold-dry-highlands: 1 + boreal-snowy-dry: + - boreal-snowy-dry-flat: 1 + - boreal-snowy-dry: 1 + - boreal-snowy-dry: 1 + - boreal-snowy-dry-highlands: 1 + boreal-coast: + - boreal-coast-flat: 1 + - boreal-coast-flat: 1 + - boreal-coast: 1 + - boreal-coast-highlands: 1 + boreal-shallow-ocean: + - boreal-shallow-ocean: 1 + - boreal-shallow-ocean: 1 + - boreal-shallow-ocean-midlands: 1 + - boreal-shallow-ocean-midlands: 1 + + temperate-hot-dry: + - temperate-hot-dry-flat: 1 + - temperate-hot-dry: 1 + - temperate-hot-dry: 1 + - temperate-hot-dry-highlands: 1 + temperate-warm-dry: + - temperate-warm-dry-flat: 1 + - temperate-warm-dry: 1 + - temperate-warm-dry: 1 + - temperate-warm-dry-highlands: 1 + temperate-hot: + - temperate-hot-flat: 1 + - temperate-hot: 1 + - temperate-hot: 1 + - temperate-hot-highlands: 1 + temperate-warm: + - temperate-warm-flat: 1 + - temperate-warm: 1 + - temperate-warm: 1 + - temperate-warm-highlands: 1 + temperate-cold: + - temperate-cold-flat: 1 + - temperate-cold: 1 + - temperate-cold: 1 + - temperate-cold-highlands: 1 + temperate-coast: + - temperate-coast-flat: 1 + - temperate-coast-flat: 1 + - temperate-coast: 1 + - temperate-coast-highlands: 1 + temperate-shallow-ocean: + - temperate-shallow-ocean: 1 + - temperate-shallow-ocean: 1 + - temperate-shallow-ocean-midlands: 1 + - temperate-shallow-ocean-midlands: 1 + + hot-desert: + - hot-desert-flat: 1 + - hot-desert: 1 + - hot-desert: 1 + - hot-desert-highlands: 1 + hot-steppe: + - hot-steppe-flat: 1 + - hot-steppe: 1 + - hot-steppe: 1 + - hot-steppe-highlands: 1 + cold-desert: + - cold-desert-flat: 1 + - cold-desert: 1 + - cold-desert: 1 + - cold-desert-highlands: 1 + temperate-steppe: + - temperate-steppe-flat: 1 + - temperate-steppe: 1 + - temperate-steppe: 1 + - temperate-steppe-highlands: 1 + cold-steppe: + - cold-steppe-flat: 1 + - cold-steppe: 1 + - cold-steppe: 1 + - cold-steppe-highlands: 1 + arid-coast: + - arid-coast-flat: 1 + - arid-coast-flat: 1 + - arid-coast: 1 + - arid-coast-highlands: 1 + + tropical-rainforest: + - tropical-rainforest-flat: 1 + - tropical-rainforest: 1 + - tropical-rainforest: 1 + - tropical-rainforest-highlands: 1 + tropical-monsoon: + - tropical-monsoon-flat: 1 + - tropical-monsoon: 1 + - tropical-monsoon: 1 + - tropical-monsoon-highlands: 1 + tropical-savanna-dry: + - tropical-savanna-dry-flat: 1 + - tropical-savanna-dry: 1 + - tropical-savanna-dry: 1 + - tropical-savanna-dry-highlands: 1 + tropical-savanna-wet: + - tropical-savanna-wet-flat: 1 + - tropical-savanna-wet: 1 + - tropical-savanna-wet: 1 + - tropical-savanna-wet-highlands: 1 + tropical-coast: + - tropical-coast-flat: 1 + - tropical-coast-flat: 1 + - tropical-coast: 1 + - tropical-coast-highlands: 1 + hot-shallow-ocean: + - hot-shallow-ocean: 1 + - hot-shallow-ocean: 1 + - hot-shallow-ocean-midlands: 1 + - hot-shallow-ocean-midlands: 1 \ No newline at end of file diff --git a/biome-distribution/stages/climate/precipitation.yml b/biome-distribution/stages/climate/precipitation.yml new file mode 100644 index 00000000..7ad78624 --- /dev/null +++ b/biome-distribution/stages/climate/precipitation.yml @@ -0,0 +1,128 @@ +stages: + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: precipitation(x, z) + + default-from: tropical-rainforest + default-to: + - hot-desert: &desert 4 + - hot-desert: &desertBorder 1 + - hot-steppe: &semiArid 1 + - tropical-savanna-dry: &mid 1 + - tropical-monsoon: &mildlyWet 2 + - tropical-rainforest: &veryWet 3 + to: + tropical-monsoon: + - hot-desert: *desert + - hot-desert: *desertBorder + - hot-steppe: *semiArid + - tropical-savanna-dry: *mid + - tropical-monsoon: *mildlyWet + - tropical-monsoon: *veryWet + tropical-savanna-wet: + - hot-steppe: *desert + - hot-steppe: *desertBorder + - hot-steppe: *semiArid + - tropical-savanna-wet: *mid + - tropical-savanna-wet: *mildlyWet + - tropical-savanna-wet: *veryWet + hot-coast: + - arid-coast: *desert + - arid-coast: *desertBorder + - temperate-coast: *semiArid + - tropical-coast: *mid + - tropical-coast: *mildlyWet + - tropical-coast: *veryWet + + hot-mesa: + - desert-mesa: *desert + - desert-mesa: *desertBorder + - temperate-mesa: *semiArid + - tropical-mesa: *mid + - tropical-mesa: *mildlyWet + - tropical-mesa: *veryWet + hot-crater-lake: + - desert-crater-lake: *desert + - desert-crater-lake: *desertBorder + - temperate-crater-lake: *semiArid + - tropical-crater-lake: *mid + - tropical-crater-lake: *mildlyWet + - tropical-crater-lake: *veryWet + hot-extinct-volcano: + - desert-extinct-volcano: *desert + - desert-extinct-volcano: *desertBorder + - temperate-extinct-volcano: *semiArid + - tropical-extinct-volcano: *mid + - tropical-extinct-volcano: *mildlyWet + - tropical-extinct-volcano: *veryWet + + temperate-hot: + - hot-desert: *desert + - temperate-steppe: *desertBorder + - temperate-hot-dry: *semiArid + - temperate-hot: *mildlyWet + - temperate-hot: *veryWet + temperate-warm: + - hot-desert: *desert + - temperate-steppe: *desertBorder + - temperate-warm-dry: *semiArid + - temperate-warm: *mildlyWet + - temperate-warm: *veryWet + temperate-cold: + - hot-desert: *desert + - temperate-steppe: *desertBorder + - temperate-warm-dry: *semiArid + - temperate-cold: *mildlyWet + - temperate-cold: *veryWet + + temperate-mesa: + - temperate-mesa: *desert + - temperate-mesa: *desertBorder + - temperate-mesa: *semiArid + - temperate-mesa: *mid + - temperate-mesa: *mildlyWet + - temperate-mesa: *veryWet + temperate-crater-lake: + - temperate-crater-lake: *desert + - temperate-crater-lake: *desertBorder + - temperate-crater-lake: *semiArid + - temperate-crater-lake: *mid + - temperate-crater-lake: *mildlyWet + - temperate-crater-lake: *veryWet + temperate-extinct-volcano: + - temperate-extinct-volcano: *desert + - temperate-extinct-volcano: *desertBorder + - temperate-extinct-volcano: *semiArid + - temperate-extinct-volcano: *mid + - temperate-extinct-volcano: *mildlyWet + - temperate-extinct-volcano: *veryWet + + boreal-hot: + - cold-desert: *desert + - cold-steppe: *desertBorder + - boreal-hot-dry: *semiArid + - boreal-warm: *mid + - boreal-warm: *mildlyWet + - boreal-hot: *veryWet + boreal-warm: + - cold-desert: *desert + - cold-steppe: *desertBorder + - boreal-warm-dry: *semiArid + - boreal-warm-dry: *mid + - boreal-warm: *mildlyWet + - boreal-warm: *veryWet + boreal-cold: + - cold-desert: *desert + - cold-steppe: *desertBorder + - boreal-cold-dry: *semiArid + - boreal-cold: *mid + - boreal-cold: *mildlyWet + - boreal-cold: *veryWet + boreal-snowy: + - cold-desert: *desert + - cold-steppe: *desertBorder + - boreal-snowy-dry: *semiArid + - boreal-snowy: *mid + - boreal-snowy: *mildlyWet + - boreal-snowy: *veryWet \ No newline at end of file diff --git a/biome-distribution/stages/climate/temperature.yml b/biome-distribution/stages/climate/temperature.yml new file mode 100644 index 00000000..a2528eee --- /dev/null +++ b/biome-distribution/stages/climate/temperature.yml @@ -0,0 +1,112 @@ +stages: + - type: REPLACE_LIST + sampler: + type: EXPRESSION + expression: temperature(x, z) + + default-from: land + default-to: + - ice-cap: &iceCap 1 + - tundra: &tundra 1 + - boreal-snowy: &borealSnowy 1 + - boreal-cold: &borealCold 1 + - boreal-warm: &borealWarm 1 + - boreal-hot: &borealHot 1 + - temperate-cold: &temperateCold 1 + - temperate-warm: &temperateWarm 3 + - temperate-hot: &temperateHot 2 + - tropical-savanna-wet: &tropicalCold 1 + - tropical-monsoon: &tropicalWarm 1 + - tropical-rainforest: &tropicalHot 4 + to: + coast: + - polar-coast: *iceCap + - polar-coast: *tundra + - boreal-coast: *borealSnowy + - boreal-coast: *borealCold + - boreal-coast: *borealWarm + - boreal-coast: *borealHot + - temperate-coast: *temperateCold + - temperate-coast: *temperateWarm + - temperate-coast: *temperateHot + - hot-coast: *tropicalCold + - hot-coast: *tropicalWarm + - hot-coast: *tropicalHot + ocean: + - polar-ocean: *iceCap + - polar-ocean: *tundra + - boreal-ocean: *borealSnowy + - boreal-ocean: *borealCold + - boreal-ocean: *borealWarm + - boreal-ocean: *borealHot + - temperate-ocean: *temperateCold + - temperate-ocean: *temperateWarm + - temperate-ocean: *temperateHot + - hot-ocean: *tropicalCold + - hot-ocean: *tropicalWarm + - hot-ocean: *tropicalHot + mesa: + - polar-mesa: *iceCap + - polar-mesa: *tundra + - boreal-mesa: *borealSnowy + - boreal-mesa: *borealCold + - boreal-mesa: *borealWarm + - boreal-mesa: *borealHot + - temperate-mesa: *temperateCold + - temperate-mesa: *temperateWarm + - temperate-mesa: *temperateHot + - hot-mesa: *tropicalCold + - hot-mesa: *tropicalWarm + - hot-mesa: *tropicalHot + crater-lake: + - polar-crater-lake: *iceCap + - polar-crater-lake: *tundra + - boreal-crater-lake: *borealSnowy + - boreal-crater-lake: *borealCold + - boreal-crater-lake: *borealWarm + - boreal-crater-lake: *borealHot + - temperate-crater-lake: *temperateCold + - temperate-crater-lake: *temperateWarm + - temperate-crater-lake: *temperateHot + - hot-crater-lake: *tropicalCold + - hot-crater-lake: *tropicalWarm + - hot-crater-lake: *tropicalHot + extinct-volcano: + - polar-extinct-volcano: *iceCap + - polar-extinct-volcano: *tundra + - boreal-extinct-volcano: *borealSnowy + - boreal-extinct-volcano: *borealCold + - boreal-extinct-volcano: *borealWarm + - boreal-extinct-volcano: *borealHot + - temperate-extinct-volcano: *temperateCold + - temperate-extinct-volcano: *temperateWarm + - temperate-extinct-volcano: *temperateHot + - hot-extinct-volcano: *tropicalCold + - hot-extinct-volcano: *tropicalWarm + - hot-extinct-volcano: *tropicalHot + island: + - polar-island: *iceCap + - polar-island: *tundra + - boreal-island: *borealSnowy + - boreal-island: *borealCold + - boreal-island: *borealWarm + - boreal-island: *borealHot + - temperate-island: *temperateCold + - temperate-island: *temperateWarm + - temperate-island: *temperateHot + - hot-island: *tropicalCold + - hot-island: *tropicalWarm + - hot-island: *tropicalHot + vast-forest: + - polar-vast-forest: *iceCap + - polar-vast-forest: *tundra + - polar-vast-forest: *borealSnowy + - boreal-vast-forest: *borealCold + - boreal-vast-forest: *borealWarm + - boreal-vast-forest: *borealHot + - temperate-vast-forest: *temperateCold + - temperate-vast-forest: *temperateWarm + - temperate-vast-forest: *temperateHot + - tropical-savanna-wet: *tropicalCold + - tropical-monsoon: *tropicalWarm + - tropical-rainforest: *tropicalHot \ No newline at end of file diff --git a/biome-distribution/stages/set_biomes_in_climates.yml b/biome-distribution/stages/set_biomes_in_climates.yml new file mode 100644 index 00000000..d1d2f374 --- /dev/null +++ b/biome-distribution/stages/set_biomes_in_climates.yml @@ -0,0 +1,549 @@ +stages: + - type: REPLACE_LIST + sampler: + type: CELLULAR + return: CellValue + frequency: 1 / 1000 / ${customization.yml:variation-scale} / ${customization.yml:global-scale} + + default-from: ice-cap-flat + default-to: + - ICE_SPIKES: 1 + - LAND_GLACIER: 1 + to: + ice-cap: + - SNOWY_TUFF_MOUNTAINS: 1 + ice-cap-highlands: + - SNOWY_BLACKSTONE_MOUNTAINS: 1 + + tundra-flat: + - TUNDRA: 1 + tundra: + - TUNDRA: 1 + tundra-highlands: + - SNOWY_TUFF_MOUNTAINS: 1 + + polar-coast-flat: + - FROZEN_BEACH: 1 + polar-coast: + - SNOWY_SEA_CAVES: 1 + polar-coast-highlands: + - SNOWY_SEA_CAVES: 1 + + polar-mesa: + - COLD_DESERT_MESA: 1 + + polar-crater-lake: + - todo: 1 + + polar-extinct-volcano: + - todo: 1 + + polar-shallow-ocean: + - FROZEN_OCEAN: 1 + polar-shallow-ocean-midlands: + - FROZEN_OCEAN: 1 + - FROZEN_OCEAN_OVERHANGS: 1 + polar-ocean: + - FROZEN_OCEAN: 1 + - FROZEN_OCEAN_SLOPES: 1 + - ICEBERG_OCEAN: 1 + polar-deep-ocean: + - FROZEN_DEEP_OCEAN: 1 + - FROZEN_DEEP_DEPTHS: 1 + + + boreal-hot-flat: + - STEPPE: 2 + - PRAIRIE: 2 + - SUNFLOWER_PRAIRIE: 1 + - ASPEN_FOREST: 1 + - BIRCH_FOREST: 2 + - maple-groves: 1 + - PINE_CANOPY: 1 + boreal-hot: + - ASPEN_FOREST: 1 + - maple-groves: 1 + - BIRCH_FOREST: 2 + - PINE_CANOPY: 2 + boreal-hot-highlands: + - MOUNTAINS: 1 + + boreal-warm-flat: + - STEPPE: 1 + - PRAIRIE: 2 + - SUNFLOWER_PRAIRIE: 1 + - ASPEN_FOREST: 1 + - FIR_FIELDS: 1 + - BIRCH_FOREST: 2 + - maple-groves: 1 + - PINE_CANOPY: 2 + boreal-warm: + - SEQUOIA_FOREST: 5 + - OLD_GROWTH_SEQUOIA_FOREST: 1 + - TAIGA_CLEARING: 5 + - TAIGA: 11 + - FIR_FIELDS: 3 + boreal-warm-highlands: + - MOUNTAINS: 1 + + boreal-cold-flat: + - TAIGA: 2 + - maple-groves: 1 + - TAIGA_CLEARING: 1 + - FIR_FIELDS: 1 + boreal-cold: + - TAIGA_CLEARING: 1 + - TAIGA: 2 + - FIR_FIELDS: 1 + - maple-groves: 1 + boreal-cold-highlands: + - MOUNTAINS: 1 + + boreal-snowy-flat: + - SNOWY_MEADOW: 1 + boreal-snowy: + - SNOWY_TAIGA: 1 + - SNOWY_BIRCH_FOREST: 1 + boreal-snowy-highlands: + - SNOWY_MOUNTAINS: 1 + - MONTANE_FOREST: 1 + + boreal-hot-dry-flat: + - PRAIRIE: 1 + - STEPPE: 1 + - BOREAL_SHRUBLAND: 1 + - ASPEN_FOREST: 1 + - BIRCH_FOREST: 2 + - maple-groves: 1 + - FIR_FIELDS: 1 + boreal-hot-dry: + - BOREAL_SHRUBLAND: 1 + - maple-groves: 1 + - TAIGA: 2 + - FIR_FIELDS: 1 + boreal-hot-dry-highlands: + - MOUNTAINS: 1 + + boreal-warm-dry-flat: + - BOREAL_SHRUBLAND: 3 + - TAIGA: 2 + - PINE_CANOPY: 1 + - TAIGA_CLEARING: 2 + - FIR_FIELDS: 2 + boreal-warm-dry: + - TAIGA: 2 + - PINE_CANOPY: 1 + - FIR_FIELDS: 1 + boreal-warm-dry-highlands: + - MOUNTAINS: 1 + + boreal-cold-dry-flat: + - BOREAL_SHRUBLAND: 3 + - TAIGA: 2 + - TAIGA_CLEARING: 2 + - FIR_FIELDS: 2 + - maple-groves: 1 + boreal-cold-dry: + - BOREAL_SHRUBLAND: 1 + - TAIGA: 2 + - maple-groves: 1 + - FIR_FIELDS: 1 + boreal-cold-dry-highlands: + - SNOWY_MOUNTAINS: 1 + - MONTANE_FOREST: 1 + boreal-snowy-dry-flat: + - SNOWY_MEADOW: 1 + boreal-snowy-dry: + - SNOWY_MEADOW: 1 + boreal-snowy-dry-highlands: + - SNOWY_MOUNTAINS: 1 + - MONTANE_FOREST: 1 + + boreal-coast-flat: + - ROCKY_ARCHIPELAGO: 5 + - SHALE_BEACH: 1 + - PINE_BARRENS: 1 + boreal-coast: + - ROCKY_SEA_CAVES: 1 + boreal-coast-highlands: + - ROCKY_SEA_CAVES: 1 + + boreal-mesa: + - BOREAL_MESA: 1 + + boreal-crater-lake: + - todo: 1 + + boreal-extinct-volcano: + - todo: 1 + + boreal-shallow-ocean: + - KELP_FOREST_GRAVEL: 1 + boreal-shallow-ocean-midlands: + - COLD_OCEAN: 1 + - COLD_OCEAN_OVERHANGS: 1 + boreal-ocean: + - COLD_OCEAN: 1 + - COLD_OCEAN_SLOPES: 1 + boreal-deep-ocean: + - COLD_DEEP_OCEAN: 1 + - COLD_DEEP_DEPTHS: 1 + + temperate-hot-dry-flat: + - STEPPE: 1 + - CHAPARRAL: 1 + - MOORLAND: 1 + temperate-hot-dry: + - CHAPARRAL: 1 + - MOORLAND: 1 + temperate-hot-dry-highlands: + - DRY_TEMPERATE_MOUNTAINS: 1 + - DRY_TEMPERATE_WHITE_MOUNTAINS: 1 + + temperate-warm-dry-flat: + - STEPPE: 1 + - CHAPARRAL: 1 + - MOORLAND: 1 + temperate-warm-dry: + - CHAPARRAL: 1 + - MOORLAND: 1 + temperate-warm-dry-highlands: + - DRY_TEMPERATE_MOUNTAINS: 1 + - DRY_TEMPERATE_WHITE_MOUNTAINS: 1 + + temperate-hot-flat: + - MOORLAND: 1 + - ALIEN_MARSH: 1 + - TEMPERATE_RAINFOREST: 1 + - ROCKY_GRASSLAND: 1 + - OAK_FOREST: 1 + temperate-hot: + - WOODED_BUTTES: 1 + - TEMPERATE_OVERPASS: 1 + - TEMPERATE_RAINFOREST: 1 + - AZALEA_FOREST: 1 + - OAK_FOREST: 1 + temperate-hot-highlands: + - HIGHLANDS: 1 + - DENSELY_WOODED_HIGHLANDS: 1 + - TEMPERATE_ALPHA_MOUNTAINS: 1 + - TEMPERATE_MOUNTAINS: 1 + - TEMPERATE_MONTANE_RAINFOREST: 3 + + temperate-warm-flat: + - FLOWERING_FOREST: 1 + - BROADLEAF_FOREST: 2 + - DARK_FOREST: 1 + - SAKURA_GROVE: 1 + - WOODED_BUTTES: 1 + - ROCKY_GRASSLAND: 1 + - OAK_FOREST: 1 + temperate-warm: + - OAK_FOREST: 1 + - FLOWERING_FOREST: 1 + - BROADLEAF_FOREST: 1 + - DARK_FOREST: 1 + - SAKURA_GROVE: 1 + - WOODED_BUTTES: 1 + temperate-warm-highlands: + - HIGHLANDS: 1 + - DENSELY_WOODED_HIGHLANDS: 1 + - TEMPERATE_ALPHA_MOUNTAINS: 1 + - TEMPERATE_MOUNTAINS: 1 + - TEMPERATE_MONTANE_RAINFOREST: 3 + + temperate-cold-flat: + - PRAIRIE: 3 + - OAK_FOREST: 1 + - ROCKY_GRASSLAND: 1 + - SUNFLOWER_PRAIRIE: 1 + - BROADLEAF_FOREST: 2 + - DARK_FOREST: 2 + - SAKURA_GROVE: 2 + - WOODED_BUTTES: 2 + temperate-cold: + - OAK_FOREST: 1 + - ROCKY_GRASSLAND: 1 + - FLOWERING_FOREST: 1 + - BROADLEAF_FOREST: 1 + - DARK_FOREST: 1 + - SAKURA_GROVE: 1 + - WOODED_BUTTES: 1 + temperate-cold-highlands: + - HIGHLANDS: 1 + - DENSELY_WOODED_HIGHLANDS: 1 + - TEMPERATE_ALPHA_MOUNTAINS: 1 + - TEMPERATE_MOUNTAINS: 1 + + temperate-coast-flat: + - BEACH: 2 + - SHRUB_BEACH: 2 + - PINE_BARRENS: 1 + temperate-coast: + - TEMPERATE_SEA_ARCHES: 1 + temperate-coast-highlands: + - TEMPERATE_SEA_ARCHES: 1 + + temperate-mesa: + - TEMPERATE_MESA: 1 + + temperate-crater-lake: + - TEMPERATE_CRATER_LAKE: 1 + + temperate-extinct-volcano: + - TEMPERATE_EXTINCT_VOLCANO: 1 + + temperate-shallow-ocean: + - KELP_FOREST: 1 + - SEAGRASS_MEADOW: 1 + temperate-shallow-ocean-midlands: + - ROCKY_SHALLOW_OCEAN: 1 + - OCEAN_OVERHANGS: 1 + temperate-ocean: + - OCEAN: 1 + - OCEAN_SLOPES: 1 + temperate-deep-ocean: + - DEEP_OCEAN: 1 + - DEEP_DEPTHS: 1 + + # Red hot desert + hot-desert-flat-red: + - ARID_SPIKES: 1 + - BADLANDS: 1 + - BADLANDS_BUTTES: 1 + - RED_DESERT: 1 + - SALT_FLATS: 1 + hot-desert-red: + - ARID_SPIKES: 1 + - BADLANDS: 1 + - BADLANDS_BUTTES: 1 + - RED_DESERT: 1 + hot-desert-highlands-red: + - ARID_SPIKES: 1 + - BADLANDS: 1 + - BADLANDS_BUTTES: 1 + + # Orange hot desert + hot-desert-flat-orange: + - ORANGE_DESERT: 5 + - SALT_FLATS: 1 + hot-desert-orange: + - ORANGE_DESERT: 1 + hot-desert-highlands-orange: + - ORANGE_DESERT: 1 + + # White hot desert + hot-desert-flat-white: + - DESERT: 4 + - PEARLESCENT_DESERT: 1 + - SALT_FLATS: 1 + hot-desert-white: + - DESERT: 1 + - DESERT_PILLARS: 1 + - DESERT_SPIKES: 1 + - DESERT_SPIKES_GOLD: 1 + - DESERT_TERRACES: 1 + - ROCKY_DESERT: 1 + - PEARLESCENT_DESERT: 1 + hot-desert-highlands-white: + - DESERT_PILLARS: 1 + - DESERT_SPIKES: 1 + - DESERT_SPIKES_GOLD: 1 + - DESERT_TERRACES: 1 + - ROCKY_DESERT: 1 + - PEARLESCENT_DESERT: 1 + + # Red hot steppe + hot-steppe-flat-red: + - XERIC_SHRUBLAND: 1 + hot-steppe-red: + - XERIC_SHRUBLAND: 1 + hot-steppe-highlands-red: + - XERIC_MOUNTAINS: 1 + + # Orange hot steppe + hot-steppe-flat-orange: + - XERIC_SHRUBLAND: 1 + - PALM_FOREST: 1 + hot-steppe-orange: + - XERIC_SHRUBLAND: 1 + - PALM_FOREST: 1 + hot-steppe-highlands-orange: + - XERIC_MOUNTAINS: 1 + - PALM_FOREST: 1 + + # White hot steppe + hot-steppe-flat-white: + - XERIC_SHRUBLAND: 1 + - TAR_PITS: 1 + - PALM_FOREST: 1 + - FIRMIHIN_FOREST: 1 + hot-steppe-white: + - XERIC_SHRUBLAND: 1 + - TAR_PITS: 1 + - PALM_FOREST: 1 + - FIRMIHIN_FOREST: 1 + hot-steppe-highlands-white: + - XERIC_MOUNTAINS: 1 + - DIKSAM_PLATEAU: 1 + + # Temperate - Desert border + temperate-steppe-flat: + - XERIC_SHRUBLAND: 1 + - DRYBRUSH: 1 + temperate-steppe: + - XERIC_SHRUBLAND: 1 + - DRYBRUSH: 1 + temperate-steppe-highlands: + - XERIC_MOUNTAINS: 1 + + cold-desert-flat: + - SALT_FLATS: 1 + cold-desert: + - SNOWY_DUNES: 1 + - SNOWY_BADLANDS: 1 + cold-desert-highlands: + - SNOWY_MOUNTAINS: 1 + - SNOWY_BADLANDS: 1 + + cold-steppe-flat: + - COLD_STEPPE: 1 + - DRY_FIR_FIELDS: 1 + cold-steppe: + - COLD_STEPPE: 2 + - DRY_FIR_FIELDS: 1 + cold-steppe-highlands: + - COLD_STEPPE: 1 + + cold-desert-mesa: + - COLD_DESERT_MESA: 1 + + cold-desert-crater-lake: + - todo: 1 + + cold-desert-extinct-volcano: + - todo: 1 + + arid-coast-flat: + - BLACK_SAND_BEACH: 1 + - BEACH: 1 + arid-coast: + - SANDSTONE_ARCHIPELAGO: 1 + arid-coast-highlands: + - TERRACOTTA_SEA_CAVES: 1 + + desert-mesa: + - DESERT_MESA: 1 + + desert-crater-lake: + - todo: 1 + + desert-extinct-volcano: + - todo: 1 + + tropical-rainforest-flat: + - BAMBOO_JUNGLE: 1 + - JUNGLE: 1 + - ROCKY_JUNGLE: 1 + - TROPICAL_RAINFOREST: 1 + tropical-rainforest: + - BAMBOO_JUNGLE: 1 + - TROPICAL_FLOODPLAIN: 1 + - OVERGROWN_CLIFFS: 1 + - CLOUD_FOREST: 1 + - TROPICAL_RAINFOREST: 1 + tropical-rainforest-highlands: + - JUNGLE: 1 + - ROCKY_JUNGLE: 1 + - CLOUD_FOREST: 1 + - TROPICAL_RAINFOREST: 1 + + tropical-monsoon-flat: + - DRY_WOODLANDS: 1 + - MONSOON_FOREST: 1 + tropical-monsoon: + - DRY_WOODLANDS: 1 + - MONSOON_FOREST: 1 + - OVERGROWN_CLIFFS: 1 + - CLOUD_FOREST: 1 + tropical-monsoon-highlands: + - DRY_WOODLANDS: 1 + - MONSOON_FOREST: 1 + - TROPICAL_RAINFOREST: 1 + + tropical-savanna-dry-flat: + - GRASS_SAVANNA: 1 + - SAVANNA: 1 + tropical-savanna-dry: + - GRASS_SAVANNA: 1 + - SAVANNA: 1 + tropical-savanna-dry-highlands: + - SAVANNA_OVERHANGS: 1 + + tropical-savanna-wet-flat: + - WET_SAVANNA: 1 + tropical-savanna-wet: + - WET_SAVANNA: 1 + tropical-savanna-wet-highlands: + - SAVANNA_OVERHANGS: 1 + + tropical-coast-flat: + - MUDDY_COASTS: 1 + - MANGROVE_SWAMP: 1 + - PALM_BEACH: 1 + tropical-coast: LUSH_SEA_CAVES + tropical-coast-highlands: LUSH_SEA_CAVES + + tropical-mesa: + - TROPICAL_MESA: 1 + + tropical-crater-lake: + - todo: 1 + + tropical-extinct-volcano: + - todo: 1 + + hot-shallow-ocean: + - SHALLOW_CORAL_OCEAN: 1 + - SEAGRASS_MEADOW: 1 + hot-shallow-ocean-midlands: + - TROPICAL_OCEAN: 1 + - TROPICAL_OCEAN_OVERHANGS: 1 + - SEAGRASS_MEADOW: 1 + - CORAL_OCEAN: 1 + - CORAL_OCEAN_OVERHANGS: 1 + hot-ocean: + - TROPICAL_OCEAN: 1 + - TROPICAL_OCEAN_SLOPES: 1 + - CORAL_OCEAN_SLOPES: 1 + hot-deep-ocean: + - TROPICAL_DEEP_OCEAN: 1 + - TROPICAL_DEEP_DEPTHS: 1 + + mushroom: + - MUSHROOM_FIELDS: 1 + mushroom-coast: + - MUSHROOM_COAST: 1 + + polar-vast-forest: + - POLAR_PALE_GARDEN: 1 + polar-vast-forest-coast: + - POLAR_PALE_GARDEN_COAST: 1 + boreal-vast-forest: + - PALE_GARDEN: 1 + boreal-vast-forest-coast: + - PALE_GARDEN_COAST: 1 + temperate-vast-forest: + - PALE_GARDEN: 1 + temperate-vast-forest-coast: + - PALE_GARDEN_COAST: 1 + + + island-polar-shallow-ocean: + - FROZEN_ISLAND_SHALLOWS: 1 + island-boreal-shallow-ocean: + - COLD_ISLAND_SHALLOWS: 1 + island-temperate-shallow-ocean: + - ISLAND_SHALLOWS: 1 + island-hot-shallow-ocean: + - TROPICAL_ISLAND_SHALLOWS: 1 \ No newline at end of file diff --git a/biome-providers/README.md b/biome-providers/README.md deleted file mode 100644 index fe4343b4..00000000 --- a/biome-providers/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Biome Providers - -This directory contains configuration files related to **biome distribution**. -For individual biome configuration, checkout the `biomes` directory instead. - -This directory is organized into 3 subdirectories: - -## Presets -A collection of preset biome provider configurations. A biome provider is simply -something that tells Terra how to distribute biomes. We have a couple presets -available for those who want alternative biome distributions but may not know -how to configure them. The provider in use is determined under the `biomes` -parameter in the pack manifest (`pack.yml`). (Only one can be selected at a time.) - -## Sources -Contains various configs that define different base biome distributions used for -'pipeline' biome providers. These are typically used to determine how land, -coasts, and oceans generate. For pipeline providers, The source in use is -determined by the preset. - -## Stages -Contains various mutation stages that are applied to pipeline biome providers. -These do things such as add different climate zones, add rivers, add volcanoes, -etc. Similarly to sources, the ordering of stages is determined by the provider -preset. \ No newline at end of file diff --git a/biome-providers/extrusions/add_cave_biomes.yml b/biome-providers/extrusions/add_cave_biomes.yml deleted file mode 100644 index 91f84020..00000000 --- a/biome-providers/extrusions/add_cave_biomes.yml +++ /dev/null @@ -1,15 +0,0 @@ -extrusions: - - type: REPLACE - from: LAND_CAVES - sampler: - type: CELLULAR - return: CellValue - salt: 1252 - frequency: 1 / ${meta.yml:biome-distribution.cave-biome-scale} / ${meta.yml:biome-distribution.global-scale} - to: - - SELF: 6 - - LUSH_CAVES: 1 - - DRIPSTONE_CAVES: 1 - range: - min: -16 - max: 48 diff --git a/biome-providers/extrusions/add_deep_dark.yml b/biome-providers/extrusions/add_deep_dark.yml deleted file mode 100644 index 08d9aa5d..00000000 --- a/biome-providers/extrusions/add_deep_dark.yml +++ /dev/null @@ -1,13 +0,0 @@ -extrusions: - - type: REPLACE - from: LAND_CAVES - sampler: - type: OPEN_SIMPLEX_2 - salt: 9238 - frequency: 0.2 / ${meta.yml:biome-distribution.variation-scale} / ${meta.yml:biome-distribution.global-scale} - to: - - SELF: 4 - - DEEP_DARK: 1 - range: - min: -64 - max: 0 \ No newline at end of file diff --git a/biome-providers/presets/default.yml b/biome-providers/presets/default.yml deleted file mode 100644 index 60010c38..00000000 --- a/biome-providers/presets/default.yml +++ /dev/null @@ -1,138 +0,0 @@ -biomes: - type: EXTRUSION - extrusions: - - << biome-providers/extrusions/add_cave_biomes.yml:extrusions - - << biome-providers/extrusions/add_deep_dark.yml:extrusions - provider: - type: PIPELINE - resolution: 2 - initial-size: 10 - blend: - amplitude: 1.5 - sampler: - type: WHITE_NOISE - pipeline: - # --- - # Source - # --- - # The source controls ocean / coast / land distribution. - # Several preset sources are available to choose from below. - # Choosing which one is in use is as simple as commenting the enabled one - # (by adding a # at the start) and uncommenting the one you wish to use. - # - # Basic Continents - source: $biome-providers/sources/basic_continents.yml:source - # - # Land Only - #source: $biome-providers/sources/land_only.yml:source - # - # Ocean Only - #source: $biome-providers/sources/ocean_only.yml:source - # - # From Image - #source: TODO - # --- - - # --- - # Pipeline Stages - # --- - # Here is a list of stages applied sequentially after the source, and is - # where most of biome distribution occurs. Further customizations can - # be made as outlined by the comments in each stage, additionally you can - # further more modify the stages themselves in their respective files. - - stages: - # --- - # Assign zones for volcanic biomes - # - Comment the following line to disable volcano generation. - - << biome-providers/stages/add_volcanic_zones.yml:stages - # --- - - # --- - # Add mushroom islands - # - Comment the following line to disable mushroom island generation - - << biome-providers/stages/add_mushroom_islands.yml:stages - # --- - - # --- - # Replace deep ocean border with deep ocean - - << biome-providers/stages/replace_deep_ocean_border.yml:stages - # --- - - # --- - # Split land & coast (determined by the source) into elevation zones - - << biome-providers/stages/distribute_elevation_zones.yml:stages - # --- - - # --- - # Replace some higher coastal zones with flat ones - # - Comment the following line for more consistent coastline terrain - - << biome-providers/stages/flatten_coast_randomly.yml:stages - # --- - - # --- - # Replace volcanic biomes with variants - # - This will do nothing if volcanoes have been disabled above - # and should also be commented out if you've disabled them. - - << biome-providers/stages/add_volcanic_variations.yml:stages - # --- - - # --- - # Split elevation zones into temperature zones - - << biome-providers/stages/distribute_temperature_zones.yml:stages - # - # Alternative temperature distributions - # - If you want to use an alternative distribution, comment the stage - # above (distribute_temperature_zones) to disable it, and uncomment - # the distribution you wish to use. - # - # Polar Biomes Only - #- << biome-providers/stages/distribute_temperature_zones_polar.yml:stages - # - # Hot Biomes Only - #- << biome-providers/stages/distribute_temperature_zones_tropical.yml:stages - # - # Temperate Biomes Only - #- TODO - # - # Striped Temperature - Alternating stripes from hot to cold along the x axis - #- TODO - # --- - - # --- - # Split temperature zones into precipitation zones or singular biomes - # - Some temperature zones aren't affected by precipitation (such as polar) - # and are handled by the next stage instead. - - << biome-providers/stages/distribute_precipitation_zones.yml:stages - # --- - - # --- - # Choose final biome(s) for any zones not assigned biomes in the previous stage. - - << biome-providers/stages/distribute_climate_variants.yml:stages - # --- - - - << biome-providers/stages/expand.yml:stages - - # --- - # Biome specific variations - - << biome-providers/stages/add_variants.yml:stages - # --- - - # --- - # Expansion and smoothing - # - Make biomes bigger + blend the borders to look more natural. - - << biome-providers/stages/expand.yml:stages - - << biome-providers/stages/expand.yml:stages - - << biome-providers/stages/smooth.yml:stages - - << biome-providers/stages/smooth.yml:stages - - << biome-providers/stages/smooth.yml:stages - - << biome-providers/stages/expand.yml:stages - - << biome-providers/stages/smooth.yml:stages - - << biome-providers/stages/smooth.yml:stages - - << biome-providers/stages/smooth.yml:stages - - # --- - # Add rivers to all biomes - # - Comment this out to disable river generation - - << biome-providers/stages/add_rivers.yml:stages - # --- diff --git a/biome-providers/presets/single.yml b/biome-providers/presets/single.yml deleted file mode 100644 index 2fb1d0c7..00000000 --- a/biome-providers/presets/single.yml +++ /dev/null @@ -1,3 +0,0 @@ -biomes: - type: SINGLE - biome: ARID_HIGHLANDS # The singular biome that will be used. diff --git a/biome-providers/sources/basic_continents.yml b/biome-providers/sources/basic_continents.yml deleted file mode 100644 index 50ce7466..00000000 --- a/biome-providers/sources/basic_continents.yml +++ /dev/null @@ -1,21 +0,0 @@ -source: - type: SAMPLER - biomes: - - deep-ocean: 28 - - deep-ocean-border: 4 # Used for the border of deep ocean island biomes crossing into regular ocean - - ocean: 16 - - coast: 4 # Used for the border of land biomes crossing into ocean - - land: 32 - sampler: - dimensions: 2 - type: LINEAR - min: -1 - max: -0.65 - sampler: - type: FBM - lacunarity: 3 - gain: 0.4 - octaves: 4 - sampler: - type: CELLULAR - frequency: 1 / ${meta.yml:biome-distribution.continental-scale} / ${meta.yml:biome-distribution.global-scale} diff --git a/biome-providers/sources/land_only.yml b/biome-providers/sources/land_only.yml deleted file mode 100644 index 39d5ae39..00000000 --- a/biome-providers/sources/land_only.yml +++ /dev/null @@ -1,7 +0,0 @@ -source: - type: SAMPLER - biomes: - - land: 1 - sampler: - dimensions: 2 - type: CONSTANT \ No newline at end of file diff --git a/biome-providers/sources/ocean_only.yml b/biome-providers/sources/ocean_only.yml deleted file mode 100644 index 1c23ef0b..00000000 --- a/biome-providers/sources/ocean_only.yml +++ /dev/null @@ -1,10 +0,0 @@ -source: - type: SAMPLER - biomes: - - ocean: 2 - - deep-ocean: 1 - sampler: - dimensions: 2 - type: FBM - sampler: - type: OPEN_SIMPLEX_2 \ No newline at end of file diff --git a/biome-providers/stages/add_mushroom_islands.yml b/biome-providers/stages/add_mushroom_islands.yml deleted file mode 100644 index a83e80f3..00000000 --- a/biome-providers/stages/add_mushroom_islands.yml +++ /dev/null @@ -1,63 +0,0 @@ - -# Uses warped cellular distance to determine where mushroom islands are placed. -# The output is modified to allow users to define the spread and radius easily. -zone-sampler: - type: EXPRESSION - expression: split((noise(x/spread,z/spread)+1)*4/(radius/spread)-1) - variables: - spread: 0+${meta.yml:biome-distribution.global-scale} * ${meta.yml:biome-distribution.mushroom-island-spread} - radius: 0+${meta.yml:biome-distribution.global-scale} * ${meta.yml:biome-distribution.mushroom-island-radius} - functions: - split: - arguments: [x] - expression: if(x<0,x,1) - samplers: - noise: - dimensions: 2 - type: DOMAIN_WARP - amplitude: 0.04 - warp: - type: OPEN_SIMPLEX_2 - salt: 4161 - frequency: 7 - sampler: - type: CELLULAR - salt: 5171 - frequency: 1 - -variation-sampler: - type: OPEN_SIMPLEX_2 - salt: 1959 - frequency: 0.04 / ${meta.yml:biome-distribution.global-scale} - -mushroom-area-weight: &mushroom-area-weight 5 # Summed weights allocated to mushroom area - -stages: - - type: REPLACE_LIST - default-from: deep-ocean - default-to: - # Mushroom area - The weights should sum to mushroom-area-weight. - - MUSHROOM_MOUNTAINS: 1 - - MUSHROOM_HILLS: 1 - - mushroom-land: 2 - - mushroom-coast: 1 - # Non-mushroom area - - deep-ocean: *mushroom-area-weight - to: - deep-ocean-border: - # Mushroom area - - mushroom-coast: 5 - # Non-mushroom area - - deep-ocean-border: *mushroom-area-weight - sampler: $biome-providers/stages/add_mushroom_islands.yml:zone-sampler - - type: REPLACE_LIST - default-from: mushroom-land - default-to: - - MUSHROOM_MOUNTAINS: 1 - - MUSHROOM_HILLS: 1 - - MUSHROOM_FIELDS: 1 - to: - mushroom-coast: - - MUSHROOM_COAST: 1 - - ROCKY_WETLANDS: 2 - sampler: $biome-providers/stages/add_mushroom_islands.yml:variation-sampler \ No newline at end of file diff --git a/biome-providers/stages/add_rivers.yml b/biome-providers/stages/add_rivers.yml deleted file mode 100644 index 543b8709..00000000 --- a/biome-providers/stages/add_rivers.yml +++ /dev/null @@ -1,87 +0,0 @@ -# The sampler that controls how rivers generate, you can find various presets -# in the biome-providers/stages/river-samplers/ folder. -riverSampler: &riverSampler $biome-providers/stages/river-samplers/default.yml:sampler -# To pick the preset, simply change the file reference above ^ -# You can further edit and customize the parameters of a river sampler preset within its own file. - -# Tags are used by biomes to determine the kind of river to use, except for biomes with -# their own specific river biome. These tags are formatted by the type of river, and optionally -# the type of river wetlands surrounding the river, e.g USE_FROZEN_RIVER_FROZEN_MARSH would mean -# the biome will use a frozen river with frozen marshes surrounding it. - -stages: - # Regular rivers - - type: REPLACE_LIST - default-from: USE_RIVER - default-to: - - SELF: 1 - - RIVER: 1 - to: - # Biome specific rivers - TEMPERATE_MOUNTAINS: - - SELF: 1 - - TEMPERATE_MOUNTAINS_RIVER: 1 - MOUNTAINS: - - SELF: 1 - - MOUNTAINS_RIVER: 1 - XERIC_MOUNTAINS: - - SELF: 1 - - XERIC_MOUNTAINS_RIVER: 1 - BADLANDS_MOUNTAINS: - - SELF: 1 - - BADLANDS_MOUNTAINS_RIVER: 1 - DRY_TEMPERATE_MOUNTAINS: - - SELF: 1 - - DRY_TEMPERATE_MOUNTAINS_RIVER: 1 - DRY_TEMPERATE_WHITE_MOUNTAINS: - - SELF: 1 - - DRY_TEMPERATE_WHITE_MOUNTAINS_RIVER: 1 - SNOWY_MOUNTAINS: - - SELF: 1 - - SNOWY_MOUNTAINS_RIVER: 1 - SNOWY_TERRACED_MOUNTAINS: - - SELF: 1 - - SNOWY_TERRACED_MOUNTAINS_RIVER: 1 - SNOWY_ERODED_TERRACED_MOUNTAINS: - - SELF: 1 - - SNOWY_ERODED_TERRACED_MOUNTAINS_RIVER: 1 - sampler: *riverSampler - # Regular rivers with temperate marshes - - type: REPLACE - from: USE_RIVER_TEMPERATE_MARSH - to: - - SELF: 1 - - MARSH: 1 - - RIVER: 2 - sampler: *riverSampler - # Regular rivers with bordering swamps - - type: REPLACE - from: USE_RIVER_TEMPERATE_SWAMP - to: - - SELF: 1 - - SWAMP: 1 - - RIVER: 2 - sampler: *riverSampler - # Regular coastal rivers with mangrove swamps - - type: REPLACE - from: USE_RIVER_COASTAL_TROPICAL_SWAMP - to: - - SELF: 1 - - MANGROVE_SWAMP: 1 - - RIVER: 2 - sampler: *riverSampler - # Frozen Rivers - - type: REPLACE - from: USE_FROZEN_RIVER - to: - - SELF: 1 - - FROZEN_RIVER: 1 - sampler: *riverSampler - # Frozen rivers with frozen marshes - - type: REPLACE - from: USE_FROZEN_RIVER_FROZEN_MARSH - to: - - SELF: 1 - - FROZEN_MARSH: 1 - - FROZEN_RIVER: 2 - sampler: *riverSampler \ No newline at end of file diff --git a/biome-providers/stages/add_variants.yml b/biome-providers/stages/add_variants.yml deleted file mode 100644 index 3a98510e..00000000 --- a/biome-providers/stages/add_variants.yml +++ /dev/null @@ -1,96 +0,0 @@ -stages: - # Climate variations - - type: REPLACE_LIST - default-from: desert-variants - default-to: - - DESERT: 5 - - ROCKY_DESERT: 3 - - desert-spikes-microvariants: 1 - to: - jungle-flats-variants: - - jungle-flats-microvariants: 5 - - SWAMP: 1 - evergreen-flats-variants: - - EVERGREEN_FLATS: 5 - - FLOWERING_FLATS: 3 - plains-variants: - - plains-microvariants: 3 - - PRAIRIE: 3 - birch-flats-variants: - - BIRCH_FLATS: 3 - - AUTUMNAL_FLATS: 2 - jungle-variants: - - jungle-microvariants: 4 - - BAMBOO_PONDS: 1 - evergreen-forest-variants: - - EVERGREEN_FOREST: 5 - - FLOWERING_FOREST: 3 - - EVERGREEN_OVERHANGS: 1 - birch-forest-variants: - - BIRCH_FOREST: 3 - - AUTUMNAL_FOREST: 1 - birch-forest-hills-variants: - - BIRCH_FOREST_HILLS: 5 - - AUTUMNAL_FOREST_HILLS: 3 - - FLOWERING_AUTUMNAL_FOREST_HILLS: 1 - badlands-variants: - - BADLANDS_MOUNTAINS: 2 - - DESERT_PILLARS: 1 - - BADLANDS_BUTTES: 2 - - ERODED_BADLANDS_BUTTES: 1 - - ARID_HIGHLANDS: 1 - forest-hills-variants: - - FOREST_HILLS: 5 - - FLOWERING_FOREST_HILLS: 3 - wild-mountains-variants: - - WILD_BUMPY_MOUNTAINS: 3 - temperate-mountains-variants: - - HIGHLANDS: 4 - - TEMPERATE_MOUNTAINS: 8 - - SAKURA_MOUNTAINS: 4 - sampler: - dimensions: 2 - type: CELLULAR - return: CellValue - salt: 42342 - frequency: 0.06 / ${meta.yml:biome-distribution.global-scale} - - # Direct variants - color variations, etc - - type: REPLACE_LIST - default-from: desert-spikes-microvariants - default-to: - - DESERT_SPIKES: 6 - - DESERT_SPIKES_GOLD: 1 - to: - DRY_TEMPERATE_MOUNTAINS: - - SELF: 2 - - DRY_TEMPERATE_WHITE_MOUNTAINS: 1 - TAIGA_HILLS: - - SELF: 9 - - REDWOOD_FOREST_HILLS: 1 - jungle-flats-microvariants: - - JUNGLE_FLATS: 4 - - BAMBOO_JUNGLE_FLATS: 2 - - PALM_FOREST: 2 - jungle-microvariants: - - JUNGLE: 3 - - BAMBOO_JUNGLE: 1 - plains-microvariants: - - PLAINS: 3 - - SUNFLOWER_PLAINS: 1 - JUNGLE_HILLS: - - SELF: 3 - - BAMBOO_JUNGLE_HILLS: 1 - JUNGLE_MOUNTAINS: - - SELF: 3 - - BAMBOO_JUNGLE_MOUNTAINS: 1 - desert-flats-microvariants: - - DESERT_FLATS: 7 - - SALT_FLATS: 1 - - sampler: - dimensions: 2 - type: CELLULAR - return: CellValue - frequency: 0.3 / ${meta.yml:biome-distribution.global-scale} - salt: 34534 diff --git a/biome-providers/stages/add_volcanic_variations.yml b/biome-providers/stages/add_volcanic_variations.yml deleted file mode 100644 index 9d7a981a..00000000 --- a/biome-providers/stages/add_volcanic_variations.yml +++ /dev/null @@ -1,20 +0,0 @@ -active-weight: &active-weight 1 -caldera-weight: &caldera-weight 3 - -stages: - - type: REPLACE_LIST - default-from: volcano-pit - default-to: - - ACTIVE_VOLCANO_PIT: *active-weight - - CALDERA_VOLCANO_PIT: *caldera-weight - to: - volcano-pit-edge: - - ACTIVE_VOLCANO_PIT_EDGE: *active-weight - - CALDERA_VOLCANO_PIT_EDGE: *caldera-weight - volcano-base-edge: - - ACTIVE_VOLCANO_BASE_EDGE: *active-weight - - CALDERA_VOLCANO_BASE_EDGE: *caldera-weight - volcano-base: - - ACTIVE_VOLCANO_BASE: *active-weight - - CALDERA_VOLCANO_BASE: *caldera-weight - sampler: $biome-providers/stages/add_volcanic_zones.yml:variation-sampler diff --git a/biome-providers/stages/add_volcanic_zones.yml b/biome-providers/stages/add_volcanic_zones.yml deleted file mode 100644 index 5ed74a89..00000000 --- a/biome-providers/stages/add_volcanic_zones.yml +++ /dev/null @@ -1,97 +0,0 @@ - -# Uses warped cellular distance to determine where volcanoes are placed. -# The output is modified to allow users to define the spread and radius easily. -zone-sampler: - type: EXPRESSION - expression: split((noise(x/spread,z/spread)+1)*4/(radius/spread)-1) - variables: - spread: &spread 0+${meta.yml:biome-distribution.global-scale} * ${meta.yml:biome-distribution.volcano-spread} - radius: 0+${meta.yml:biome-distribution.global-scale} * ${meta.yml:biome-distribution.volcano-radius} - functions: - split: - arguments: [x] - expression: if(x<0,x,1) - samplers: - noise: &noise - dimensions: 2 - type: DOMAIN_WARP - amplitude: 0.01 - warp: - type: OPEN_SIMPLEX_2 - salt: 3912 - frequency: 10 - sampler: &cellular - type: CELLULAR - salt: 5912 - frequency: 1 - -# Variations use the same cellular noise as above but return the cell value -# instead to determine the variation. -# This sampler is used in the add_volcanic_variations.yml file. -variation-sampler: - type: EXPRESSION - expression: noise(x/spread,z/spread) - variables: - spread: *spread - samplers: - noise: - <<: *noise - sampler: - <<: *cellular - return: CellValue - -volcano-area-weight: &volcano-area-weight 14 # Summed weights allocated to volcanic area - -stages: - - type: REPLACE_LIST - default-from: deep-ocean - default-to: - # Volcano area - The weights should sum to volcano-area-weight. - - volcano-pit: 1 - - volcano-pit-edge: 1 - - volcano-base-edge: 2 - - volcano-base: 4 - - mountains-small: 3 - - coast-mountains-small: 3 - # Non-volcano area - - deep-ocean: *volcano-area-weight - to: - deep-ocean-border: - # Volcano area - - volcano-pit: 1 - - volcano-pit-edge: 1 - - volcano-base-edge: 2 - - volcano-base: 4 - - mountains-small: 3 - - coast-mountains-small: 3 - # Non-volcano area - - deep-ocean-border: *volcano-area-weight - ocean: - # Volcano area - - volcano-pit: 1 - - volcano-pit-edge: 1 - - volcano-base-edge: 2 - - volcano-base: 4 - - hills-large: 3 - - coast-hills-large: 3 - # Non-volcano area - - ocean: *volcano-area-weight - coast: - # Volcano area - - volcano-pit: 1 - - volcano-pit-edge: 1 - - volcano-base-edge: 2 - - volcano-base: 4 - - coast-mountains-small: 6 - # Non-volcano area - - coast: *volcano-area-weight - land: - # Volcano area - - volcano-pit: 1 - - volcano-pit-edge: 1 - - volcano-base-edge: 2 - - volcano-base: 4 - - land: 6 - # Non-volcano area - - land: *volcano-area-weight - sampler: $biome-providers/stages/add_volcanic_zones.yml:zone-sampler diff --git a/biome-providers/stages/distribute_climate_variants.yml b/biome-providers/stages/distribute_climate_variants.yml deleted file mode 100644 index 8b824b46..00000000 --- a/biome-providers/stages/distribute_climate_variants.yml +++ /dev/null @@ -1,213 +0,0 @@ - -# Here all zones not assigned a biome, such as oceanic, coastal, -# and polar zones are finally assigned one or more biomes. - -variation-map: &variation-map - dimensions: 2 - type: CELLULAR - return: CellValue - frequency: 1 / ${meta.yml:biome-distribution.variation-scale} / ${meta.yml:biome-distribution.global-scale} - -stages: - - type: REPLACE_LIST - sampler: *variation-map - - # --------------- - # Tropical Biomes - # --------------- - - # Tropical Oceanic - - default-from: deep-ocean-tropical - default-to: - - TROPICAL_DEEP_OCEAN: 1 - to: - ocean-tropical: - - TROPICAL_OCEAN: 1 - - CORAL_OCEAN: 1 - - # Tropical Coastal - - coast-flat-tropical: - - PALM_BEACH: 1 - - MANGROVE_SWAMP: 1 - - coast-hills-small-tropical: - - SANDSTONE_WETLANDS: 1 - - SANDSTONE_ARCHIPELAGO: 1 - - MANGROVE_SWAMP: 1 - - coast-hills-large-tropical: - - SANDSTONE_WETLANDS: 1 - - SANDSTONE_ARCHIPELAGO: 1 - - coast-mountains-small-tropical-humid: - - LUSH_SEA_CAVES: 1 - - coast-mountains-small-tropical: - - ROCKY_SEA_CAVES: 1 - - coast-mountains-small-tropical-arid: - - TERRACOTTA_SEA_CAVES: 1 - - coast-mountains-large-tropical-humid: - - TEMPERATE_SEA_ARCHES: 1 - - coast-mountains-large-tropical: - - ROCKY_SEA_ARCHES: 1 - - coast-mountains-large-tropical-arid: - - TERRACOTTA_SEA_ARCHES: 1 - - # ------------------ - # Subtropical Biomes - # ------------------ - - # Subtropical Oceanic - - deep-ocean-subtropical: - - SUBTROPICAL_DEEP_OCEAN: 1 - - ocean-subtropical: - - SUBTROPICAL_OCEAN: 1 - - # Subtropical Coastal - - coast-flat-subtropical: - - BEACH: 1 - - MANGROVE_SWAMP: 1 - - SHRUB_BEACH: 1 - - coast-hills-small-subtropical: - - WETLANDS: 1 - - ARCHIPELAGO: 1 - - MANGROVE_SWAMP: 1 - - coast-hills-large-subtropical: - - WETLANDS: 1 - - ARCHIPELAGO: 1 - - coast-mountains-small-subtropical: - - LUSH_SEA_CAVES: 1 - - coast-mountains-large-subtropical: - - TEMPERATE_SEA_ARCHES: 1 - # ---------------- - # Temperate Biomes - # ---------------- - - # Temperate Oceanic - - deep-ocean-temperate: - - DEEP_OCEAN: 1 - - ocean-temperate: - - OCEAN: 1 - - # Temperate Coastal - - coast-flat-temperate: - - BEACH: 3 - - SHALE_BEACH: 1 - - SHRUB_BEACH: 1 - - coast-hills-small-temperate: - - WETLANDS: 1 - - ARCHIPELAGO: 1 - - coast-hills-large-temperate: - - WETLANDS: 1 - - ARCHIPELAGO: 1 - - coast-mountains-small-temperate: - - LUSH_SEA_CAVES: 1 - - coast-mountains-large-temperate: - - TEMPERATE_SEA_ARCHES: 1 - - mountains-large-temperate-semi-arid: - - DRY_TEMPERATE_MOUNTAINS: 1 - - DRY_TEMPERATE_WHITE_MOUNTAINS: 1 - - # ------------- - # Boreal Biomes - # ------------- - - # Boreal Oceanic - deep-ocean-boreal: - - COLD_DEEP_OCEAN: 1 - - ocean-boreal: - - COLD_OCEAN: 1 - - # Boreal Coastal - coast-flat-boreal: - - BEACH: 2 - - SHALE_BEACH: 1 - - coast-hills-small-boreal: - - ROCKY_WETLANDS: 1 - - ROCKY_ARCHIPELAGO: 1 - - coast-hills-large-boreal: - - ROCKY_WETLANDS: 1 - - ROCKY_ARCHIPELAGO: 1 - - coast-mountains-small-boreal: - - ROCKY_SEA_CAVES: 1 - - coast-mountains-large-boreal: - - ROCKY_SEA_ARCHES: 1 - - # ------------ - # Polar Biomes - # ------------ - - # Polar Oceanic - - deep-ocean-polar: - - FROZEN_DEEP_OCEAN: 1 - - ICEBERG_OCEAN: 1 - - ocean-polar: - - FROZEN_OCEAN: 1 - - # Polar Coastal - - coast-flat-polar: - - FROZEN_BEACH: 1 - - coast-hills-small-polar: - - FROZEN_WETLANDS: 1 - - FROZEN_ARCHIPELAGO: 1 - - coast-hills-large-polar: - - FROZEN_WETLANDS: 1 - - FROZEN_ARCHIPELAGO: 1 - - coast-mountains-small-polar: - - SNOWY_SEA_CAVES: 1 - - coast-mountains-large-polar: - - SNOWY_SEA_ARCHES: 1 - - # Polar Land - - flat-polar: - - SNOWY_PLAINS: 2 - - TUNDRA_PLAINS: 2 - - SNOWY_MEADOW: 4 - - hills-small-polar: - - ICE_SPIKES: 1 - - TUNDRA_MIDLANDS: 3 - - hills-large-polar: - - TUNDRA_HILLS: 1 - - mountains-small-polar: - - SNOWY_MOUNTAINS: 1 - - SNOWY_ERODED_TERRACED_MOUNTAINS: 1 - - mountains-large-polar: - - SNOWY_TERRACED_MOUNTAINS: 1 diff --git a/biome-providers/stages/distribute_elevation_zones.yml b/biome-providers/stages/distribute_elevation_zones.yml deleted file mode 100644 index 01e64363..00000000 --- a/biome-providers/stages/distribute_elevation_zones.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Splits land and coastal zones into different elevation zones. -# These elevation zones are further divided into temperature zones -# in the distribute_temperature_zones.yml file. - -elevation-map: &elevation-map - dimensions: 2 - type: FBM - octaves: 3 - sampler: - type: OPEN_SIMPLEX_2 - salt: 2313 - frequency: 1 / ${meta.yml:biome-distribution.elevation-scale} / ${meta.yml:biome-distribution.global-scale} - -stages: - - type: REPLACE_LIST - sampler: *elevation-map - - default-from: coast - default-to: - - coast-flat: 6 - - coast-hills-small: 5 - - coast-hills-large: 4 - - coast-mountains-small: 5 - - coast-mountains-large: 6 - to: - land: - - flat: 6 - - hills-small: 5 - - hills-large: 4 - - mountains-small: 5 - - mountains-large: 6 diff --git a/biome-providers/stages/distribute_precipitation_zones.yml b/biome-providers/stages/distribute_precipitation_zones.yml deleted file mode 100644 index fa41dcf6..00000000 --- a/biome-providers/stages/distribute_precipitation_zones.yml +++ /dev/null @@ -1,339 +0,0 @@ - -# Replaces temperature zones with the relevant biome, -# or a precipitation zone, which contains climate variants, -# handled in the distribute_variants.yml file. - -# Aquatic, coastal (except tropical coastal), and polar zones aren't affected -# by precipitation and are distributed via the distribute_variants.yml file instead. - -precipitation-map: &precipitation-map - dimensions: 2 - type: FBM - octaves: 2 - sampler: - type: OPEN_SIMPLEX_2 - salt: 5055 - frequency: 1 / ${meta.yml:biome-distribution.precipitation-scale} / ${meta.yml:biome-distribution.global-scale} - -stages: - - type: REPLACE_LIST - sampler: *precipitation-map - - # -------------------------------------------- - # Flat Biomes - # -------------------------------------------- - - default-from: flat-tropical - default-to: - - # ------------- - # Flat Tropical Humid - # ------------- - - jungle-flats-variants: 5 - # ------------- - # Flat Tropical Semi-Humid - # ------------- - - GRASS_SAVANNA: 2 - - SAVANNA: 2 - # ------------- - # Flat Tropical Semi-Arid - # ------------- - - CHAPARRAL_FLATS: 1 - # ------------- - # Flat Tropical Semi-Arid - # ------------- - - XERIC_PLAINS: 3 - # ------------- - # Flat Tropical Arid - # ------------- - - desert-flats-microvariants: 7 - - to: - flat-subtropical: - # ------------- - # Flat Subtropical Semi-Arid - # ------------- - - CHAPARRAL_FLATS: 3 - # ------------- - # ------------- - # Flat Subtropical Arid - # ------------- - - XERIC_PLAINS: 5 - - flat-temperate: - # Flat Subtropical Extra-Humid - # ------------- - - evergreen-forest-variants: 3 - # ------------- - # Flat Temperate Humid - # ------------- - - FOREST_FLATS: 5 - # ------------- - # Flat Temperate Semi-Humid - # ------------- - - plains-variants: 5 - # ------------- - # Flat Temperate Semi-Arid - # ------------- - - STEPPE: 3 - - EUCALYPTUS_FOREST: 3 - # ------------- - # Flat Temperate Arid (Mediterranean) - # ------------- - - OAK_SAVANNA: 4 - - flat-boreal: - # ------------- - # Flat Boreal Humid (Wetter Forests) - # ------------- - - birch-flats-variants: 5 - # ------------- - # Flat Boreal Semi-Humid (Dryer Forests) - # ------------- - - TAIGA_FLATS: 5 - - # -------------------------------------------- - # Small Hills Biomes - # -------------------------------------------- - - hills-small-tropical: - # ------------- - # Small Hills Tropical Humid - # ------------- - - jungle-variants: 5 - - # ------------- - # Small Hills Tropical Semi-Humid - # ------------- - - GRASS_SAVANNA_LOW_HILLS: 2 - - SAVANNA_LOW_HILLS: 2 - # ------------- - # Small Hills Tropical Semi-Arid - # ------------- - - LOW_CHAPARRAL: 3 - # ------------- - # Small Hills Tropical Arid - # ------------- - - desert-variants: 9 - - hills-small-subtropical: - # ------------- - # Small Hills Subtropical Humid - # ------------- - - RAINFOREST: 5 - # ------------- - # Small Hills Subtropical Semi Humid - # ------------- - - LOW_CHAPARRAL: 2 - - XEROPHYTIC_FOREST: 5 - # ------------- - # Small Hills Subtropical Arid - # ------------- - - XERIC_LOW_HILLS: 5 - - hills-small-temperate: - # ------------- - # Small Hills Temperate Humid - # ------------- - - evergreen-forest-variants: 3 - # ------------- - # Small Hills Temperate Semi-Humid - # ------------- - - DARK_FOREST: 1 - - FOREST: 3 - # ------------- - # Small Hills Temperate Semi-Arid - # ------------- - - WOODED_BUTTES: 2 - - hills-small-boreal: - # ------------- - # Small Hills Boreal Humid (Wetter Forests) - # ------------- - - birch-forest-variants: 3 - # ------------- - # Small Hills Boreal Semi-Humid (Dryer Forests) - # ------------- - - TAIGA: 3 - - # -------------------------------------------- - # Large Hills Biomes - # -------------------------------------------- - - hills-large-tropical: - # ------------- - # Large Hills Tropical Humid - # ------------- - - JUNGLE_HILLS: 5 - # ------------- - # Large Hills Tropical Semi-Humid - # ------------- - - GRASS_SAVANNA_HILLS: 3 - - SAVANNA_HILLS: 3 - # ------------- - # Large Hills Tropical Semi-Arid - # ------------- - - CHAPARRAL: 2 - # ------------- - # Large Hills Tropical Arid - # ------------- - - ARID_SPIKES: 5 - - hills-large-subtropical: - # ------------- - # Large Hills Subtropical Humid - # ------------- - - RAINFOREST_HILLS: 5 - # ------------- - # Large Hills Subtropical Semi-Arid - # ------------- - - XEROPHYTIC_FOREST_HILLS: 6 - - MOORLAND: 3 - # ------------- - # Large Hills Subtropical Arid - # ------------- - - XERIC_HILLS: 5 - - hills-large-temperate: - # ------------- - # Large Hills Temperate Humid - # ------------- - - EVERGREEN_FOREST_HILLS: 4 - # ------------- - # Large Hills Temperate Semi-Humid - # ------------- - - DARK_FOREST_HILLS: 3 - - forest-hills-variants: 6 - # ------------- - # Large Hills Temperate Semi-Arid - # ------------- - - SHRUBLAND: 5 - # ------------- - - hills-large-boreal: - # ------------- - # Large Hills Boreal Semi-Humid - # ------------- - - birch-forest-hills-variants: 9 - # ------------- - # Large Hills Boreal Semi-Arid - # ------------- - - TAIGA_HILLS: 11 - - # -------------------------------------------- - # Small Mountains Biomes - # -------------------------------------------- - - mountains-small-tropical: - # ------------- - # Small Mountains Tropical Humid - # ------------- - - OVERGROWN_CLIFFS: 5 - # ------------- - # Small Mountains Tropical Semi-Humid - # ------------- - - SAVANNA_OVERHANGS: 2 - # ------------- - # Small Mountains Tropical Semi-Arid - # ------------- - - XERIC_MOUNTAINS: 4 - # ------------- - # Small Mountains Tropical Arid - # ------------- - - badlands-variants: 7 - - mountains-small-subtropical: - # ------------- - # Small Mountains Subtropical Semi-Humid - # ------------- - - MONSOON_MOUNTAINS: 5 - # ------------- - # Small Mountains Subtropical Semi-Humid - # ------------- - - wild-mountains-variants: 4 - # ------------- - # Small Mountains Subtropical Semi-Arid - # ------------- - - ROCKY_BUMPY_MOUNTAINS: 4 - # ------------- - # Small Mountains Subtropical Arid - # ------------- - - DRY_ROCKY_BUMPY_MOUNTAINS: 5 - - mountains-small-temperate: - # ------------- - # Mountains Temperate Semi-Humid - # ------------- - - temperate-mountains-variants: 16 - - mountains-small-boreal: - # ------------- - # Mountains Boreal Semi-Humid - # ------------- - - SNOWY_ERODED_TERRACED_MOUNTAINS: 1 - # ------------- - # Mountains Boreal Semi-Arid - # ------------- - - MOUNTAINS: 3 - - # -------------------------------------------- - # Large Mountains Biomes - # -------------------------------------------- - - mountains-large-tropical: - # ------------- - # Large Mountains Tropical Humid - # ------------- - - JUNGLE_MOUNTAINS: 4 - # ------------- - # Large Mountains Tropical Semi-Humid - # ------------- - - WILD_HIGHLANDS: 4 - # ------------- - # Large Mountains Tropical Semi-Arid - # ------------- - - DRY_WILD_HIGHLANDS: 3 - # ------------- - # Large Mountains Tropical Arid - # ------------- - - CRACKED_BADLANDS_PLATEAU: 5 - - mountains-large-subtropical: - # ------------- - # Large Mountains Subtropical Humid - # ------------- - - LARGE_MONSOON_MOUNTAINS: 1 - - mountains-large-temperate: - # ------------- - # Large Mountains Temperate Semi-Humid - # ------------- - - TEMPERATE_ALPHA_MOUNTAINS: 2 - # ------------- - # Large Mountains Temperate Semi-Arid - # ------------- - - DRY_TEMPERATE_MOUNTAINS: 5 - - mountains-large-boreal: - # ------------- - # Large Mountains Boreal Semi-Humid - # ------------- - - SNOWY_ERODED_TERRACED_MOUNTAINS: 1 - - # -------------------------------------------- - # Coastal Small Mountains Biomes - # -------------------------------------------- - - coast-mountains-small-tropical: - # ------------- - # Coastal Small Mountains Tropical Humid - # ------------- - - coast-mountains-small-tropical-humid: 1 - # ------------- - # Coastal Small Mountains Tropical Semi Humid & Semi Arid - # ------------- - - coast-mountains-small-tropical: 2 - # ------------- - # Coastal Small Mountains Tropical Arid - # ------------- - - coast-mountains-small-tropical-arid: 1 diff --git a/biome-providers/stages/distribute_temperature_zones.yml b/biome-providers/stages/distribute_temperature_zones.yml deleted file mode 100644 index e2bd79a6..00000000 --- a/biome-providers/stages/distribute_temperature_zones.yml +++ /dev/null @@ -1,107 +0,0 @@ - -# Splits elevation zones into temperature zones. - -# These temperature zones are then later split into different -# precipitation zones by the distribute_precipitation_zones.yml file. -# Zones unaffected by precipitation such oceanic, coastal, and -# polar as are handled in the distribute_variants.yml file instead. - -temperature-map: &temperature-map - dimensions: 2 - type: FBM - octaves: 2 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 1 / ${meta.yml:biome-distribution.temperature-scale} / ${meta.yml:biome-distribution.global-scale} - salt: 53 - -stages: - - type: REPLACE_LIST - sampler: *temperature-map - - default-from: deep-ocean - default-to: - - deep-ocean-tropical: 5 - - deep-ocean-subtropical: 4 - - deep-ocean-temperate: 6 - - deep-ocean-boreal: 4 - - deep-ocean-polar: 5 - - to: - - ocean: - - ocean-tropical: 5 - - ocean-subtropical: 4 - - ocean-temperate: 6 - - ocean-boreal: 4 - - ocean-polar: 5 - - coast-flat: - - coast-flat-tropical: 5 - - coast-flat-subtropical: 4 - - coast-flat-temperate: 6 - - coast-flat-boreal: 4 - - coast-flat-polar: 5 - - coast-hills-small: - - coast-hills-small-tropical: 5 - - coast-hills-small-subtropical: 4 - - coast-hills-small-temperate: 6 - - coast-hills-small-boreal: 4 - - coast-hills-small-polar: 5 - - coast-hills-large: - - coast-hills-large-tropical: 5 - - coast-hills-large-subtropical: 4 - - coast-hills-large-temperate: 6 - - coast-hills-large-boreal: 4 - - coast-hills-large-polar: 5 - - coast-mountains-small: - - coast-mountains-small-tropical: 5 - - coast-mountains-small-subtropical: 4 - - coast-mountains-small-temperate: 6 - - coast-mountains-small-boreal: 4 - - coast-mountains-small-polar: 5 - - coast-mountains-large: - - coast-mountains-large-tropical: 5 - - coast-mountains-large-subtropical: 4 - - coast-mountains-large-temperate: 6 - - coast-mountains-large-boreal: 4 - - coast-mountains-large-polar: 5 - - flat: - - flat-tropical: 5 - - flat-subtropical: 4 - - flat-temperate: 6 - - flat-boreal: 4 - - flat-polar: 5 - - hills-small: - - hills-small-tropical: 5 - - hills-small-subtropical: 4 - - hills-small-temperate: 6 - - hills-small-boreal: 4 - - hills-small-polar: 5 - - hills-large: - - hills-large-tropical: 5 - - hills-large-subtropical: 4 - - hills-large-temperate: 6 - - hills-large-boreal: 4 - - hills-large-polar: 5 - - mountains-small: - - mountains-small-tropical: 5 - - mountains-small-subtropical: 4 - - mountains-small-temperate: 6 - - mountains-small-boreal: 4 - - mountains-small-polar: 5 - - mountains-large: - - mountains-large-tropical: 5 - - mountains-large-subtropical: 4 - - mountains-large-temperate: 6 - - mountains-large-boreal: 4 - - mountains-large-polar: 5 \ No newline at end of file diff --git a/biome-providers/stages/distribute_temperature_zones_polar.yml b/biome-providers/stages/distribute_temperature_zones_polar.yml deleted file mode 100644 index 8b90cb5a..00000000 --- a/biome-providers/stages/distribute_temperature_zones_polar.yml +++ /dev/null @@ -1,54 +0,0 @@ - -# Splits elevation zones into temperature zones. - -# These temperature zones are then later split into different -# precipitation zones by the distribute_precipitation_zones.yml file. -# Zones unaffected by precipitation such oceanic, coastal, and -# polar as are handled in the distribute_variants.yml file instead. - -temperature-map: &temperature-map - dimensions: 2 - type: CONSTANT - -stages: - - type: REPLACE_LIST - sampler: *temperature-map - - default-from: deep-ocean - default-to: - - deep-ocean-polar: 1 - - to: - - ocean: - - ocean-polar: 1 - - coast-flat: - - coast-flat-polar: 1 - - coast-hills-small: - - coast-hills-small-polar: 1 - - coast-hills-large: - - coast-hills-large-polar: 1 - - coast-mountains-small: - - coast-mountains-small-polar: 1 - - coast-mountains-large: - - coast-mountains-large-polar: 1 - - flat: - - flat-polar: 1 - - hills-small: - - hills-small-polar: 1 - - hills-large: - - hills-large-polar: 1 - - mountains-small: - - mountains-small-polar: 1 - - mountains-large: - - mountains-large-polar: 1 diff --git a/biome-providers/stages/distribute_temperature_zones_tropical.yml b/biome-providers/stages/distribute_temperature_zones_tropical.yml deleted file mode 100644 index 8d2d070b..00000000 --- a/biome-providers/stages/distribute_temperature_zones_tropical.yml +++ /dev/null @@ -1,54 +0,0 @@ - -# Splits elevation zones into temperature zones. - -# These temperature zones are then later split into different -# precipitation zones by the distribute_precipitation_zones.yml file. -# Zones unaffected by precipitation such oceanic, coastal, and -# polar as are handled in the distribute_variants.yml file instead. - -temperature-map: &temperature-map - dimensions: 2 - type: CONSTANT - -stages: - - type: REPLACE_LIST - sampler: *temperature-map - - default-from: deep-ocean - default-to: - - deep-ocean-tropical: 1 - - to: - - ocean: - - ocean-tropical: 1 - - coast-flat: - - coast-flat-tropical: 1 - - coast-hills-small: - - coast-hills-small-tropical: 1 - - coast-hills-large: - - coast-hills-large-tropical: 1 - - coast-mountains-small: - - coast-mountains-small-tropical: 1 - - coast-mountains-large: - - coast-mountains-large-tropical: 1 - - flat: - - flat-tropical: 1 - - hills-small: - - hills-small-tropical: 1 - - hills-large: - - hills-large-tropical: 1 - - mountains-small: - - mountains-small-tropical: 1 - - mountains-large: - - mountains-large-tropical: 1 diff --git a/biome-providers/stages/expand.yml b/biome-providers/stages/expand.yml deleted file mode 100644 index d4c4c9b5..00000000 --- a/biome-providers/stages/expand.yml +++ /dev/null @@ -1,4 +0,0 @@ -stages: - - type: FRACTAL_EXPAND - sampler: - type: WHITE_NOISE diff --git a/biome-providers/stages/flatten_coast_randomly.yml b/biome-providers/stages/flatten_coast_randomly.yml deleted file mode 100644 index 9b6d6802..00000000 --- a/biome-providers/stages/flatten_coast_randomly.yml +++ /dev/null @@ -1,25 +0,0 @@ -stages: - - type: REPLACE_LIST - default-from: coast-hills-small - default-to: - - coast-hills-small: 2 - - coast-flat: 1 - to: - coast-hills-large: - - coast-hills-large: 2 - - coast-hills-small: 1 - - coast-flat: 1 - coast-mountains-small: - - coast-mountains-small: 6 - - coast-hills-large: 1 - - coast-hills-small: 1 - - coast-flat: 6 - coast-mountains-large: - - coast-mountains-large: 6 - - coast-hills-large: 1 - - coast-hills-small: 1 - - coast-flat: 6 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.1 / ${meta.yml:biome-distribution.global-scale} - salt: 9129 diff --git a/biome-providers/stages/frozen_world/distribute_temperature_zones_polar.yml b/biome-providers/stages/frozen_world/distribute_temperature_zones_polar.yml deleted file mode 100644 index 7f7163d2..00000000 --- a/biome-providers/stages/frozen_world/distribute_temperature_zones_polar.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Elevation Zones -> Temperature Zones - -temperature-map: &temperature-map - dimensions: 2 - type: CONSTANT - -stages: - - type: REPLACE_LIST - sampler: *temperature-map - default-from: deep-ocean - default-to: - - deep-ocean-polar: 1 - to: - ocean: - - ocean-polar: 1 - coast-flat: - - FROZEN_BEACH: 1 - coast-hills: - - FROZEN_WETLANDS: 1 - coast-mountains: - - FROZEN_ARCHIPELAGO: 1 - flat: - - flat-polar: 1 - hills-small: - - hills-small-polar: 1 - hills-large: - - hills-large-polar: 1 - mountains-small: - - mountains-small-polar: 1 - mountains-large: - - mountains-large-polar: 1 diff --git a/biome-providers/stages/replace_deep_ocean_border.yml b/biome-providers/stages/replace_deep_ocean_border.yml deleted file mode 100644 index d0dd6963..00000000 --- a/biome-providers/stages/replace_deep_ocean_border.yml +++ /dev/null @@ -1,6 +0,0 @@ -stages: - - type: REPLACE - from: deep-ocean-border - to: deep-ocean - sampler: - type: CONSTANT \ No newline at end of file diff --git a/biome-providers/stages/river-samplers/default.yml b/biome-providers/stages/river-samplers/default.yml deleted file mode 100644 index 73f8afb2..00000000 --- a/biome-providers/stages/river-samplers/default.yml +++ /dev/null @@ -1,55 +0,0 @@ -variables: &variables - riverValue: 1 # Value the sampler outputs where there should be a river. - wetlandValue: -0.4 # Value the sampler outputs for areas bordering rivers, used for wetland biomes. - notRiverValue: -1 # Value the sampler outputs for areas where there is not a river. - - riverFrequency: 1 / ${meta.yml:biome-distribution.river-spread-scale} / ${meta.yml:biome-distribution.global-scale} - riverThreshold: 0.35 # Determines the area calculated as river, which also determines how far from rivers wetlands can be. - riverMaxWidth: 5 * ${meta.yml:biome-distribution.global-scale} # Determines the width of rivers within riverThreshold. - wetlandThreshold: 0.2 # Determines how much area within riverThreshold will be wetlands. - -sampler: - type: EXPRESSION - expression: | - if(|riverNoise((x+riverMaxWidth)*riverFrequency,(z+riverMaxWidth)*riverFrequency)|>riverThreshold,notRiverValue, - if(riverKerneled(x/riverMaxWidth, z/riverMaxWidth)!=0,riverValue,if(wetlandMask(x*riverFrequency,z*riverFrequency)0 - variables: *variables - samplers: - riverNoise: *riverNoise \ No newline at end of file diff --git a/biome-providers/stages/smooth.yml b/biome-providers/stages/smooth.yml deleted file mode 100644 index 669cb622..00000000 --- a/biome-providers/stages/smooth.yml +++ /dev/null @@ -1,4 +0,0 @@ -stages: - - type: SMOOTH - sampler: - type: WHITE_NOISE \ No newline at end of file diff --git a/biomes/README.md b/biomes/README.md index 007e89de..89d195c3 100644 --- a/biomes/README.md +++ b/biomes/README.md @@ -4,20 +4,24 @@ This directory contains all biome configs, which defines all the biomes contained within this pack. It is organized into 4 subdirectories: # Abstract + Contains all abstract biome configs, which provide parameters that are shared between biomes. You can find a more in-depth explanation in the README file contained inside this directory. # Aquatic + Contains all aquatic biome configs, which are further organized into deep ocean, ocean, and river. Within these categories, there are a couple more layers of organization based on the climates the biomes fit into. # Land + Contains all land biome configs. Land biome configs are also grouped similarly to aquatic biome config. # Other + Contains all other biome configs that do not fit into the previous categories. This includes things like mushroom island biomes, and volcanic biomes. diff --git a/biomes/abstract/base.yml b/biomes/abstract/base.yml index 1279a5a9..fa4fec44 100644 --- a/biomes/abstract/base.yml +++ b/biomes/abstract/base.yml @@ -9,15 +9,24 @@ slant-depth: 15 ocean: palette: BLOCK:minecraft:water - level: 62 + level: $meta.yml:ocean-level features: global-preprocessors: - LAVA_FLOOR - UNDERGROUND_LAVA_COLUMNS - CONTAIN_FLOATING_WATER + - CONTAIN_FLOATING_WATER_DEEPSLATE - CAVE_GLOW_LICHEN - TEXTURED_STONE_SLANT + - SPARSE_HORNITOS + - UNDERGROUND_LAVA_LAKES + - CAVE_ENTRANCES + - CAVE_CARVERS underwater-flora: - KELP + - CLINGING_KELP - SEAGRASS + - SPARSE_SEAGRASS + structures: + - MOB_ROOMS \ No newline at end of file diff --git a/biomes/abstract/carving/carving_land.yml b/biomes/abstract/carving/carving_land.yml index 81d9d189..6b46b90a 100644 --- a/biomes/abstract/carving/carving_land.yml +++ b/biomes/abstract/carving/carving_land.yml @@ -6,98 +6,10 @@ carving: sampler: dimensions: 3 type: EXPRESSION + expression: $biomes/abstract/carving/carving_sampler_template.yml:expression + samplers: $biomes/abstract/carving/carving_sampler_template.yml:samplers variables: - - carvingThreshold: 0.55 # Higher = less carving - carvingMinHeight: -63 - carvingMinTaper: 8 - carvingMaxHeight: 140 - carvingMaxTaper: 20 - carvingCap: 1 # Caps the amount of base carving - - cheeseStrength: 0.8 - cheeseHorizontalFrequency: 1.5 - cheeseVerticalFrequency: 3 - cheeseMaxHeight: 90 - cheeseMaxTaper: 40 - - spaghettiStrengthLarge: 0.59 - spaghettiStrengthSmall: 0.57 - - pillarStrength: 0.5 - pillarRadius: 0.02 - - megaCaveStrength: 0.3 - megaCaveSize: 0.3 - - expression: | - -carvingThreshold - + if(ycarvingMaxHeight,0,maskSmooth(maskSmooth( // Skip unnecessary calculations - min(carvingCap, - max( - // Spaghetti Caves - max( - spaghettiStrengthLarge * ((-(|simplex3(x,y+0000,z)|+|simplex3(x,y+1000,z)|)/2)+1), - spaghettiStrengthSmall * ((-(|simplex3(x,y+2000,z)|+|simplex3(x,y+3000,z)|)/2)+1) - ), - - // Cheese caves - if(y>cheeseMaxHeight,0, - maskSmooth( - cheeseStrength * (simplex3( - x * cheeseHorizontalFrequency, - (y + simplex2(x, z) * 5) * cheeseVerticalFrequency, - z * cheeseHorizontalFrequency - )+1)/2 - - // Mega caves - +lerp(megaCaves(x, y, z), 1-megaCaveSize, 0, 1, megaCaveStrength) - - // Pillars - -lerp(cavePillars(x, z),-1+pillarRadius,0,-1,1) * pillarStrength, - - // Cheese clamp parameters - cheeseMaxHeight, cheeseMaxHeight - cheeseMaxTaper, y - ) - ) - ) - ), - // Clamp parameters - carvingMinHeight, carvingMinHeight + carvingMinTaper, y - ), - carvingMaxHeight, carvingMaxHeight - carvingMaxTaper, y - )) - - samplers: - cavePillars: - dimensions: 2 - type: CELLULAR - frequency: 0.05 - - megaCaves: - dimensions: 3 - type: OPEN_SIMPLEX_2 - salt: 777 - frequency: 0.003 - - # Basic 2D simplex noise - simplex2: - dimensions: 2 - type: LINEAR - min: -0.9 - max: 0.9 - sampler: - type: FBM - octaves: 4 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.0075 - - # Basic 3D simplex noise - simplex3: - dimensions: 3 - type: FBM - octaves: 2 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.0075 \ No newline at end of file + "<<": + - biomes/abstract/carving/carving_sampler_template.yml:variables + # Variable Overrides: + carvingMaxMode: 1 # Use land heightmap diff --git a/biomes/abstract/carving/carving_none.yml b/biomes/abstract/carving/carving_none.yml new file mode 100644 index 00000000..d6287b11 --- /dev/null +++ b/biomes/abstract/carving/carving_none.yml @@ -0,0 +1,16 @@ +id: CARVING_NONE +type: BIOME +abstract: true + +carving: + sampler: + dimensions: 3 + type: EXPRESSION + expression: $biomes/abstract/carving/carving_sampler_template.yml:expression + samplers: $biomes/abstract/carving/carving_sampler_template.yml:samplers + variables: + "<<": + - biomes/abstract/carving/carving_sampler_template.yml:variables + # Variable Overrides: + carvingMaxMode: 1 # Use land heightmap + carvingThreshold: 1 \ No newline at end of file diff --git a/biomes/abstract/carving/carving_ocean.yml b/biomes/abstract/carving/carving_ocean.yml index 8572a77e..aa0ab494 100644 --- a/biomes/abstract/carving/carving_ocean.yml +++ b/biomes/abstract/carving/carving_ocean.yml @@ -6,10 +6,12 @@ carving: sampler: dimensions: 3 type: EXPRESSION + expression: $biomes/abstract/carving/carving_sampler_template.yml:expression + samplers: $biomes/abstract/carving/carving_sampler_template.yml:samplers variables: "<<": - - biomes/abstract/carving/carving_land.yml:carving.sampler.variables - carvingMaxHeight: 40 - - expression: $biomes/abstract/carving/carving_land.yml:carving.sampler.expression - samplers: $biomes/abstract/carving/carving_land.yml:carving.sampler.samplers \ No newline at end of file + - biomes/abstract/carving/carving_sampler_template.yml:variables + # Variable Overrides: + carvingMaxMode: 2 # Use ocean heightmap + spaghettiSurfaceBreak: -20 # Make spaghetti caves not break ocean floor + spaghettiSurfaceBreakTaper: 10 diff --git a/biomes/abstract/carving/carving_sampler_template.yml b/biomes/abstract/carving/carving_sampler_template.yml new file mode 100644 index 00000000..699537fe --- /dev/null +++ b/biomes/abstract/carving/carving_sampler_template.yml @@ -0,0 +1,157 @@ +# Template for carving samplers +# This template should be used via metaconfiguration like so: + +# dimensions: 3 +# type: EXPRESSION +# expression: $biomes/abstract/carving/carving_sampler_template.yml:expression +# samplers: $biomes/abstract/carving/carving_sampler_template.yml:samplers +# variables: +# "<<": +# - biomes/abstract/carving/carving_sampler_template.yml:variables +# # Variable Overrides: +# : +# : + +variables: + # These serve as default values that each usage of this template can override for specific adjustments + + carvingThreshold: 0.55 # Higher = less carving + carvingCap: 1 # Caps the amount of base carving + + cheeseStrength: 0.7 # Higher = larger cheese caves + cheeseHorizontalFrequency: 1.5 + cheeseVerticalFrequency: 3 + + # Higher = larger spaghetti caves + spaghettiAStrength: 0.58 + spaghettiBStrength: 0.57 + + # Higher = larger spaghetti caves + noodleAStrength: 0.605 + noodleBStrength: 0.59 + + pillarStrength: 0.5 + pillarRadius: 0.02 + + megaCaveStrength: 0.3 + megaCaveSize: 0.3 + + # Clamping variables + + carvingMinHeight: ${meta.yml:bottom-y} + 1 # Where all carving will cut off at the bottom of the world + carvingMinTaper: 4 # How many blocks above the min height should all carving 'fade out' + + cheeseSurfaceBreak: -20 # How many blocks from the surface cheese carving will stop + cheeseSurfaceBreakTaper: 20 # How many blocks from surface break should cheese carving taper out + + noodleSurfaceBreak: -15 # How many blocks from the surface cheese carving will stop + noodleSurfaceBreakTaper: 15 # How many blocks from surface break should cheese carving taper out + + spaghettiSurfaceBreak: -15 # How many blocks from the surface spaghetti carving will stop + spaghettiSurfaceBreakTaper: 30 # How many blocks from surface break should spaghetti carving taper out + + # carvingMaxMode: !!!Must be set in carving configs that use this template!!! + # - 1 = cap carving by land elevation + # - 2 = cap carving by ocean depth + # - Anything else sets to cap by the constant carvingMaxHeight instead + carvingMaxHeight: -64 + + # Terrain variables for clamping max y, shouldn't be overridden + terrainBase: $customization.yml:terrain-base-y-level + terrainScale: $customization.yml:terrain-height + oceanBase: $customization.yml:terrain-ocean-base-y-level + oceanDepth: $customization.yml:terrain-ocean-depth + +expression: | # If > 0 then carve + -carvingThreshold + + if(y 0.25 + samplers: + noise: + dimensions: 2 + type: CELLULAR + return: Distance2Div + frequency: 0.01 + salt: 1284 + cellLookup: + <<: *cellular + return: NoiseLookup + lookup: + type: EXPRESSION + expression: elevationDetailed(x, z) \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_craters.yml b/biomes/abstract/terrain/land/eq_craters.yml new file mode 100644 index 00000000..7ebca00c --- /dev/null +++ b/biomes/abstract/terrain/land/eq_craters.yml @@ -0,0 +1,90 @@ +id: EQ_CRATERS +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + craterScale: 0.2 + + rimRadius: 0.1 + rimHeight: 0.5 + rimOutsideWidth: 0.05 + + erosionDepth: 0.5 + +cellular: &cellular + type: CELLULAR + distance: Euclidean + frequency: 0.0025 + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: scale * (elevationDetailed(x, z) + craters(x, z) * craterScale) + variables: *variables + samplers: + craters: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 2.5 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.03 + sampler: + type: FBM + octaves: 4 + lacunarity: 1.5 + gain: 0.8 + sampler: + type: EXPRESSION + expression: | + parabolicMap3(cellDist(x, z), + 0, -1 + herp(cellDist(x, z), + rimRadius * 0.2, 0, + rimRadius, erosion(x, z) * erosionDepth + ), + rimRadius, rimHeight, + rimRadius + rimOutsideWidth, 0 + ) + variables: *variables + samplers: + cellDist: + dimensions: 2 + type: PROBABILITY + sampler: + <<: *cellular + erosion: + dimensions: 2 + type: EXPRESSION + expression: | + noise( + cellDist(x, z) * distFrequency + cellValue(x, z) * offsetAmplitude, + sin(cellAngle(x, z)) * angleFrequency + cellValue(x, z) * offsetAmplitude, + cos(cellAngle(x, z)) * angleFrequency + cellValue(x, z) * offsetAmplitude + ) + variables: + distFrequency: 200 + angleFrequency: 300 + offsetAmplitude: 10000 # Translates sample position per cell so the erosion pattern is unique for each cell + samplers: + cellDist: + dimensions: 2 + <<: *cellular + cellAngle: + dimensions: 2 + <<: *cellular + return: Angle + cellValue: + dimensions: 2 + <<: *cellular + return: CellValue + noise: + dimensions: 3 + type: OPEN_SIMPLEX_2 \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_eroded_coast.yml b/biomes/abstract/terrain/land/eq_eroded_coast.yml new file mode 100644 index 00000000..fc013aea --- /dev/null +++ b/biomes/abstract/terrain/land/eq_eroded_coast.yml @@ -0,0 +1,64 @@ +id: EQ_ERODED_COAST +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + erosionBottom: ${customization.yml:terrain-base-y-level} - 15 + bottomVariation: 10 + +terrain: + sampler: + type: EXPRESSION + dimensions: 3 + variables: *variables + expression: | + -y + base + + erode( + erosionBottom + bottom(x, z) * bottomVariation, + base, + elevation(x,z)*(1+variation(x,z)*0.2), + scale, + y, + 1-|erosion(x, z)| + ) + samplers: &samplers + variation: + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.02 + salt: 5 + erosion: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.02 + salt: 2 + bottom: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.008 + salt: 9 + functions: + erode: + arguments: [ bottom, base, height, scale, y, erosion ] + expression: | + -lerp(y, + base+height*scale, 0, + base+height*scale/10, + lerp(y, + base+height*scale/10, erosion * (-y+base+height*scale) * lerp(height, 0.05, 0, 0.3, 4), + bottom, 0 + ) + ) + functions: $math/functions/interpolation.yml:functions + + sampler-2d: + type: EXPRESSION + variables: *variables + samplers: *samplers + expression: elevation(x, z) * scale \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_global_dunes.yml b/biomes/abstract/terrain/land/eq_global_dunes.yml new file mode 100644 index 00000000..b16938f5 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_global_dunes.yml @@ -0,0 +1,97 @@ +id: EQ_GLOBAL_DUNES +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + duneFactor: 0.03 + duneStart: 0 + duneEnd: 0.4 + mountainPeakStart: 0.5 + mountainPeakEnd: 0.8 + mountainPeakFactor: 0.1 + + duneSpacing: 7 # Higher number = more spacing between dunes + duneFrequency: 0.3 # Overall dune frequency + duneRotationRange: pi/3 # How much dune cells are randomly rotated, 0 = anisotrophic, pi = isotrophic + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: | + scale * + combine( + combine( + elevationDetailed(x, z), + mountainPeakStart, 0, + mountainPeakEnd, mountainPeaks(x,z) * mountainPeakFactor + ), + duneStart, dunes(x*duneFrequency,z*duneFrequency) * duneFactor, + duneEnd, 0 + ) + variables: *variables + samplers: + dunes: # Dune height map [0, 1] + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.04 + sampler: + type: DOMAIN_WARP + amplitude: 15 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.02 + salt: 1 + sampler: # Absolute sine wave domain rotated via CELL_VALUE, cell edges are hidden by DISTANCE_2_DIV + type: EXPRESSION + variables: *variables + expression: | + -mask(x, z) * (-|sin(( + x*sin(rotation(x,z)*duneRotationRange) + +z*cos(rotation(x,z)*duneRotationRange))/duneSpacing)|+1) + samplers: + height: &cell + dimensions: 2 + type: CELLULAR + frequency: 0.01 + rotation: + <<: *cell + return: CellValue + mask: + <<: *cell + return: Distance2Div + mountainPeaks: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.03 + salt: 812 + sampler: + type: RIDGED + octaves: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.005 + salt: 7129 + functions: + combine: + arguments: + - x + - at + - a + - bt + - b + expression: x+lerp(x,at,a,bt,b) + functions: $math/functions/interpolation.yml:functions \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_global_eroded.yml b/biomes/abstract/terrain/land/eq_global_eroded.yml new file mode 100644 index 00000000..8891c678 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_global_eroded.yml @@ -0,0 +1,68 @@ +id: EQ_GLOBAL_ERODED +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + pillarHeight: 0.35 + pillarPlatformHeight: 0.05 + pillarWarpStrength: 45 + pillarYMin: 50 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: | + -y + base + + if(ybase+scale,0, // Skip unnecessary calculations + herp(elevation(x, z), + 0.8, 0, + 0.6, scale * max( + // Pillar 'platform' + herp(pillarMask(x, z), + 0.4, 0, + 0.5, pillarPlatformHeight - elevation(x, z) / 2 + ), + + // Pillars + herp(pillarMask( + x+pillarWarp(x,y/2,z)*pillarWarpStrength, + z+pillarWarp(x,y/2,z+1000)*pillarWarpStrength), + 0.5, 0, + 0.7, pillarHeight + ) + ) + ) + ) + samplers: + pillarMask: + dimensions: 2 + type: EXPRESSION + expression: (-noise(x, z)+1)/2 + samplers: + noise: + dimensions: 2 + type: RIDGED + gain: 0.7 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.0025 + pillarWarp: + dimensions: 3 + type: FBM + octaves: 3 + lacunarity: 2.2 + gain: 0.4 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: scale * elevationDetailed(x, z) diff --git a/biomes/abstract/terrain/land/eq_global_eroded_pillars.yml b/biomes/abstract/terrain/land/eq_global_eroded_pillars.yml new file mode 100644 index 00000000..f5e55f78 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_global_eroded_pillars.yml @@ -0,0 +1,76 @@ +id: EQ_GLOBAL_ERODED_PILLARS +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + pillarHeight: 80 + pillarPlatformHeight: 20 + pillarHeightVariation: 20 + pillarWarpStrength: 15 + pillarErosionStrength: 2.1 + pillarErosionTop: 150 + pillarErosionBottom: 80 + pillarYMin: 50 # Pillars are only evaluated above this y level for performance + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: | + -y + base + + if(ybase+scale+pillarHeight+pillarHeightVariation,0, // Skip unnecessary calculations + max( + // Pillar 'platform' + maskSmooth( + pillarPlatformHeight, + -0.2, 1, pillarMask(x, z) + ), + // Pillars + maskSmooth( + // Pillar height + pillarHeight + (pillarVariation(x, z)+1)/2 * pillarHeightVariation + // Erode + - lerp(y, + pillarErosionTop, 0, + pillarErosionBottom, pillarErosionStrength * lerp(|pillarErosion(x,y,z)|,0,1,0.25,0) * (-y+pillarErosionTop) + ), + // Mask parameters + 0.45, 0.75, pillarMask( + x+pillarWarp(x,y/2,z)*pillarWarpStrength, + z+pillarWarp(x,y/2,z+1000)*pillarWarpStrength + ) + ) + ) + ) + samplers: + pillarMask: # Determines where pillars will go, only higher end values will be turned into pillars + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.015 + pillarVariation: # Varies heights of pillars + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 1 + pillarErosion: # Subtracts from pillars to emulate erosion + dimensions: 3 + type: OPEN_SIMPLEX_2 + frequency: 0.03 + salt: 2 + pillarWarp: # Domain warps pillars such that the surface is rugged + dimensions: 3 + type: FBM + octaves: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.02 + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: scale * elevationDetailed(x, z) \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_global_river.yml b/biomes/abstract/terrain/land/eq_global_river.yml new file mode 100644 index 00000000..873810f8 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_global_river.yml @@ -0,0 +1,76 @@ +id: EQ_GLOBAL_RIVER +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + depth: 0.11 + ceilingBase: 0.1 + ceilingHeight: 0.17 + +terrain: + sampler: + type: EXPRESSION + dimensions: 3 + variables: *variables + expression: | + -y + base - + erode( + base, + elevation(x, z), + scale, + (y - base) / scale, + depth, + ceilingBase, + ceilingHeight, + ceilingSpikes(x, z) * -0.1, + herp(openings(x, z), 0.3, 0, 0.6, 1) + ) * (1 + erosionStrengthVariation(x/3, y, z/3)^2) + samplers: + erosionStrengthVariation: # Used to roughen up the walls + dimensions: 3 + type: FBM + octaves: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.03 + salt: 5 + openings: + dimensions: 2 + type: EXPRESSION_NORMALIZER + expression: "|in|" + sampler: + type: OPEN_SIMPLEX_2 + frequency: 1 / 1000 + salt: 9 + ceilingSpikes: + dimensions: 2 + type: CUBIC_SPLINE + points: + - { from: -1, to: 1, gradient: -2 } + - { from: -0.2, to: 0, gradient: 0 } + sampler: + type: CELLULAR + distance: Euclidean + frequency: 0.06 + functions: + erode: + arguments: [ base, elevation, scale, y, depth, ceilingBase, ceilingHeight, ceilingOffset, ceilingOpenings ] + expression: | + herp(y, + -depth, 0, + 0, herp(y - ceilingOffset - herp(elevation, 0.4, ceilingOpenings, 0.6, 0), + ceilingBase, -y+base+elevation*scale, + ceilingBase + ceilingHeight, 0 + ) + ) + functions: + "<<": + - math/functions/interpolation.yml:functions + + sampler-2d: + type: EXPRESSION + expression: scale * elevationDetailed(x, z) + variables: *variables \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_land.yml b/biomes/abstract/terrain/land/eq_land.yml new file mode 100644 index 00000000..9564466f --- /dev/null +++ b/biomes/abstract/terrain/land/eq_land.yml @@ -0,0 +1,32 @@ +id: EQ_LAND +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + lerp(overhangsMask(x, y, z), 0, 0, 1, overhangs(x, y*3, z) * 20) + variables: *variables + samplers: + overhangsMask: + dimensions: 3 + type: OPEN_SIMPLEX_2 + frequency: 0.002 + salt: 8481 + overhangs: + dimensions: 3 + type: FBM + octaves: 3 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 4957 + + sampler-2d: + type: EXPRESSION + expression: scale * elevationDetailed(x, z) + variables: *variables diff --git a/biomes/abstract/terrain/land/eq_land_glacier.yml b/biomes/abstract/terrain/land/eq_land_glacier.yml new file mode 100644 index 00000000..bc8f30e7 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_land_glacier.yml @@ -0,0 +1,75 @@ +id: EQ_LAND_GLACIER +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + overhangStrength: 15 + +cell-base: &cellBase + dimensions: 2 + type: CELLULAR + frequency: 0.012 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: -y + base + overhangs(x, y*3, z) * overhangStrength + samplers: + overhangs: + dimensions: 3 + type: FBM + octaves: 3 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 4957 + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: | + scale * herp(cellDistance(x, z) + lerp(cellMask(x, z), 0.7, 0, 1, 1), + -0.2, elevationWarped(x, z), + -0.75, cellLookup(x, z)+0.02 + ) + samplers: + elevationWarped: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: FBM + sampler: + type: OPEN_SIMPLEX_2 + salt: 62098 + sampler: + type: EXPRESSION + expression: elevation(x, z) + cellMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.005 + cellLookup: + <<: *cellBase + return: NoiseLookup + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + cellDistance: + dimensions: 2 + type: FBM + octaves: 4 + lacunarity: 2.4 + gain: 0.4 + sampler: + <<: *cellBase + return: Distance2Div \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_land_shore_bumpy.yml b/biomes/abstract/terrain/land/eq_land_shore_bumpy.yml new file mode 100644 index 00000000..70080a5d --- /dev/null +++ b/biomes/abstract/terrain/land/eq_land_shore_bumpy.yml @@ -0,0 +1,18 @@ +id: EQ_LAND_SHORE_BUMPY +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + simplex(x*20, z*20) + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: scale * elevationDetailed(x, z) + variables: *variables \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_multi_terraced_land.yml b/biomes/abstract/terrain/land/eq_multi_terraced_land.yml new file mode 100644 index 00000000..09db5362 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_multi_terraced_land.yml @@ -0,0 +1,123 @@ +id: EQ_MULTI_TERRACED_LAND +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + detailFactor: 0.05 + detailZero: 0 + detailFull: 0.2 + + terraceDepth: 1 + terraceZero: 0.1 + terraceFull: 0.2 + terraceVariationBase: 0.8 + terraceVariationScaled: 0.25 + terraceScale: 0.12 + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: | + scale * triTerrace( + combine( + elevation(x, z), + detailZero, 0, + detailFull, detail(x, z) * detailFactor + ), + terraceDepth, terraceZero, terraceFull, + terraceScale*1/3, terraceVariation(x, z+1000)*(terraceVariationBase+terraceVariationScaled*0), + terraceScale*2/3, terraceVariation(x, z+2000)*(terraceVariationBase+terraceVariationScaled*1), + terraceScale*3/3, terraceVariation(x, z+3000)*(terraceVariationBase+terraceVariationScaled*2) + ) + variables: *variables + samplers: + detail: # Creates bubbly looking terrain + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.02 + salt: 4219 + sampler: + type: PROBABILITY + sampler: + type: LINEAR + min: 0.2 + max: -1 + sampler: + type: CELLULAR + frequency: 0.07 + terraceVariation: + dimensions: 2 + type: FBM + octaves: 3 + lacunarity: 2.5 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.0015 + functions: + combine: + arguments: + - x + - at + - a + - bt + - b + expression: x+lerp(x,at,a,bt,b) + functions: $math/functions/interpolation.yml:functions + + triTerrace: # This is a terrible function that exists to avoid duplicate calculations of the 'in' value. + # Allows terrace depth to be controlled according to the value it terraces. + arguments: + - in + - depth + - depthLerpZero # Value of 'in' where terrace depth should be 0 + - depthLerpFull # Value of 'in' where terrace depth should be depth + - scale1 + - offset1 + - scale2 + - offset2 + - scale3 + - offset3 + expression: | + triTerraceWithLerpedDepth( + in, + lerp(in, depthLerpZero, 0, depthLerpFull, depth), + scale1, offset1, + scale2, offset2, + scale3, offset3 + ) + functions: + "<<": + math/functions/interpolation.yml:functions + triTerraceWithLerpedDepth: + arguments: + - in + - depth + - scale1 + - offset1 + - scale2 + - offset2 + - scale3 + - offset3 + expression: | + terraceParalinear( + terraceParalinear( + terraceParalinear( + in, + scale1, offset1, 0, depth + ), + scale2, offset2, 0, depth + ), + scale3, offset3, 0, depth + ) + functions: $math/functions/terrace.yml:functions diff --git a/biomes/abstract/terrain/land/eq_overhangs.yml b/biomes/abstract/terrain/land/eq_overhangs.yml new file mode 100644 index 00000000..3db1cd32 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_overhangs.yml @@ -0,0 +1,29 @@ +id: EQ_OVERHANGS +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + overhangStrength: 20 + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + overhangs(x, y*3, z) * overhangStrength + variables: *variables + samplers: + overhangs: + dimensions: 3 + type: FBM + octaves: 3 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 4957 + + sampler-2d: + type: EXPRESSION + expression: scale * elevationDetailed(x, z) + variables: *variables \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_overpass.yml b/biomes/abstract/terrain/land/eq_overpass.yml new file mode 100644 index 00000000..3c66b786 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_overpass.yml @@ -0,0 +1,80 @@ +id: EQ_OVERPASS +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + depth: 0 + depthVariation: 20 + +terrain: + sampler: + type: EXPRESSION + dimensions: 3 + variables: *variables + expression: | + -y + base + + erode( + depth - depthVariationNoise(x, z) * depthVariation, + base, + elevation(x,z) * lerp(openings(x, z), 0.3, 1, 0.7, 1.2), + scale, + y, + 1 - lerp(openings(x, z), 0.6, 1, 0.8, 0) * lerp(erosion(x, z), 0.7, 0, 0.8, 1) + ) + samplers: &samplers + openings: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 20 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.006 + salt: 4329 + sampler: + type: EXPRESSION_NORMALIZER + expression: -in + sampler: + type: CELLULAR + return: Distance2Div + frequency: 0.006 + salt: 6432 + erosion: + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.015 + salt: 8522 + depthVariationNoise: + dimensions: 2 + type: PROBABILITY + sampler: + type: FBM + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.008 + salt: 9 + functions: + erode: + arguments: [ depth, base, height, scale, y, erosion ] + expression: | + -lerp3(y, + base+height*scale, 0, + weightedAvg(base+height*scale, 1, base-depth, 2), erosion * (-y+base+height*scale) * lerp(height, 0.1, 0, 0.3, 4), + base-depth, 0 + ) + functions: + "<<": [ math/functions/interpolation.yml:functions ] + weightedAvg: + arguments: + - a + - aw + - b + - bw + expression: (a*aw + b*bw)/(aw + bw) + + sampler-2d: + type: EXPRESSION + variables: *variables + samplers: *samplers + expression: elevationDetailed(x, z) * scale \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_rocky.yml b/biomes/abstract/terrain/land/eq_rocky.yml new file mode 100644 index 00000000..2aad5243 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_rocky.yml @@ -0,0 +1,64 @@ +id: EQ_ROCKY +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + +cell-base: &cellBase + dimensions: 2 + type: CELLULAR + frequency: 0.012 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: -y + base + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: | + scale * herp(cellDistance(x, z) + lerp(cellMask(x, z), 0.7, 0, 1, 1), + -0.2, elevationWarped(x, z), + -0.75, cellLookup(x, z)+0.02 + ) + samplers: + elevationWarped: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: FBM + sampler: + type: OPEN_SIMPLEX_2 + salt: 62098 + sampler: + type: EXPRESSION + expression: elevation(x, z) + cellMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.005 + cellLookup: + <<: *cellBase + return: NoiseLookup + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + cellDistance: + dimensions: 2 + type: FBM + octaves: 4 + lacunarity: 2.4 + gain: 0.4 + sampler: + <<: *cellBase + return: Distance2Div \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_rocky_buttes.yml b/biomes/abstract/terrain/land/eq_rocky_buttes.yml new file mode 100644 index 00000000..dbb16299 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_rocky_buttes.yml @@ -0,0 +1,112 @@ +id: EQ_ROCKY_BUTTES +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + terraceHeight: 0.13 + terraceHeightVariation: 0 + + depositMaskLowerBound: 0.7 + depositMaskUpperBound: 1 + depositTerraceHeight: 0.015 + + butteHeight: 0.45 + butteBase: 0.12 + butteMaskFrequency: 1 + butteMaskLowerBound: 0.75 + butteMaskUpperBound: 0.85 + +cell-base: &cellBase + dimensions: 2 + type: CELLULAR + frequency: 0.012 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: -y + base + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: | + scale * ( + herp(cellDistance(x, z) + lerp(cellMask(x, z), 0.7, 0, 1, 1), + -0.2, elevation(x, z), + -0.75, cellLookup(x, z)+0.02 + ) + + max( + terraceStrata( + herp(|butteMask(x*butteMaskFrequency, z*butteMaskFrequency)|, + depositMaskLowerBound, 0, + depositMaskUpperBound, butteBase + ), + depositTerraceHeight, 0, 0, lerp(simplex(x*3,z*3),0.2,0,0.3,0.5) + ), + terraceStrata( + herp(|butteMask(x*butteMaskFrequency, z*butteMaskFrequency)|, + butteMaskLowerBound, 0, + butteMaskUpperBound, (buttes(x, z)+1)/2 * butteHeight + ), + terraceHeight, terraceVariation(x, z) * terraceHeightVariation, 0, 0.5 + ) + ) + ) + + + samplers: + terraceVariation: + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.001 + butteMask: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 2 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.03 + salt: 6 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.003 + salt: 5 + buttes: + dimensions: 2 + type: FBM + octaves: 3 + sampler: + type: LINEAR + min: -1 + max: -0.2 + sampler: + type: CELLULAR + frequency: 0.02 + cellMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.005 + cellLookup: + <<: *cellBase + return: NoiseLookup + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + cellDistance: + dimensions: 2 + type: FBM + octaves: 4 + lacunarity: 2.4 + gain: 0.4 + sampler: + <<: *cellBase + return: Distance2Div \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_rocky_overhangs.yml b/biomes/abstract/terrain/land/eq_rocky_overhangs.yml new file mode 100644 index 00000000..fee19e6b --- /dev/null +++ b/biomes/abstract/terrain/land/eq_rocky_overhangs.yml @@ -0,0 +1,75 @@ +id: EQ_ROCKY_OVERHANGS +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + overhangStrength: 10 + +cell-base: &cellBase + dimensions: 2 + type: CELLULAR + frequency: 0.012 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: -y + base + overhangs(x, y*3, z) * overhangStrength + samplers: + overhangs: + dimensions: 3 + type: FBM + octaves: 3 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 4957 + + sampler-2d: + dimensions: 2 + type: EXPRESSION + variables: *variables + expression: | + scale * herp(cellDistance(x, z) + lerp(cellMask(x, z), 0.7, 0, 1, 1), + -0.2, elevationWarped(x, z), + -0.75, cellLookup(x, z)+0.02 + ) + samplers: + elevationWarped: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 5 + warp: + type: FBM + sampler: + type: OPEN_SIMPLEX_2 + salt: 62098 + sampler: + type: EXPRESSION + expression: elevation(x, z) + cellMask: + dimensions: 2 + type: PROBABILITY + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.005 + cellLookup: + <<: *cellBase + return: NoiseLookup + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + cellDistance: + dimensions: 2 + type: FBM + octaves: 4 + lacunarity: 2.4 + gain: 0.4 + sampler: + <<: *cellBase + return: Distance2Div \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_spikes.yml b/biomes/abstract/terrain/land/eq_spikes.yml new file mode 100644 index 00000000..a98764af --- /dev/null +++ b/biomes/abstract/terrain/land/eq_spikes.yml @@ -0,0 +1,99 @@ +id: EQ_SPIKES +type: BIOME +abstract: true + +variables: &variables + # Terms: + # - Big spikes - Largest spikes protruding from ground + # - Little spikes - Smaller ancillary spikes surrounding bigger spikes + # - Platform - Slab of terrain surrounding the large & little spikes + + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + spikeSlantStrength: 1 + spikeCap: 0.7 # Cuts off the tips of spikes to mitigate floating terrain, 1 = no cap + + bigSpikeHeight: 0.35 + bigSpikeMaskNone: 0.65 + bigSpikeMaskFull: 1 + + littleSpikeHeight: 0.17 + littleSpikeMaskNone: 0.4 + littleSpikeMaskFull: 0.8 + + platformHeight: 0.04 + platformMaskNone: 0.3 + platformMaskFull: 0.35 + + elevationCutoff: 0.9 + +terrain: + sampler: + dimensions: 3 + type: EXPRESSION + variables: *variables + expression: | + -y + base + + scale * spikes( + x+y*spikeSlantStrength*spikeDirection(x, z), + z+y*spikeSlantStrength*spikeDirection(x, z+1000) + ) + * herp(elevation(x, z), 0, 1, elevationCutoff, 0) + samplers: + spikeDirection: # Determines the direction large spikes slant towards + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.0005 + spikes: # Height map for spikes + dimensions: 2 + type: EXPRESSION + expression: | + max( + maskSmooth( + bigSpikeHeight * min(spikeCap,(-spike(x, z))^2), + bigSpikeMaskNone, bigSpikeMaskFull, mask(x, z) + ) + + maskSmooth( + littleSpikeHeight * min(spikeCap,(-spike(x*2, z*2))^2), + littleSpikeMaskNone, littleSpikeMaskFull, mask(x, z) + ), + maskSmooth( + platformHeight * (platform(x, z)+1)/2, + platformMaskNone, platformMaskFull, mask(x, z) + ) + ) + variables: *variables + samplers: + mask: # Masks the spikes so they only appear in patches + dimensions: 2 + type: PROBABILITY + sampler: + type: FBM + octaves: 2 + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.006 + spike: # Height map for big & little spikes + dimensions: 2 + type: LINEAR + min: -1 + max: 0.2 + sampler: + type: CELLULAR + frequency: 0.03 + salt: 1 + platform: # Height map for platform + dimensions: 2 + type: LINEAR + min: -1 + max: 0.2 + sampler: + type: CELLULAR + return: CellValue + frequency: 0.035 + salt: 2 + sampler-2d: + type: EXPRESSION + expression: scale * elevationDetailed(x, z) + variables: *variables \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_stratified_land.yml b/biomes/abstract/terrain/land/eq_stratified_land.yml new file mode 100644 index 00000000..cdb22cb1 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_stratified_land.yml @@ -0,0 +1,38 @@ +id: EQ_STRATIFIED_LAND +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + 10 + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: | + terraceStrata( + terraceStrata( + terraceStrata( + heightmap(x, z) * scale + ,50, 0, 0, 0.1) + ,30, 0, 0, 0.15) + ,15, 0, 0, 0.2) + variables: *variables + samplers: + heightmap: + dimensions: 2 + type: DOMAIN_WARP + amplitude: 10 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.03 + salt: 4912 + sampler: + type: EXPRESSION + expression: elevation(x, z) \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_swamp.yml b/biomes/abstract/terrain/land/eq_swamp.yml new file mode 100644 index 00000000..bfb1aff5 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_swamp.yml @@ -0,0 +1,64 @@ +id: EQ_SWAMP +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: DOMAIN_WARP + amplitude: 4 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.06 + sampler: + type: EXPRESSION + expression: | + scale * max(cell1(x, z), cell2(x, z)) - 5 + variables: *variables + samplers: + cell1: + dimensions: 2 + type: EXPRESSION + expression: lerp(-distance2div(x, z), 0.2, elevation(x, z), 0.4, lookup(x, z)) + samplers: + lookup: + dimensions: 2 + type: CELLULAR + return: NoiseLookup + frequency: 0.06 + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + distance2div: + dimensions: 2 + type: CELLULAR + return: Distance2Div + frequency: 0.03 + cell2: # Identical to cell1, except with smaller cells + dimensions: 2 + type: EXPRESSION + expression: lerp(-distance2div(x, z), 0.2, elevation(x, z), 0.4, lookup(x, z)) + samplers: + lookup: + dimensions: 2 + type: CELLULAR + return: NoiseLookup + frequency: 0.09 + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + distance2div: + dimensions: 2 + type: CELLULAR + return: Distance2Div + frequency: 0.06 \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_terraced_land.yml b/biomes/abstract/terrain/land/eq_terraced_land.yml new file mode 100644 index 00000000..783a08ad --- /dev/null +++ b/biomes/abstract/terrain/land/eq_terraced_land.yml @@ -0,0 +1,39 @@ +id: EQ_TERRACED_LAND +type: BIOME +abstract: true + +variables: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + + terraceScale: 40 + terraceOffsetVariation: 5 + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: EXPRESSION + expression: | + terraceParalinear( + elevation(x, z) * scale, + terraceScale, 0.01, 0, 1 + ) + + terraceOffset(x, z) * terraceOffsetVariation + variables: *variables + samplers: + terraceOffset: + dimensions: 2 + type: FBM + sampler: + type: OPEN_SIMPLEX_2 + frequency: 0.01 + salt: 12832 + terraceScale: + dimensions: 2 + type: OPEN_SIMPLEX_2 + frequency: 0.002 + salt: 51923 \ No newline at end of file diff --git a/biomes/abstract/terrain/land/eq_travertine_terraces.yml b/biomes/abstract/terrain/land/eq_travertine_terraces.yml new file mode 100644 index 00000000..6e3f1426 --- /dev/null +++ b/biomes/abstract/terrain/land/eq_travertine_terraces.yml @@ -0,0 +1,64 @@ +id: EQ_TRAVERTINE_TERRACES +type: BIOME +abstract: true + +vars: &variables + base: $customization.yml:terrain-base-y-level + scale: $customization.yml:terrain-height + +terrain: + sampler: + type: EXPRESSION + expression: -y + base + variables: *variables + + sampler-2d: + type: DOMAIN_WARP + amplitude: 4 + warp: + type: OPEN_SIMPLEX_2 + frequency: 0.06 + sampler: + type: EXPRESSION + expression: | + scale * max(cell1(x, z), cell2(x, z)) - 5 + variables: *variables + samplers: + cell1: + dimensions: 2 + type: EXPRESSION + expression: lerp(-distance2div(x, z), 0.2, elevation(x, z), 0.4, lookup(x, z)) + samplers: + lookup: + dimensions: 2 + type: CELLULAR + return: NoiseLookup + frequency: 0.03 + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + distance2div: + dimensions: 2 + type: CELLULAR + return: Distance2Div + frequency: 0.03 + cell2: # Identical to cell1, except with smaller cells + dimensions: 2 + type: EXPRESSION + expression: lerp(-distance2div(x, z), 0.2, elevation(x, z), 0.4, lookup(x, z)) + samplers: + lookup: + dimensions: 2 + type: CELLULAR + return: NoiseLookup + frequency: 0.06 + salt-lookup: false + lookup: + type: EXPRESSION + expression: elevation(x, z) + distance2div: + dimensions: 2 + type: CELLULAR + return: Distance2Div + frequency: 0.06 diff --git a/biomes/abstract/terrain/land/flat/eq_desert.yml b/biomes/abstract/terrain/land/flat/eq_desert.yml deleted file mode 100644 index 550668bf..00000000 --- a/biomes/abstract/terrain/land/flat/eq_desert.yml +++ /dev/null @@ -1,76 +0,0 @@ -id: EQ_DESERT -type: BIOME -abstract: true - -# Flat low elevation desert terrain - -vars: &variables - base: 64 # Base terrain y level - groundHeight: 5 # Block height of base noise - - duneHeight: 10 # Block height of dunes - duneSpacing: 20 # Higher number = more spacing between dunes - duneFrequency: 0.7 # Overall dune frequency - duneRotationRange: pi/3 # How much dune cells are randomly rotated, 0 = anisotrophic, pi = isotrophic - -terrain: - sampler: - dimensions: 3 - type: EXPRESSION - variables: *variables - expression: -y + base - - sampler-2d: - dimensions: 2 - type: EXPRESSION - variables: *variables - expression: | - duneHeight * dunes(x*duneFrequency, z*duneFrequency) * ((duneHeightVariation(x,z)/4)+0.75) - + groundHeight * (ground(x, z)+1)/2 - samplers: - duneHeightVariation: - dimensions: 2 - type: FBM - octaves: 2 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.02 - dunes: # Dune height map [0, 1] - dimensions: 2 - type: DOMAIN_WARP - amplitude: 5 - warp: - type: OPEN_SIMPLEX_2 - frequency: 0.04 - sampler: - type: DOMAIN_WARP - amplitude: 15 - warp: - type: OPEN_SIMPLEX_2 - frequency: 0.02 - salt: 1 - sampler: # Absolute sine wave domain rotated via CELL_VALUE, cell edges are hidden by DISTANCE_2_DIV - type: EXPRESSION - variables: *variables - expression: | - -mask(x, z) * (-|sin(( - x*sin(rotation(x,z)*duneRotationRange) - +z*cos(rotation(x,z)*duneRotationRange))/duneSpacing)|+1) - samplers: - height: &cell - dimensions: 2 - type: CELLULAR - frequency: 0.01 - rotation: - <<: *cell - return: CellValue - mask: - <<: *cell - return: Distance2Div - - ground: - dimensions: 2 - type: FBM - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.005 \ No newline at end of file diff --git a/biomes/abstract/terrain/land/flat/eq_flat_eroded.yml b/biomes/abstract/terrain/land/flat/eq_flat_eroded.yml deleted file mode 100644 index 9c856686..00000000 --- a/biomes/abstract/terrain/land/flat/eq_flat_eroded.yml +++ /dev/null @@ -1,37 +0,0 @@ -id: EQ_FLAT_ERODED -type: BIOME -abstract: true - -# Flat terrain that also erodes surrounding terrain. - -terrain: - sampler: - type: MUL - left: - type: EXPRESSION - variables: - erosion: 100 # Strength of erosion - erosionYMax: 130 # The height that erosion is capped by - erosionYMid: 75 # The height that erosion is strongest - erosionYMin: 66 # The height that erosion starts - expression: | - noise(x,y,z) - // Erode - -|erosion(x,y/3,z)| - * erosion - * max(0, min((y-erosionYMin)/(erosionYMid-erosionYMin),(y-erosionYMax)/(erosionYMid-erosionYMax))) - samplers: - erosion: - dimensions: 3 - type: OPEN_SIMPLEX_2 - frequency: 0.03 - noise: $biomes/abstract/terrain/land/flat/eq_flat.yml:terrain.sampler - right: - type: CONSTANT - value: 5 - sampler-2d: - type: MUL - left: $biomes/abstract/terrain/land/flat/eq_flat.yml:terrain.sampler-2d - right: - type: CONSTANT - value: 5 diff --git a/biomes/abstract/terrain/land/flat/eq_plain.yml b/biomes/abstract/terrain/land/flat/eq_plain.yml deleted file mode 100644 index 7fe0bf6d..00000000 --- a/biomes/abstract/terrain/land/flat/eq_plain.yml +++ /dev/null @@ -1,22 +0,0 @@ -id: EQ_PLAIN -type: BIOME -abstract: true - -# Basic relatively flat terrain. - -vars: &variables - base: 64 - height: 10 - -terrain: - sampler: - type: EXPRESSION - dimensions: 3 - variables: *variables - expression: -y + base - - sampler-2d: - dimensions: 2 - type: EXPRESSION - variables: *variables - expression: (simplex(x, z)+1)/2 * height \ No newline at end of file diff --git a/biomes/abstract/terrain/land/flat/eq_ponds.yml b/biomes/abstract/terrain/land/flat/eq_ponds.yml deleted file mode 100644 index e9901315..00000000 --- a/biomes/abstract/terrain/land/flat/eq_ponds.yml +++ /dev/null @@ -1,64 +0,0 @@ -id: EQ_PONDS -type: BIOME -abstract: true - -# Basic relatively flat terrain. - -vars: &variables - base: 64 - height: 10 - cellHeight: 3 - cellClampFalloff: 5 - cellThreshold: 0 - cellClampOrigin: 0.85 - sideMultiplier: 3 - -terrain: - sampler: - type: EXPRESSION - dimensions: 3 - variables: *variables - expression: -y + base - - sampler-2d: - dimensions: 2 - type: EXPRESSION - variables: *variables - expression: (cells(x, z)+1)/2 * height - samplers: - cells: - dimensions: 2 - type: DOMAIN_WARP - amplitude: 2 - warp: - type: OPEN_SIMPLEX_2 - frequency: 0.1 - sampler: - type: EXPRESSION - expression: "if( - simplex_mask(x, z) > cellThreshold, - max( - if(cellular_distance(x, z) > -cellClampOrigin, - (-cellClampOrigin - (cellular_distance(x, z))) * sideMultiplier, - 0 - ) + cellular(x, z) * cellHeight, - 0), - simplex(x, z))" - variables: *variables - samplers: - simplex_mask: &simplex - dimensions: 2 - type: FBM - octaves: 2 - sampler: - type: OPEN_SIMPLEX_2 - frequency: 0.025 - cellular: &cells - frequency: 0.075 - dimensions: 2 - type: CELLULAR - return: NoiseLookup - lookup: *simplex - cellular_distance: - <<: *cells - return: Distance \ No newline at end of file diff --git a/biomes/abstract/terrain/land/flat/eq_swamp.yml b/biomes/abstract/terrain/land/flat/eq_swamp.yml deleted file mode 100644 index cfc06107..00000000 --- a/biomes/abstract/terrain/land/flat/eq_swamp.yml +++ /dev/null @@ -1,49 +0,0 @@ -id: EQ_SWAMP -type: BIOME -abstract: true -extends: NO_TERRAIN_2D - -vars: &variables - base: 64 - height: 10 - pond_chance: -0.5 - pond_depth: 0.25 - -terrain: - sampler: - type: EXPRESSION - dimensions: 3 - variables: *variables - expression: -y + base - - sampler-2d: - dimensions: 2 - type: EXPRESSION - variables: *variables - expression: (cells(x, z)+1)/2 * height - samplers: - cells: - dimensions: 2 - type: DOMAIN_WARP - amplitude: 2 - warp: - type: OPEN_SIMPLEX_2 - frequency: 0.1 - sampler: - type: EXPRESSION - expression: "if(cellular_random(x, z) > pond_chance, - simplex(x, z), - cellular(x, z) - pond_depth - )" - variables: *variables - samplers: - cellular: &cells - frequency: 0.075 - dimensions: 2 - type: CELLULAR - return: NoiseLookup - lookup: $math/samplers/simplex.yml:samplers.simplex - cellular_random: - <<: *cells - return: CellValue - simplex: $math/samplers/simplex.yml:samplers.simplex \ No newline at end of file diff --git a/biomes/abstract/terrain/land/hills-large/eq_buttes_archipelago.yml b/biomes/abstract/terrain/land/hills-large/eq_buttes_archipelago.yml deleted file mode 100644 index 49707e45..00000000 --- a/biomes/abstract/terrain/land/hills-large/eq_buttes_archipelago.yml +++ /dev/null @@ -1,34 +0,0 @@ -id: EQ_BUTTES_ARCHIPELAGO -type: BIOME -abstract: true - -# Shallow waters spotted with small terraced islands. -# Uses EQ_BUTTES as a template, with just the variables tweaked. - -vars: &variables - "<<": # Inject template variables - - biomes/abstract/terrain/land/hills-small/eq_buttes.yml:vars - base: 45 - groundHeight: 30 - groundFrequency: 1 - terraceHeight: 12 - terraceHeightVariation: 8 - butteHeight: 32 - butteBase: 15 - butteMaskFrequency: 1.8 - butteMaskLowerBound: 0.8 - butteMaskUpperBound: 1 - -# Grab samplers from template and inject variables -terrain: - sampler: - dimensions: 3 - type: EXPRESSION - variables: *variables - expression: $biomes/abstract/terrain/land/hills-small/eq_buttes.yml:terrain.sampler.expression - sampler-2d: - dimensions: 2 - type: EXPRESSION - variables: *variables - expression: $biomes/abstract/terrain/land/hills-small/eq_buttes.yml:terrain.sampler-2d.expression - samplers: $biomes/abstract/terrain/land/hills-small/eq_buttes.yml:terrain.sampler-2d.samplers \ No newline at end of file diff --git a/biomes/abstract/terrain/land/hills-large/eq_spikes.yml b/biomes/abstract/terrain/land/hills-large/eq_spikes.yml deleted file mode 100644 index f480a41d..00000000 --- a/biomes/abstract/terrain/land/hills-large/eq_spikes.yml +++ /dev/null @@ -1,124 +0,0 @@ -id: EQ_SPIKES -type: BIOME -abstract: true -extends: NO_TERRAIN_2D - -# Relatively flat terrain with small lakes, populated by large protruding spikes. - -vars: &variables - # Terms: - # - Ground - The basic terrain sans spikes - # - Big spikes - Largest spikes protruding from ground - # - Little spikes - Smaller ancillary spikes surrounding bigger spikes - # - Platform - Slab of terrain surrounding the large & little spikes - # - Baby spikes - Tiny spikes as a part of the ground terrain - - base: 64 # Base y level - groundHeight: 50 # Block height of ground terrain - babySpikeHeight: 20 # Block height of small ground spikes - - spikeSlantStrength: 1 - spikeCap: 0.7 # Cuts off the tips of spikes to mitigate floating terrain, 1 = no cap - - bigSpikeHeight: 70 - bigSpikeMaskNone: 0.5 - bigSpikeMaskFull: 1 - - littleSpikeHeight: 40 - littleSpikeMaskNone: 0.1 - littleSpikeMaskFull: 1 - - platformHeight: 10 - platformMaskNone: 0 - platformMaskFull: 0.1 - -terrain: - sampler: - dimensions: 3 - type: EXPRESSION - variables: *variables - expression: | - -y + base - + if(y