From 55dd261f132f550a4663fbb6f0b666619da56ca0 Mon Sep 17 00:00:00 2001
From: Ed <96445749+TheShuEd@users.noreply.github.com>
Date: Wed, 12 Mar 2025 17:32:48 +0300
Subject: [PATCH] palisaade (#1012)
---
.../IconSmoothing/IconSmoothComponent.cs | 6 ++++++
.../IconSmoothing/IconSmoothSystem.cs | 3 ++-
.../Entities/Structures/Floor/floorLava.yml | 2 ++
.../Entities/Structures/Floor/floorWater.yml | 2 ++
.../_CP14/Entities/Structures/Walls/walls.yml | 11 +++++++++--
.../_CP14/Entities/Structures/chasm.yml | 2 ++
.../Graphs/Structures/Walls/WallWood.yml | 19 ++++++++++++++++++-
.../_CP14/Recipes/Construction/walls.yml | 18 ++++++++++++++++++
8 files changed, 59 insertions(+), 4 deletions(-)
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