Dynamic space world generation and debris. (#15120)

* World generation (squash)

* Test fixes.

* command

* o

* Access cleanup.

* Documentation touchups.

* Use a prototype serializer for BiomeSelectionComponent

* Struct enumerator in SimpleFloorPlanPopulatorSystem

* Safety margins around PoissonDiskSampler, cookie acquisition methodologies

* Struct enumerating PoissonDiskSampler; internal side

* Struct enumerating PoissonDiskSampler: Finish it

* Update WorldgenConfigSystem.cs

awa

---------

Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: 20kdc <asdd2808@gmail.com>
This commit is contained in:
Moony
2023-05-16 06:36:45 -05:00
committed by GitHub
parent cdb46778dc
commit e91fc652a3
54 changed files with 2748 additions and 1 deletions

View File

@@ -55,6 +55,8 @@
- key: enum.ShuttleConsoleUiKey.Key
type: ShuttleConsoleBoundUserInterface
- type: RadarConsole
- type: WorldLoader
radius: 256
- type: PointLight
radius: 1.5
energy: 1.6
@@ -102,6 +104,8 @@
- Syndicate
- type: RadarConsole
maxRange: 1536
- type: WorldLoader
radius: 1536
- type: PointLight
radius: 1.5
energy: 1.6

View File

@@ -0,0 +1,76 @@
- type: entity
id: BaseAsteroidDebris
parent: BaseDebris
name: Asteroid Debris
abstract: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorTileset:
- FloorAsteroidCoarseSand0
blobDrawProb: 0.5
radius: 6
floorPlacements: 16
- type: SimpleFloorPlanPopulator
entries:
FloorAsteroidCoarseSand0:
- id: WallRock
prob: 0.5
- id: WallRockGold
prob: 0.01
- id: WallRockSilver
prob: 0.04
- id: WallRockPlasma
prob: 0.09
- id: WallRockTin
prob: 0.2
- id: WallRockUranium
prob: 0.07
- id: WallRockQuartz
prob: 0.2
- type: GCAbleObject
queue: SpaceDebris
- type: IFF
flags: HideLabel
color: "#d67e27"
- type: entity
id: AsteroidDebrisSmall
parent: BaseAsteroidDebris
name: Asteroid Debris Small
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 8
- type: entity
id: AsteroidDebrisMedium
parent: BaseAsteroidDebris
name: Asteroid Debris Medium
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 16
- type: entity
id: AsteroidDebrisLarge
parent: BaseAsteroidDebris
name: Asteroid Debris Large
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 24
- type: entity
id: AsteroidDebrisLarger
parent: BaseAsteroidDebris
name: Asteroid Debris Larger
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
radius: 12
floorPlacements: 36

View File

@@ -0,0 +1,6 @@
- type: entity
id: BaseDebris
abstract: true
components:
- type: OwnedDebris
- type: LocalityLoader

View File

@@ -0,0 +1,82 @@
- type: entity
id: BaseScrapDebris
parent: BaseDebris
name: Scrap Debris
abstract: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorTileset:
- Plating
- Plating
- Plating
- FloorSteel
- Lattice
blobDrawProb: 0.5
radius: 6
floorPlacements: 16
- type: SimpleFloorPlanPopulator
entries:
Plating:
- prob: 3 # Intentional blank.
- id: SalvageMaterialCrateSpawner
prob: 1
- id: SalvageCanisterSpawner
prob: 0.2
- id: SalvageMobSpawner
prob: 0.7
- id: WallSolid
prob: 1
- id: Grille
prob: 0.5
Lattice:
- prob: 2
- id: Grille
prob: 0.2
- id: SalvageMaterialCrateSpawner
prob: 0.3
- id: SalvageCanisterSpawner
prob: 0.2
FloorSteel:
- prob: 3 # Intentional blank.
- id: SalvageMaterialCrateSpawner
prob: 1
- id: SalvageCanisterSpawner
prob: 0.2
- id: SalvageMobSpawner
prob: 0.7
- type: GCAbleObject
queue: SpaceDebris
- type: IFF
flags: HideLabel
color: "#88b0d1"
- type: entity
id: ScrapDebrisSmall
parent: BaseScrapDebris
name: Scrap Debris Small
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 8
- type: entity
id: ScrapDebrisMedium
parent: BaseScrapDebris
name: Scrap Debris Medium
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 16
- type: entity
id: ScrapDebrisLarge
parent: BaseScrapDebris
name: Scrap Debris Large
noSpawn: true
components:
- type: MapGrid
- type: BlobFloorPlanBuilder
floorPlacements: 24

View File

@@ -0,0 +1,15 @@
- type: entity
id: WorldChunk
parent: MarkerBase
name: World Chunk
description: |
It's rude to stare.
It's also a bit odd you're looking at the abstract representation of the grid of reality.
noSpawn: true
components:
- type: WorldChunk
- type: Sprite
sprite: Markers/cross.rsi
netsync: false
layers:
- state: blue