* content

* catwalks

* fix fucking icons

* finish PR

* +1 room

* fix
This commit is contained in:
Ed
2024-03-04 09:32:33 +03:00
committed by GitHub
parent ce9e13de6a
commit ace8285440
13 changed files with 6817 additions and 45 deletions

View File

@@ -173,7 +173,7 @@ public sealed partial class DungeonJob
if (found) if (found)
continue; continue;
_entManager.SpawnEntity("CableApcExtension", _grid.GridTileToLocal(tile)); _entManager.SpawnEntity(gen.Entity, _grid.GridTileToLocal(tile));
} }
} }
@@ -854,11 +854,11 @@ public sealed partial class DungeonJob
} }
var setTiles = new List<(Vector2i, Tile)>(); var setTiles = new List<(Vector2i, Tile)>();
var tileDef = _tileDefManager["FloorSteel"]; var tileDef = _prototype.Index(gen.Tile);
foreach (var tile in corridorTiles) foreach (var tile in corridorTiles)
{ {
setTiles.Add((tile, _tile.GetVariantTile((ContentTileDefinition) tileDef, random))); setTiles.Add((tile, _tile.GetVariantTile(tileDef, random)));
} }
grid.SetTiles(setTiles); grid.SetTiles(setTiles);

View File

@@ -1,3 +1,5 @@
using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural.PostGeneration; namespace Content.Shared.Procedural.PostGeneration;
/// <summary> /// <summary>
@@ -5,5 +7,6 @@ namespace Content.Shared.Procedural.PostGeneration;
/// </summary> /// </summary>
public sealed partial class AutoCablingPostGen : IPostDunGen public sealed partial class AutoCablingPostGen : IPostDunGen
{ {
[DataField]
public EntProtoId Entity = "CableApcExtension";
} }

View File

@@ -1,3 +1,6 @@
using Content.Shared.Maps;
using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural.PostGeneration; namespace Content.Shared.Procedural.PostGeneration;
/// <summary> /// <summary>
@@ -17,6 +20,9 @@ public sealed partial class CorridorPostGen : IPostDunGen
[DataField("method")] [DataField("method")]
public CorridorPostGenMethod Method = CorridorPostGenMethod.MinimumSpanningTree; public CorridorPostGenMethod Method = CorridorPostGenMethod.MinimumSpanningTree;
[DataField]
public ProtoId<ContentTileDefinition> Tile = "FloorSteel";
/// <summary> /// <summary>
/// How wide to make the corridor. /// How wide to make the corridor.
/// </summary> /// </summary>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,93 @@
- type: entity
id: RandomWoodenSupport
name: wooden support spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support
- type: RandomSpawner
prototypes:
- WoodenSupport
- WoodenSupportBeam
- WoodenSupportBeam
- WoodenSupportBeam
chance: 0.9
- type: entity
id: RandomWoodenWall
name: wooden wall spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/mines.rsi
state: support_wall
- type: RandomSpawner
prototypes:
- WoodenSupportWall
- WoodenSupportWallBroken
chance: 0.9
- type: entity
id: RandomStalagmiteOrCrystal
name: stalagmite or crystal spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: RandomSpawner
offset: 0.3
prototypes:
- RandomBrownStalagmite
- RandomGreyStalagmite
- CrystalSpawner
chance: 0.9
- type: entity
id: RandomBrownStalagmite
name: brown stalagmite spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: stalagmite2
- type: RandomSpawner
offset: 0.3
prototypes:
- FloraStalagmite1
- FloraStalagmite2
- FloraStalagmite3
- FloraStalagmite4
- FloraStalagmite5
- FloraStalagmite6
chance: 0.9
- type: entity
id: RandomGreyStalagmite
name: grey stalagmite spawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: red
- sprite: Objects/Decoration/Flora/flora_stalagmite.rsi
state: grey_stalagmite3
- type: RandomSpawner
offset: 0.3
prototypes:
- FloraGreyStalagmite1
- FloraGreyStalagmite2
- FloraGreyStalagmite3
- FloraGreyStalagmite4
- FloraGreyStalagmite5
- FloraGreyStalagmite6
chance: 0.9

View File

@@ -30,7 +30,7 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 50 damage: 10
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]
@@ -56,7 +56,13 @@
placement: placement:
mode: SnapgridCenter mode: SnapgridCenter
components: components:
- type: PlacementReplacement
key: walls
- type: Tag
tags:
- Wooden
- type: Sprite - type: Sprite
noRot: true
sprite: Objects/Decoration/mines.rsi sprite: Objects/Decoration/mines.rsi
state: support state: support
- type: Damageable - type: Damageable
@@ -85,7 +91,7 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 150 damage: 50
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]
@@ -124,7 +130,14 @@
placement: placement:
mode: SnapgridCenter mode: SnapgridCenter
components: components:
- type: PlacementReplacement
key: walls
- type: Tag
tags:
- Wall
- Wooden
- type: Sprite - type: Sprite
noRot: true
sprite: Objects/Decoration/mines.rsi sprite: Objects/Decoration/mines.rsi
state: support_wall state: support_wall
- type: Damageable - type: Damageable
@@ -147,7 +160,7 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 250 damage: 75
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]
@@ -168,7 +181,7 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 150 damage: 50
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]

View File

@@ -5,6 +5,7 @@
description: What can be better then late evening under the sky with guitar and friends. description: What can be better then late evening under the sky with guitar and friends.
components: components:
- type: Sprite - type: Sprite
noRot: true
sprite: Structures/Decoration/bonfire.rsi sprite: Structures/Decoration/bonfire.rsi
layers: layers:
- state: bonfire - state: bonfire

View File

@@ -5,6 +5,7 @@
description: Finally, some decent reception around here... description: Finally, some decent reception around here...
components: components:
- type: Sprite - type: Sprite
noRot: true
drawdepth: SmallObjects drawdepth: SmallObjects
layers: layers:
- map: ["computerLayerBody"] - map: ["computerLayerBody"]

View File

@@ -4,16 +4,19 @@
#Asteroid rock #Asteroid rock
- type: entity - type: entity
id: AsteroidRock id: AsteroidRock
parent: BaseStructure parent: BaseWall
name: asteroid rock name: asteroid rock
description: A rocky asteroid. description: A rocky asteroid.
components: components:
- type: PlacementReplacement - type: Transform
key: walls noRot: true
- type: IconSmooth - type: IconSmooth
key: walls key: walls
mode: NoSprite mode: NoSprite
- type: SmoothEdge - type: SmoothEdge
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_asteroid
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:
@@ -42,21 +45,6 @@
path: /Audio/Effects/break_stone.ogg path: /Audio/Effects/break_stone.ogg
params: params:
volume: -6 volume: -6
- type: Occluder
- type: Airtight
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
density: 100
mask:
- FullTileMask
layer:
- WallLayer
- type: RadiationBlocker
resistance: 2
# Ore veins # Ore veins
- type: entity - type: entity
@@ -379,12 +367,12 @@
# Rocks and ore veins # Rocks and ore veins
- type: entity - type: entity
id: WallRock id: WallRock
parent: BaseStructure parent: BaseWall
name: rock name: rock
suffix: planetmap suffix: planetmap
components: components:
- type: PlacementReplacement - type: Transform
key: walls noRot: true
- type: SoundOnGather - type: SoundOnGather
- type: Gatherable - type: Gatherable
whitelist: whitelist:
@@ -401,22 +389,12 @@
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: ["Destruction"] acts: ["Destruction"]
- type: Occluder
- type: Airtight
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
density: 100
mask:
- FullTileMask
layer:
- WallLayer
- type: IconSmooth - type: IconSmooth
key: walls key: walls
mode: NoSprite mode: NoSprite
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock
- type: SmoothEdge - type: SmoothEdge
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
@@ -430,8 +408,6 @@
state: rock_north state: rock_north
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_west state: rock_west
- type: RadiationBlocker
resistance: 2
# Ore veins # Ore veins
- type: entity - type: entity
@@ -662,6 +638,9 @@
name: basalt name: basalt
parent: WallRock parent: WallRock
components: components:
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_wall
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:
@@ -902,6 +881,9 @@
name: snowdrift name: snowdrift
parent: WallRock parent: WallRock
components: components:
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_snow
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:
@@ -1142,6 +1124,9 @@
name: sandstone name: sandstone
parent: WallRock parent: WallRock
components: components:
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_sand
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:
@@ -1382,6 +1367,9 @@
name: chromite name: chromite
parent: WallRock parent: WallRock
components: components:
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_chromite
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:
@@ -1622,6 +1610,9 @@
name: andesite name: andesite
parent: WallRock parent: WallRock
components: components:
- type: Icon
sprite: Structures/Walls/rock.rsi
state: rock_andesite
- type: Sprite - type: Sprite
sprite: Structures/Walls/rock.rsi sprite: Structures/Walls/rock.rsi
layers: layers:

View File

@@ -0,0 +1,272 @@
# Rooms
# Large
# - 17x5
- type: dungeonRoom
id: Mineshaft17x5a
size: 17,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,0
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft17x5b
size: 17,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 18,0
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft17x5c
size: 17,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 36,0
tags:
- Mineshaft
# = 11x5
- type: dungeonRoom
id: Mineshaft11x5a
size: 11,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,6
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft11x5b
size: 11,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 12,6
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft11x5c
size: 11,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 24,6
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft11x5d
size: 11,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 36,6
tags:
- Mineshaft
# - 7x5
- type: dungeonRoom
id: Mineshaft7x5a
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,12
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x5b
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 8,12
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x5c
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 16,12
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x5d
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 24,12
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x5e
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 32,12
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x5f
size: 7,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 40,12
tags:
- Mineshaft
# - 5x5
- type: dungeonRoom
id: Mineshaft5x5a
size: 5,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,18
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft5x5b
size: 5,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 6,18
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft5x5c
size: 5,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 12,18
tags:
- Mineshaft
# -7x7
- type: dungeonRoom
id: Mineshaft7x7a
size: 7,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 18,18
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x7b
size: 7,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 26,18
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x7c
size: 7,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 34,18
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft7x7e
size: 7,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 42,18
tags:
- Mineshaft
# -3x7
- type: dungeonRoom
id: Mineshaft3x7a
size: 3,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,24
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x7b
size: 3,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 4,24
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x7c
size: 3,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 8,24
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x7d
size: 3,7
atlas: /Maps/Dungeon/mineshaft.yml
offset: 12,24
tags:
- Mineshaft
# -3x5
- type: dungeonRoom
id: Mineshaft3x5a
size: 3,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 16,26
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x5b
size: 3,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 20,26
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x5c
size: 3,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 24,26
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x5e
size: 3,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 32,26
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft3x5f
size: 3,5
atlas: /Maps/Dungeon/mineshaft.yml
offset: 36,26
tags:
- Mineshaft
# -13x3
- type: dungeonRoom
id: Mineshaft13x3a
size: 13,3
atlas: /Maps/Dungeon/mineshaft.yml
offset: 0,32
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft13x3b
size: 13,3
atlas: /Maps/Dungeon/mineshaft.yml
offset: 14,32
tags:
- Mineshaft
- type: dungeonRoom
id: Mineshaft13x3c
size: 13,3
atlas: /Maps/Dungeon/mineshaft.yml
offset: 28,32
tags:
- Mineshaft

View File

@@ -162,3 +162,77 @@
SouthEast: BrickTileWhiteInnerSe SouthEast: BrickTileWhiteInnerSe
NorthWest: BrickTileWhiteInnerNw NorthWest: BrickTileWhiteInnerNw
NorthEast: BrickTileWhiteInnerNe NorthEast: BrickTileWhiteInnerNe
- type: dungeonConfig
id: Mineshaft
generator: !type:PrefabDunGen
tile: FloorCaveDrought
roomWhitelist:
- Mineshaft
presets:
- Bucket
- Wow
- SpaceShip
- Tall
postGeneration:
- !type:CorridorPostGen
tile: FloorCaveDrought
width: 3
- !type:DungeonEntrancePostGen
count: 5
tile: FloorCaveDrought
entities:
- RandomWoodenWall
- !type:RoomEntrancePostGen
tile: FloorCaveDrought
entities:
- RandomWoodenWall
- !type:EntranceFlankPostGen
tile: FloorCaveDrought
entities:
- RandomWoodenWall
- !type:ExternalWindowPostGen
tile: FloorCaveDrought
entities:
- RandomWoodenWall
- !type:WallMountPostGen
tile: FloorCaveDrought
spawns:
# Ore
- id: WallRockSalt
prob: 0.6
orGroup: content
- id: WallRockCoal
prob: 0.6
orGroup: content
- id: WallRockTin
prob: 0.4
orGroup: content
- id: WallMining
prob: 0.8
orGroup: content
- !type:BoundaryWallPostGen
tile: FloorCaveDrought
wall: WallRock
cornerWall: WallRock
- !type:AutoCablingPostGen
entity: Catwalk
- !type:JunctionPostGen
tile: FloorCaveDrought
width: 3
entities:
- RandomWoodenSupport
- !type:CornerClutterPostGen
contents:
- id: RandomStalagmiteOrCrystal
amount: 1

View File

@@ -222,7 +222,6 @@
id: Experiment id: Experiment
proto: Experiment proto: Experiment
biomes: biomes:
- Caves
#- LowDesert #- LowDesert
- Snow - Snow
- Grasslands - Grasslands
@@ -232,3 +231,9 @@
proto: LavaBrig proto: LavaBrig
biomes: biomes:
- Lava - Lava
- type: salvageDungeonMod
id: Mineshaft
proto: Mineshaft
biomes:
- Caves

View File

@@ -758,6 +758,9 @@
- type: Tag - type: Tag
id: MimeHappyHonk id: MimeHappyHonk
- type: Tag
id: Mineshaft
# Magazines ordered by slot then caliber # Magazines ordered by slot then caliber
- type: Tag - type: Tag