Wall inheritance cleanup (#37436)

* Cleanup walls.yml

* quick check

* Fix tilewall cmd

* More Cleanup

* Arrnrtrayiage

* Remove double parenting

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
This commit is contained in:
Velcroboy 2025-05-16 08:17:21 -05:00 committed by deltanedas
parent 1c1917a3e6
commit 5bcccc6eb0
2 changed files with 168 additions and 204 deletions

View File

@ -25,6 +25,7 @@ public sealed class TileWallsCommand : IConsoleCommand
[ValidatePrototypeId<TagPrototype>]
public const string WallTag = "Wall";
public const string DiagonalTag = "Diagonal";
public void Execute(IConsoleShell shell, string argStr, string[] args)
{
@ -85,6 +86,11 @@ public sealed class TileWallsCommand : IConsoleCommand
continue;
}
if (tagSystem.HasTag(child, DiagonalTag))
{
continue;
}
var childTransform = _entManager.GetComponent<TransformComponent>(child);
if (!childTransform.Anchored)

View File

@ -1,7 +1,7 @@
- type: entity
abstract: true
parent: BaseStructure
id: BaseWall
id: BaseStructureWall
name: basewall
description: Keeps the air in and the greytide out.
placement:
@ -44,7 +44,6 @@
layer:
- WallLayer
density: 1000
- type: Occluder
- type: Airtight
- type: StaticPrice #was DynamicPrice
price: 75
@ -53,6 +52,46 @@
- type: BlockWeather
- type: SunShadowCast
- type: entity
abstract: true
parent: BaseStructureWall
id: BaseWall
components:
- type: Occluder # Breaks on diagonal walls
- type: entity
abstract: true
parent: BaseStructureWall
id: WallDiagonalBase
suffix: Diagonal
components:
- type: Tag
tags:
- Wall
- Diagonal
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Airtight
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- East
- type: Fixtures
fixtures:
fix1:
shape:
!type:PolygonShape
vertices:
- "-0.5,-0.5"
- "0.5,0.5"
- "0.5,-0.5"
mask:
- FullTileMask
layer:
- WallLayer
- type: entity
parent: BaseWall
id: WallBrick
@ -79,7 +118,6 @@
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: IconSmooth
key: walls
base: brick
@ -91,9 +129,6 @@
id: WallClock
name: clock wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/clock.rsi
- type: Icon
@ -125,9 +160,6 @@
id: WallClown
name: bananium wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/clown.rsi
- type: Icon
@ -197,9 +229,6 @@
id: WallCult
name: cult wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/cult.rsi
- type: Icon
@ -257,9 +286,6 @@
id: WallDiamond
name: diamond wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/diamond.rsi
- type: Icon
@ -292,9 +318,6 @@
id: WallGold
name: gold wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/gold.rsi
- type: Icon
@ -339,9 +362,6 @@
id: WallIce
name: ice wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/ice.rsi
- type: Icon
@ -370,9 +390,6 @@
id: WallPlasma
name: plasma wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/plasma.rsi
- type: Icon
@ -419,9 +436,6 @@
id: WallPlastic
name: plastic wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/plastic.rsi
- type: Icon
@ -467,9 +481,6 @@
name: plastitanium wall
suffix: indestructible
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/plastitanium.rsi
- type: Icon
@ -477,6 +488,11 @@
- type: IconSmooth
key: walls
base: plastitanium
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: RadiationBlocker
resistance: 5
- type: entity
parent: WallPlastitaniumIndestructible
@ -484,9 +500,6 @@
name: plastitanium wall
suffix: ""
components:
- type: Tag
tags:
- Wall
- type: Destructible
thresholds:
- trigger:
@ -502,23 +515,34 @@
acts: [ "Destruction" ]
- type: entity
parent: WallShuttleDiagonal
id: WallPlastitaniumDiagonal
parent: WallDiagonalBase
id: WallPlastitaniumDiagonalIndestructible
name: plastitanium wall
suffix: diagonal
placement:
mode: SnapgridCenter
snap:
- Wall
suffix: diagonal, indestructible
components:
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
- type: Icon
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: RadiationBlocker
resistance: 5
- type: entity
parent: WallPlastitaniumDiagonalIndestructible
id: WallPlastitaniumDiagonal
name: plastitanium wall
suffix: diagonal
components:
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
@ -526,73 +550,18 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 2000
damage: 1000
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
Girder:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- trigger:
!type:DamageTrigger
damage: 1000
behaviors:
- !type:ChangeConstructionNodeBehavior
node: girder
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
id: WallPlastitaniumDiagonalIndestructible
name: plastitanium wall
suffix: diagonal, indestructible
description: Keeps the air in and the greytide out.
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Transform
anchored: true
- type: Clickable
- type: Tag
tags:
- Wall
- Diagonal
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
- type: Physics
bodyType: Static
- type: Airtight
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- East
- type: Fixtures
fixtures:
fix1:
shape:
!type:PolygonShape
vertices:
- "-0.5,-0.5"
- "0.5,0.5"
- "0.5,-0.5"
mask:
- FullTileMask
layer:
- WallLayer
- type: entity
parent: BaseWall
@ -700,29 +669,44 @@
convertTo: WallCosmicCult
- type: entity
parent: WallShuttleDiagonal
parent: WallDiagonalBase
id: WallReinforcedDiagonal
name: reinforced wall
suffix: diagonal
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Tag
tags:
- Diagonal
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/reinforced_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/reinforced_diagonal.rsi
state: state0
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:ChangeConstructionNodeBehavior
node: girder
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- !type:DoActsBehavior
acts: ["Destruction"]
- type: RadiationBlocker
resistance: 5
# Riveting
- type: entity
@ -730,9 +714,6 @@
id: WallRiveted
name: riveted wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/riveted.rsi
- type: Icon
@ -764,9 +745,6 @@
id: WallSandstone
name: sandstone wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/sandstone.rsi
- type: Icon
@ -797,9 +775,6 @@
id: WallSilver
name: silver wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/silver.rsi
- type: Icon
@ -840,59 +815,22 @@
convertTo: WallCosmicCult
- type: entity
parent: WallDiagonalBase
id: WallShuttleDiagonal
name: shuttle wall
suffix: diagonal
description: Keeps the air in and the greytide out.
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Transform
anchored: true
- type: Clickable
- type: Tag
tags:
- Wall
- Diagonal
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/shuttle_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/shuttle_diagonal.rsi
state: state0
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallic
- type: Physics
bodyType: Static
- type: Reflect
reflectProb: 1
- type: Pullable
- type: Airtight
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- East
- type: Fixtures
fixtures:
fix1:
shape:
!type:PolygonShape
vertices:
- "-0.5,-0.5"
- "0.5,0.5"
- "0.5,-0.5"
mask:
- FullTileMask
layer:
- WallLayer
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: Destructible
thresholds:
- trigger:
@ -921,6 +859,10 @@
- type: Construction
graph: Girder
node: diagonalshuttleWall
- type: RadiationBlocker
resistance: 5
- type: StaticPrice
price: 200
- type: entity
parent: BaseWall
@ -990,9 +932,6 @@
id: WallSolid
name: solid wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: _DV/Structures/Walls/solid.rsi #Delta V - Resprite walls
- type: WallReplacementMarker
@ -1034,26 +973,39 @@
convertTo: WallCosmicCult
- type: entity
parent: WallShuttleDiagonal
parent: WallDiagonalBase
id: WallSolidDiagonal
name: solid wall
suffix: diagonal
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/solid_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/solid_diagonal.rsi
state: state0
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 400
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:ChangeConstructionNodeBehavior
node: girder
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
parent: WallSolid
@ -1185,7 +1137,6 @@
name: web wall
description: Keeps the spiders in and the greytide out.
components:
- type: Clickable
- type: MeleeSound
soundGroups:
Brute:
@ -1193,9 +1144,6 @@
"/Audio/Weapons/slash.ogg"
- type: Damageable
damageModifierSet: Web
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/web.rsi
- type: Icon
@ -1231,9 +1179,6 @@
id: WallNecropolis
name: stone wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/necropolis.rsi
- type: Icon
@ -1257,9 +1202,6 @@
id: WallMining
name: mining wall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/mining.rsi
- type: Icon
@ -1284,26 +1226,45 @@
convertTo: WallCosmicCult
- type: entity
parent: WallShuttleDiagonal
parent: WallDiagonalBase
id: WallMiningDiagonal
name: mining wall
suffix: diagonal
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: Sprite
drawdepth: Walls
sprite: Structures/Walls/mining_diagonal.rsi
state: state0
- type: IconSmooth
mode: Diagonal
key: walls
base: state
- type: Icon
sprite: Structures/Walls/mining_diagonal.rsi
state: state0
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: StructuralMetallicStrong
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
Girder:
min: 1
max: 1
- !type:PlaySoundBehavior
sound:
collection: MetalSlam
- !type:DoActsBehavior
acts: ["Destruction"]
# Vault Walls
@ -1417,9 +1378,6 @@
name: cobblestone brick wall
description: Stone by stone, perfectly fitted together to form a wall.
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Structures/Walls/cobblebrick.rsi
- type: Icon