diff --git a/Content.Client/IconSmoothing/IconSmoothComponent.cs b/Content.Client/IconSmoothing/IconSmoothComponent.cs index 040198529c..3a9fbc46ef 100644 --- a/Content.Client/IconSmoothing/IconSmoothComponent.cs +++ b/Content.Client/IconSmoothing/IconSmoothComponent.cs @@ -26,6 +26,12 @@ namespace Content.Client.IconSmoothing [ViewVariables(VVAccess.ReadWrite), DataField("key")] public string? SmoothKey { get; private set; } + /// + /// Additional keys to smooth with. + /// + [DataField] + public List AdditionalKeys { get; private set; } = new(); + /// /// Prepended to the RSI state. /// diff --git a/Content.Client/IconSmoothing/IconSmoothSystem.cs b/Content.Client/IconSmoothing/IconSmoothSystem.cs index 2654f1ab57..45aafb5288 100644 --- a/Content.Client/IconSmoothing/IconSmoothSystem.cs +++ b/Content.Client/IconSmoothing/IconSmoothSystem.cs @@ -376,7 +376,8 @@ namespace Content.Client.IconSmoothing while (candidates.MoveNext(out var entity)) { if (smoothQuery.TryGetComponent(entity, out var other) && - other.SmoothKey == smooth.SmoothKey && + other.SmoothKey != null && + (other.SmoothKey == smooth.SmoothKey || smooth.AdditionalKeys.Contains(other.SmoothKey)) && other.Enabled) { return true; diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorLava.yml b/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorLava.yml index 4a9d00f1af..384fe99ee9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorLava.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorLava.yml @@ -38,6 +38,8 @@ - type: IconSmooth shader: unshaded key: CP14Lava + additionalKeys: + - CP14wall base: water - type: Physics bodyType: Static diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorWater.yml b/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorWater.yml index 8ead81b944..af9e4ea231 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorWater.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Floor/floorWater.yml @@ -19,6 +19,8 @@ state: full - type: IconSmooth key: CP14Water + additionalKeys: + - CP14wall base: water - type: FloorOccluder - type: Transform diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml index ebe5eb5f16..00cd3c3192 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Walls/walls.yml @@ -91,7 +91,6 @@ - bricksB - type: CP14WallpaperHolder - - type: entity id: CP14WallWooden name: wooden wall @@ -131,7 +130,8 @@ - type: entity id: CP14WallWoodenPalisade - name: wooden wall + name: palisade + description: A wall of sharp logs. Not that it's a safe haven. parent: - CP14BaseWall - CP14BaseFlammableSpreading @@ -142,6 +142,8 @@ sprite: _CP14/Structures/Walls/wooden_palisad.rsi - type: IconSmooth key: CP14palisade + additionalKeys: + - CP14wall base: wood - type: Damageable damageContainer: Inorganic @@ -160,6 +162,11 @@ - type: Tag - type: Occluder enabled: false + - type: Airtight + airBlocked: false + - type: Construction + graph: CP14WallWoodenPalisade + node: CP14WallWoodenPalisade - type: entity id: CP14WallCardboard diff --git a/Resources/Prototypes/_CP14/Entities/Structures/chasm.yml b/Resources/Prototypes/_CP14/Entities/Structures/chasm.yml index 9b552bd4ca..12f14c00aa 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/chasm.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/chasm.yml @@ -18,6 +18,8 @@ state: full - type: IconSmooth key: chasm + additionalKeys: + - CP14wall base: chasm_ - type: Transform anchored: true diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml index dfc694a06c..d982447f06 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Structures/Walls/WallWood.yml @@ -50,4 +50,21 @@ doAfter: 2 - node: WindowWooden - entity: CP14WindowWooden \ No newline at end of file + entity: CP14WindowWooden + + +- type: constructionGraph + id: CP14WallWoodenPalisade + start: start + graph: + - node: start + edges: + - to: CP14WallWoodenPalisade + completed: + - !type:SnapToGrid + steps: + - material: CP14WoodenPlanks + amount: 4 + doAfter: 2 + - node: CP14WallWoodenPalisade + entity: CP14WallWoodenPalisade diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml b/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml index 374775dbf7..254acbdaaf 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/walls.yml @@ -16,6 +16,24 @@ conditions: - !type:TileNotBlocked +- type: construction + crystallPunkAllowed: true + name: palisade + description: A wall of sharp logs. Not that it's a safe haven. + id: CP14WallWoodenPalisade + graph: CP14WallWoodenPalisade + startNode: start + targetNode: CP14WallWoodenPalisade + category: construction-category-structures + icon: + sprite: _CP14/Structures/Walls/wooden_palisad.rsi + state: full + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + - type: construction crystallPunkAllowed: true name: wooden window