# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Zadeon <loldude9000@gmail.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Large asteroids, typically 1
- type: dungeonConfig
  id: BlobAsteroid
  # Floor generation
  layers:
  - !type:NoiseDunGen
    tileCap: 1000
    capStd: 32
    iterations: 3
    layers:
      - tile: FloorAsteroidSand
        threshold: 0.30
        noise:
          frequency: 0.020
          noiseType: OpenSimplex2
          fractalType: FBm
          octaves: 2
          lacunarity: 2

  # Generate biome
  - !type:BiomeDunGen
    biomeTemplate: Asteroid
  - !type:OreDunGen
    replacement: AsteroidRock
    entity: AsteroidRockGibtonite
    count: 8
    minGroupSize: 0
    maxGroupSize: 1

# Multiple smaller asteroids
# This is a pain so we generate fewer tiles
- type: dungeonConfig
  id: ClusterAsteroid
  # Floor generation
  layers:
  - !type:NoiseDunGen
    tileCap: 750
    capStd: 32
    layers:
      - tile: FloorAsteroidSand
        threshold: 0.10
        noise:
          frequency: 0.130
          noiseType: OpenSimplex2
          fractalType: FBm
          octaves: 2
          lacunarity: 2

  # Generate biome
  - !type:BiomeDunGen
    biomeTemplate: Asteroid
  - !type:OreDunGen
    replacement: AsteroidRock
    entity: AsteroidRockGibtonite
    count: 8
    minGroupSize: 0
    maxGroupSize: 1

# Long and spindly, less smooth than blob
- type: dungeonConfig
  id: SpindlyAsteroid
  # Floor generation
  layers:
  - !type:NoiseDunGen
    tileCap: 1000
    capStd: 32
    layers:
      - tile: FloorAsteroidSand
        threshold: -0.50
        noise:
          frequency: 0.055
          noiseType: Cellular
          fractalType: FBm
          octaves: 3
          lacunarity: 2
          cellularDistanceFunction: Euclidean

  # Generate biome
  - !type:BiomeDunGen
    biomeTemplate: Asteroid
  - !type:OreDunGen
    replacement: AsteroidRock
    entity: AsteroidRockGibtonite
    count: 8
    minGroupSize: 0
    maxGroupSize: 1

# Lots of holes in it
- type: dungeonConfig
  id: SwissCheeseAsteroid
  # Floor generation
  layers:
  - !type:NoiseDunGen
    tileCap: 1000
    capStd: 32
    layers:
      - tile: FloorAsteroidSand
        threshold: -0.10
        noise:
          frequency: 0.155
          noiseType: OpenSimplex2
          fractalType: FBm
          octaves: 2
          lacunarity: 2

  # Generate biome
  - !type:BiomeDunGen
    biomeTemplate: Asteroid
  - !type:OreDunGen
    replacement: AsteroidRock
    entity: AsteroidRockGibtonite
    count: 8
    minGroupSize: 0
    maxGroupSize: 1
