init
This commit is contained in:
248
Prototypes/Procedural/vgroid.yml
Normal file
248
Prototypes/Procedural/vgroid.yml
Normal file
@@ -0,0 +1,248 @@
|
||||
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
|
||||
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2024 Weide <64257676+Lyacs@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2024 lanse12 <cloudability.ez@gmail.com>
|
||||
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2024 yglop <95057024+yglop@users.noreply.github.com>
|
||||
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
# Okay so my general thought is this:
|
||||
# 1. Generate the large mass
|
||||
# 2. Generate smaller masses offset
|
||||
# 3. Generate N normal dungeons around the larger mass, preferably near the border
|
||||
# 4. Generate large paths / small paths around the place
|
||||
# 5. Spawn ores + fill the rest and the normal stuff
|
||||
|
||||
# If you want mobs they needed to be added at specific steps due to how dungeons work at the moment.
|
||||
|
||||
- type: dungeonConfig
|
||||
id: VGRoid
|
||||
layers:
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidBlob
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidExterior
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidSmaller
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidSmallPaths
|
||||
inheritDungeons: All
|
||||
- !type:EntityTableDunGen
|
||||
minCount: 7
|
||||
maxCount: 12
|
||||
table:
|
||||
id: VGRoidInteriorRoomMarker
|
||||
# Fill
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidFill
|
||||
inheritDungeons: All
|
||||
# Ores
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockIron
|
||||
count: 50
|
||||
minGroupSize: 20
|
||||
maxGroupSize: 30
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockCoal
|
||||
count: 50
|
||||
minGroupSize: 15
|
||||
maxGroupSize: 20
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockQuartz
|
||||
count: 50
|
||||
minGroupSize: 20
|
||||
maxGroupSize: 30
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockGold
|
||||
count: 50
|
||||
minGroupSize: 10
|
||||
maxGroupSize: 20
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockSilver
|
||||
count: 50
|
||||
minGroupSize: 10
|
||||
maxGroupSize: 20
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockPlasma
|
||||
count: 50
|
||||
minGroupSize: 10
|
||||
maxGroupSize: 20
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockUranium
|
||||
count: 50
|
||||
minGroupSize: 10
|
||||
maxGroupSize: 20
|
||||
- !type:OreDunGen #Goob wiznerf partial revert
|
||||
replacement: IronRock
|
||||
entity: IronRockBananium
|
||||
count: 50
|
||||
minGroupSize: 5
|
||||
maxGroupSize: 10
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockArtifactFragment
|
||||
count: 50
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 4
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockDiamond
|
||||
count: 15
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 2
|
||||
- !type:OreDunGen # Goobstation
|
||||
replacement: IronRock
|
||||
entity: IronRockBSCrystal
|
||||
count: 40
|
||||
minGroupSize: 2
|
||||
maxGroupSize: 5
|
||||
- !type:OreDunGen
|
||||
replacement: IronRock
|
||||
entity: IronRockGibtonite
|
||||
count: 60 # you don't really hit it on purpose so it should be common
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
# Configs
|
||||
- type: dungeonConfig
|
||||
id: VGRoidBlob
|
||||
layers:
|
||||
- !type:NoiseDistanceDunGen
|
||||
size: 272, 272
|
||||
distanceConfig: !type:DunGenEuclideanSquaredDistance
|
||||
blendWeight: 0.80
|
||||
layers:
|
||||
- tile: FloorAsteroidSand
|
||||
threshold: 0.50
|
||||
noise:
|
||||
frequency: 0.010
|
||||
noiseType: OpenSimplex2
|
||||
fractalType: FBm
|
||||
octaves: 5
|
||||
lacunarity: 2
|
||||
gain: 0.5
|
||||
|
||||
- type: dungeonConfig
|
||||
id: VGRoidSmaller
|
||||
minOffset: 40
|
||||
maxOffset: 60
|
||||
layers:
|
||||
- !type:NoiseDistanceDunGen
|
||||
size: 150, 150
|
||||
distanceConfig: !type:DunGenEuclideanSquaredDistance
|
||||
layers:
|
||||
- tile: FloorAsteroidSand
|
||||
threshold: 0.50
|
||||
noise:
|
||||
frequency: 0.080
|
||||
noiseType: OpenSimplex2
|
||||
fractalType: FBm
|
||||
octaves: 5
|
||||
lacunarity: 1.5
|
||||
gain: 0.5
|
||||
|
||||
- type: dungeonConfig
|
||||
id: VGRoidExterior
|
||||
reserveTiles: true
|
||||
layers:
|
||||
- !type:PrototypeDunGen
|
||||
proto: VGRoidExteriorDungeons
|
||||
- !type:SplineDungeonConnectorDunGen
|
||||
tile: PlatingAsteroid
|
||||
widenTile: FloorAsteroidSand
|
||||
|
||||
- type: dungeonConfig
|
||||
id: VGRoidExteriorDungeons
|
||||
reserveTiles: true
|
||||
minCount: 2
|
||||
maxCount: 3
|
||||
layers:
|
||||
- !type:ExteriorDunGen
|
||||
proto: Experiment
|
||||
- !type:EntityTableDunGen
|
||||
minCount: 25
|
||||
maxCount: 40
|
||||
table: !type:NestedSelector
|
||||
tableId: SalvageScrapSpawnerCommon
|
||||
- !type:EntityTableDunGen
|
||||
minCount: 30
|
||||
maxCount: 40
|
||||
table: !type:NestedSelector
|
||||
tableId: SalvageScrapSpawnerValuable
|
||||
- !type:EntityTableDunGen
|
||||
minCount: 30
|
||||
maxCount: 45
|
||||
table: !type:NestedSelector
|
||||
tableId: SalvageTreasureSpawnerCommon
|
||||
- !type:EntityTableDunGen
|
||||
minCount: 30
|
||||
maxCount: 45
|
||||
table: !type:NestedSelector
|
||||
tableId: SalvageTreasureSpawnerValuable
|
||||
- !type:MobsDunGen
|
||||
minCount: 8
|
||||
maxCount: 15
|
||||
contents: VGRoidExteriorDungeonsMobs
|
||||
|
||||
- type: entityTable
|
||||
id: VGRoidExteriorDungeonsMobs
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: SalvageSpawnerMobMiningAsteroid
|
||||
amount: 1
|
||||
|
||||
#- type: dungeonConfig
|
||||
# id: VGRoidInteriorDungeons
|
||||
# minCount: 3
|
||||
# maxCount: 5
|
||||
# # Just randomly spawn these in bounds, doesn't really matter if they go out.
|
||||
|
||||
- type: dungeonConfig
|
||||
id: VGRoidSmallPaths
|
||||
reserveTiles: true
|
||||
layers:
|
||||
- !type:ReplaceTileDunGen
|
||||
layers:
|
||||
- tile: FloorAsteroidSand
|
||||
threshold: 0.75
|
||||
noise:
|
||||
frequency: 0.040
|
||||
noiseType: OpenSimplex2
|
||||
fractalType: Ridged
|
||||
lacunarity: 1.5
|
||||
octaves: 2
|
||||
gain: 2.0
|
||||
# Mobs
|
||||
# If you want exterior dungeon mobs add them under the prototype.
|
||||
- !type:MobsDunGen
|
||||
minCount: 25
|
||||
maxCount: 35
|
||||
contents: VGRoidSmallPathsMobs
|
||||
|
||||
- type: entityTable
|
||||
id: VGRoidSmallPathsMobs
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: SalvageSpawnerMobMiningAsteroid
|
||||
amount: 1
|
||||
|
||||
#- type: dungeonConfig
|
||||
# id: VGRoidOres
|
||||
|
||||
# Fill with rocks.
|
||||
- type: dungeonConfig
|
||||
id: VGRoidFill
|
||||
layers:
|
||||
- !type:FillGridDunGen
|
||||
entity: IronRock
|
||||
allowedTiles:
|
||||
- FloorAsteroidSand
|
||||
Reference in New Issue
Block a user