Repository: Goob-Station/Goob-Station
Pull request #2622: Chair spawners
Author: login: Thesia000
Labels: name: Changes: Sprites
name: Changes: No C#
name: size/S
description: Denotes a PR that changes 10-99 lines.
Created: 2025-05-04T12:37:05Z | Merged: 2025-05-08T13:45:19Z

<!--
SPDX-FileCopyrightText: 2021 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
SPDX-FileCopyrightText: 2021 mirrorcult <lunarautomaton6@gmail.com>
SPDX-FileCopyrightText: 2022 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
SPDX-FileCopyrightText: 2022 Kara <lunarautomaton6@gmail.com>
SPDX-FileCopyrightText: 2023 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
SPDX-FileCopyrightText: 2023 Kevin Zheng <kevinz5000@gmail.com>
SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>

SPDX-License-Identifier: AGPL-3.0-or-later
-->

<!-- Guidelines: https://docs.spacestation14.io/en/getting-started/pr-guideline -->
<!-- NOTE: All code submitted to this repository is ALWAYS licensed under the AGPL-3.0-or-later license. 
The REUSE Specification headers or separate .license files indicate a secondary license (e.g., MPL or MIT) solely to facilitate 
integration for projects that do not use the AGPL license. This secondary license does not replace the fact that AGPL-3.0-or-later remains the primary and binding license. 
Uncomment and modify the following line if you wish to change the license from the default of AGPL.-->
<!--- LICENSE: AGPL -->
## About the PR
added chair spawner as mapping office chairs was impossible

## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was changed. Link any relevant discussions or issues. -->
see about section

## Technical details
<!-- Summary of code changes for easier review. -->
some yml


## Media
<!-- Attach media if the PR makes ingame changes (clothing, items, features, etc).
Small fixes/refactors are exempt. Media may be used in SS14 progress reports with credit. -->

## Requirements
<!-- Confirm the following by placing an X in the brackets [X]: -->
- [X] I have read and am following the [Pull Request and Changelog Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [X] I have added media to this PR or it does not require an ingame showcase.
<!-- You should understand that not following the above may get your PR closed at maintainer’s discretion -->

## Breaking changes
<!-- List any breaking changes, including namespaces, public class/method/field changes, prototype renames; and provide instructions for fixing them.
This will be posted in #codebase-changes. -->

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of the comment block in order for it to show up.
Changelog must have a :cl: symbol, so the bot recognizes the changes and adds them to the game's changelog. -->


Diff:
diff --git a/Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml b/Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
index aa15236afd75..c2b27f48a226 100644
--- a/Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
+++ b/Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
@@ -1,6 +1,9 @@
 # SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
 # SPDX-FileCopyrightText: 2024 Scruq445 <storchdamien@gmail.com>
 # SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
+# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
+# SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com>
+# SPDX-FileCopyrightText: 2025 Thesia <lindner.thorben@gmx.de>
 #
 # SPDX-License-Identifier: AGPL-3.0-or-later
 
@@ -44,4 +47,32 @@
         state: keys
   - type: ConditionalSpawner
     prototypes:
-      - VehicleJanicart
\ No newline at end of file
+      - VehicleJanicart
+
+- type: entity
+  name: light office chair spawner
+  id: SpawnVehicleChairOfficeLight
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: white-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeLight
+
+- type: entity
+  name: dark office chair spawner
+  id: SpawnVehicleChairOfficeDark
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: dark-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeDark
diff --git a/Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png b/Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png
new file mode 100644
index 000000000000..6231b212d384
Binary files /dev/null and b/Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png differ
diff --git a/Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json b/Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json
new file mode 100644
index 000000000000..b795ea93cd14
--- /dev/null
+++ b/Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json
@@ -0,0 +1,17 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Created by Thesia000 (Github)",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "dark-icon"
+    },
+    {
+      "name": "white-icon"
+    }
+  ]
+}
diff --git a/Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png b/Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png
new file mode 100644
index 000000000000..3de12c6e2455
Binary files /dev/null and b/Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png differ


Reviews:
user: login: coderabbitai[bot]
body: **Actionable comments posted: 1**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml (1)</summary><blockquote>

`77-77`: **Add newline at end of file**  
YAML lint demands a trailing newline to appease the arcane parsers.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 77-77: wrong indentation: expected 4 but found 6

(indentation)

---

[error] 77-77: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between bab2636a73dcdee52a91d7c34e509791dd0347c6 and a07514aa4770926b6d0bc14be418cbb6f47a03c0.

</details>

<details>
<summary>⛔ Files ignored due to path filters (2)</summary>

* `Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png` is excluded by `!**/*.png`
* `Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png` is excluded by `!**/*.png`

</details>

<details>
<summary>📒 Files selected for processing (2)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml` (2 hunks)
* `Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml</summary>

[warning] 49-49: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 58-58: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 63-63: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 72-72: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 77-77: wrong indentation: expected 4 but found 6

(indentation)

---

[error] 77-77: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (1)</summary>

* GitHub Check: Label

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json (1)</summary>

`1-15`: **Chair texture metadata passes arcane validation**  
By the runes of old, this JSON is well-formed and rightly declares version, dimensions, and the two icon states that align perfectly with thine new chair spawners.

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml (2)</summary>

`4-5`: **New contributor incantations appended**  
Behold, the scribes of 2025 are duly acknowledged, and the AGPL runes remain intact.

---

`51-64`: **Review Office chair Spawner Light naming**  
While the spawner’s sprite and prototype align with the newly added `chairs.rsi` meta, the identifier `SpawnOfficeChairLight` diverges from the pattern of other vehicle spawners prefixed with `SpawnVehicle`. Pray, confirm whether this naming is by design or if it should be `SpawnVehicleOfficeChairLight` for consistency.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 58-58: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 63-63: wrong indentation: expected 4 but found 6

(indentation)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-04T12:49:34Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 1**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml (1)</summary><blockquote>

`77-77`: **ENCHANT THE EOF**: Add a newline character at the end of the file to satisfy POSIX conventions.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 77-77: wrong indentation: expected 4 but found 6

(indentation)

---

[error] 77-77: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between bab2636a73dcdee52a91d7c34e509791dd0347c6 and a07514aa4770926b6d0bc14be418cbb6f47a03c0.

</details>

<details>
<summary>⛔ Files ignored due to path filters (2)</summary>

* `Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png` is excluded by `!**/*.png`
* `Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png` is excluded by `!**/*.png`

</details>

<details>
<summary>📒 Files selected for processing (2)</summary>

* `Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml` (2 hunks)
* `Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml</summary>

[warning] 49-49: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 58-58: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 63-63: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 72-72: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 77-77: wrong indentation: expected 4 but found 6

(indentation)

---

[error] 77-77: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (4)</summary><blockquote>

<details>
<summary>Resources/Textures/Objects/Vehicles/chairs.rsi/meta.json (1)</summary>

`1-15`: **HARK! Well-formed JSON metadata**: The structure defining `version`, `size`, and texture `states` is sound and aligns perfectly with the `chairs.rsi` sprites used by the spawners.

</details>
<details>
<summary>Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml (3)</summary>

`4-5`: **LO! New SPDX lines appended correctly**: The contributions by GoobBot and Thesia are properly credited in keeping with the existing SPDX header.

---

`51-63`: **BEHOLD! Office chair Spawner Light is well-crafted**: The `Sprite` component layers refer to `chairs.rsi` with the `white-icon` state, and the `ConditionalSpawner` rightly summons `ChairOfficeLight`.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 58-58: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 63-63: wrong indentation: expected 4 but found 6

(indentation)

</details>

</details>

---

`49-49`: **CAST OFF LINT WARNINGS**: The 6-space indentation for list items under `layers` and `prototypes` matches the existing style in this file. These YAMLlint hints are false positives and may be ignored. 


Also applies to: 58-58, 63-63, 72-72, 77-77

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 49-49: wrong indentation: expected 4 but found 6

(indentation)

</details>

</details>

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-04T12:55:28Z
user: login: BombasterDS2
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-08T11:35:10Z
user: login: BombasterDS2
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-08T11:35:48Z
user: login: coderabbitai[bot]
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-08T11:38:45Z
user: login: SX-7
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-08T13:44:30Z

Review comments:
diff_hunk: @@ -44,4 +46,32 @@
         state: keys
   - type: ConditionalSpawner
     prototypes:
-      - VehicleJanicart
\ No newline at end of file
+      - VehicleJanicart
+
+- type: entity
+  name: Office chair Spawner Light
+  id: SpawnOfficeChairLight
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: white-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeLight
+
+- type: entity
+  name: Office chair Spawner Dark
+  id: SpawnOfficeChairDarnk
path: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**Typo in Office chair Spawner Dark ID**  
The incantation `SpawnOfficeChairDarnk` is misspelled, leading to a potential summoning failure. Correct it thus:  
```diff
- id: SpawnOfficeChairDarnk
+ id: SpawnOfficeChairDark
```  



<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

`````suggestion
  id: SpawnOfficeChairDark
`````

</details>

<!-- suggestion_end -->

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml at line 67, the ID 'SpawnOfficeChairDarnk' contains a typo. Correct the spelling from 'Darnk' to 'Dark' to fix the summoning failure issue.
```

</details>

<!-- This is an auto-generated reply by CodeRabbit -->

✅ Addressed in commit 4e66f21

<!-- This is an auto-generated comment by CodeRabbit -->
created_at: 2025-05-04T12:49:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -44,4 +46,32 @@
         state: keys
   - type: ConditionalSpawner
     prototypes:
-      - VehicleJanicart
\ No newline at end of file
+      - VehicleJanicart
+
+- type: entity
+  name: Office chair Spawner Light
+  id: SpawnOfficeChairLight
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: white-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeLight
+
+- type: entity
+  name: Office chair Spawner Dark
+  id: SpawnOfficeChairDarnk
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: dark-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeDark
path: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**O MISFORTUNE! Typo in Office chair Spawner Dark ID**: The `id` is written as `SpawnOfficeChairDarnk`—the “rn” is reversed. It should read `SpawnOfficeChairDark` to ensure the spawner functions as intended.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 YAMLlint (1.35.1)</summary>

[warning] 72-72: wrong indentation: expected 4 but found 6

(indentation)

---

[warning] 77-77: wrong indentation: expected 4 but found 6

(indentation)

---

[error] 77-77: no new line character at the end of file

(new-line-at-end-of-file)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents (early access)</summary>

```
In Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml around lines 65 to 77, the id for the Office chair Spawner Dark is misspelled as SpawnOfficeChairDarnk. Correct the id value to SpawnOfficeChairDark by swapping the misplaced characters to fix the typo.
```

</details>

<!-- This is an auto-generated comment by CodeRabbit -->

✅ Addressed in commit 4e66f21
created_at: 2025-05-04T12:55:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -44,4 +46,32 @@
         state: keys
   - type: ConditionalSpawner
     prototypes:
-      - VehicleJanicart
\ No newline at end of file
+      - VehicleJanicart
+
+- type: entity
+  name: Office chair Spawner Light
+  id: SpawnOfficeChairLight
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: white-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeLight
+
+- type: entity
+  name: Office chair Spawner Dark
+  id: SpawnOfficeChairDarnk
path: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
user: login: BombasterDS2
body: Use lowercase letters in entity names
created_at: 2025-05-08T11:35:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -44,4 +46,32 @@
         state: keys
   - type: ConditionalSpawner
     prototypes:
-      - VehicleJanicart
\ No newline at end of file
+      - VehicleJanicart
+
+- type: entity
+  name: Office chair Spawner Light
+  id: SpawnOfficeChairLight
+  parent: MarkerBase
+  components:
+  - type: Sprite
+    layers:
+      - state: green
+      - sprite: Objects/Vehicles/chairs.rsi
+        state: white-icon
+  - type: ConditionalSpawner
+    prototypes:
+      - ChairOfficeLight
+
+- type: entity
+  name: Office chair Spawner Dark
+  id: SpawnOfficeChairDarnk
path: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml
user: login: coderabbitai[bot]
body: <details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Let's examine some entity definitions to check the naming convention
echo "Checking for entity name patterns in the codebase..."
rg "- type: entity\n  name:" -A 1 --multiline | head -n 20
```

Length of output: 580

---

🏁 Script executed:
```
#!/bin/bash
# Let's check entity naming patterns using a simpler approach
echo "Checking for entity name patterns in YAML files..."
rg "name: " --type yaml | grep -v "component" | head -20
```

Length of output: 1174

---

🏁 Script executed:
```
#!/bin/bash
# Let's look at entity definitions in prototype files
echo "Checking entity naming patterns in prototype files..."
# Look for entity definitions and show the name field
rg -A 2 "- type: entity" Resources/Prototypes/ | grep "name:" | head -20
```

Length of output: 594

---

🏁 Script executed:
```
#!/bin/bash
# Find some prototype files and check their content
echo "Looking for prototype files..."
fd "\.yml$" Resources/Prototypes/ | head -5

echo "\nExamining sample prototype file content..."
cat $(fd "\.yml$" Resources/Prototypes/ | head -1)
```

Length of output: 5760

---

🏁 Script executed:
```
#!/bin/bash
# Find spawner-related files similar to the one being modified
echo "Looking for spawner files..."
fd "Spawners" Resources/Prototypes/

echo "\nExamining a few entity definitions from spawner files..."
cat $(fd "Spawners" Resources/Prototypes/ | head -1) | head -30
```

Length of output: 694

---

🏁 Script executed:
```
#!/bin/bash
# Find spawner YAML files
echo "Looking for spawner YAML files..."
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -3

echo "\nExamining content of a spawner file..."
cat $(fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -1)
```

Length of output: 1022

---

🏁 Script executed:
```
#!/bin/bash
# Check several spawner files to confirm naming convention
echo "Examining more spawner entities to confirm naming convention..."

echo "\nExample 1:"
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -5 | xargs grep -l "type: entity" | head -1 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nExample 2:"
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -10 | xargs grep -l "type: entity" | head -1 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nExample 3:"
fd "vehicles.yml" Resources/Prototypes/ | xargs grep -A 3 "type: entity" | grep "name:" | head -5
```

Length of output: 1188

---

🏁 Script executed:
```
#!/bin/bash
# Check more Goobstation-specific entity definitions
echo "Examining other Goobstation-specific entity definitions..."

echo "\nSample of Goobstation entities:"
fd "\.yml$" Resources/Prototypes/_Goobstation/ | head -5 | xargs grep -l "type: entity" | head -3 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nStandard repository entity examples for comparison:"
fd "\.yml$" Resources/Prototypes/Entities/ | grep -v "_Goobstation" | head -5 | xargs grep -l "type: entity" | head -3 | xargs grep -A 3 "type: entity" | grep "name:"
```

Length of output: 6720

---



</details>

@BombasterDS2 I SHALL ALTER THE NAMING CONVENTION AS THOU DOTH COMMAND! THE ENTITIES MUST FOLLOW THE LOWERCASE NAMING CONVENTIONS OF THE STANDARD REPOSITORY!

```diff
-  name: Office chair Spawner Light
+  name: office chair spawner light
```

```diff
-  name: Office chair Spawner Dark
-  id: SpawnOfficeChairDarnk
+  name: office chair spawner dark
+  id: SpawnOfficeChairDark
```

I HAVE OBSERVED THAT THE STANDARD REPOSITORY USETH LOWERCASE ENTITY NAMES, WHILE SOME GOOBSTATION-SPECIFIC ENTITIES PREFER THE TITLE CASE. THY WISDOM TO FOLLOW THE STANDARD PATTERN IS MOST SAGE!

FURTHERMORE, I SHALL CORRECT THE ANCIENT TYPO IN THE CHAIR ID FROM "DARNK" TO "DARK" LEST THE SUMMONING SPELL FAILETH!

---

<details>
<summary>✏️ Learnings added</summary>

```
Learnt from: BombasterDS2
PR: Goob-Station/Goob-Station#2622
File: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml:67-67
Timestamp: 2025-05-08T11:38:44.612Z
Learning: Entity names in the codebase should use lowercase letters (e.g., "office chair spawner light" instead of "Office chair Spawner Light") to follow the standard repository convention.
```

> Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure [review instructions](https://docs.coderabbit.ai/guides/review-instructions). You can manage existing learnings in the [app](https://app.coderabbit.ai/learnings).

</details>




<!-- <agentComponentType>chat-answer</agentComponentType> -->

<!-- <rawResChunk><answer><details>
<summary>🧩 Analysis chain</summary>

🏁 Script executed:
```
#!/bin/bash
# Let's examine some entity definitions to check the naming convention
echo "Checking for entity name patterns in the codebase..."
rg "- type: entity\n  name:" -A 1 --multiline | head -n 20
```

Length of output: 580

---

🏁 Script executed:
```
#!/bin/bash
# Let's check entity naming patterns using a simpler approach
echo "Checking for entity name patterns in YAML files..."
rg "name: " --type yaml | grep -v "component" | head -20
```

Length of output: 1174

---

🏁 Script executed:
```
#!/bin/bash
# Let's look at entity definitions in prototype files
echo "Checking entity naming patterns in prototype files..."
# Look for entity definitions and show the name field
rg -A 2 "- type: entity" Resources/Prototypes/ | grep "name:" | head -20
```

Length of output: 594

---

🏁 Script executed:
```
#!/bin/bash
# Find some prototype files and check their content
echo "Looking for prototype files..."
fd "\.yml$" Resources/Prototypes/ | head -5

echo "\nExamining sample prototype file content..."
cat $(fd "\.yml$" Resources/Prototypes/ | head -1)
```

Length of output: 5760

---

🏁 Script executed:
```
#!/bin/bash
# Find spawner-related files similar to the one being modified
echo "Looking for spawner files..."
fd "Spawners" Resources/Prototypes/

echo "\nExamining a few entity definitions from spawner files..."
cat $(fd "Spawners" Resources/Prototypes/ | head -1) | head -30
```

Length of output: 694

---

🏁 Script executed:
```
#!/bin/bash
# Find spawner YAML files
echo "Looking for spawner YAML files..."
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -3

echo "\nExamining content of a spawner file..."
cat $(fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -1)
```

Length of output: 1022

---

🏁 Script executed:
```
#!/bin/bash
# Check several spawner files to confirm naming convention
echo "Examining more spawner entities to confirm naming convention..."

echo "\nExample 1:"
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -5 | xargs grep -l "type: entity" | head -1 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nExample 2:"
fd "\.yml$" Resources/Prototypes/Entities/Markers/Spawners/ | head -10 | xargs grep -l "type: entity" | head -1 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nExample 3:"
fd "vehicles.yml" Resources/Prototypes/ | xargs grep -A 3 "type: entity" | grep "name:" | head -5
```

Length of output: 1188

---

🏁 Script executed:
```
#!/bin/bash
# Check more Goobstation-specific entity definitions
echo "Examining other Goobstation-specific entity definitions..."

echo "\nSample of Goobstation entities:"
fd "\.yml$" Resources/Prototypes/_Goobstation/ | head -5 | xargs grep -l "type: entity" | head -3 | xargs grep -A 3 "type: entity" | grep "name:"

echo "\nStandard repository entity examples for comparison:"
fd "\.yml$" Resources/Prototypes/Entities/ | grep -v "_Goobstation" | head -5 | xargs grep -l "type: entity" | head -3 | xargs grep -A 3 "type: entity" | grep "name:"
```

Length of output: 6720

---



</details>

@BombasterDS2 I SHALL ALTER THE NAMING CONVENTION AS THOU DOTH COMMAND! THE ENTITIES MUST FOLLOW THE LOWERCASE NAMING CONVENTIONS OF THE STANDARD REPOSITORY!

```diff
-  name: Office chair Spawner Light
+  name: office chair spawner light
```

```diff
-  name: Office chair Spawner Dark
-  id: SpawnOfficeChairDarnk
+  name: office chair spawner dark
+  id: SpawnOfficeChairDark
```

I HAVE OBSERVED THAT THE STANDARD REPOSITORY USETH LOWERCASE ENTITY NAMES, WHILE SOME GOOBSTATION-SPECIFIC ENTITIES PREFER THE TITLE CASE. THY WISDOM TO FOLLOW THE STANDARD PATTERN IS MOST SAGE!

FURTHERMORE, I SHALL CORRECT THE ANCIENT TYPO IN THE CHAIR ID FROM "DARNK" TO "DARK" LEST THE SUMMONING SPELL FAILETH!

---

<details>
<summary>✏️ Learnings added</summary>

```
Learnt from: BombasterDS2
PR: Goob-Station/Goob-Station#2622
File: Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/vehicles.yml:67-67
Timestamp: 2025-05-08T11:38:44.612Z
Learning: Entity names in the codebase should use lowercase letters (e.g., "office chair spawner light" instead of "Office chair Spawner Light") to follow the standard repository convention.
```

> Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure [review instructions](https://docs.coderabbit.ai/guides/review-instructions). You can manage existing learnings in the [app](https://app.coderabbit.ai/learnings).

</details>

</answer></rawResChunk> -->

<!-- This is an auto-generated reply by CodeRabbit -->
created_at: 2025-05-08T11:38:45Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-05-04T12:37:45Z
body: RSI Diff Bot; head commit 39bc2d1017e7f3213b9d9c149f756bd8aefe33af merging into edcdca924e195ff3359f9747ce4223f493809459
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

<details><summary>Resources/Textures/Objects/Vehicles/chairs.rsi</summary>
<p>

| State | Old | New | Status
| --- | --- | --- | --- |
| dark-icon | ![]() | ![](https://raw.githubusercontent.com/Thesia000/Goob-Station-Research_center-Map/39bc2d1017e7f3213b9d9c149f756bd8aefe33af/Resources/Textures/Objects/Vehicles/chairs.rsi/dark-icon.png) | Added
| white-icon | ![]() | ![](https://raw.githubusercontent.com/Thesia000/Goob-Station-Research_center-Map/39bc2d1017e7f3213b9d9c149f756bd8aefe33af/Resources/Textures/Objects/Vehicles/chairs.rsi/white-icon.png) | Added


</p>
</details>
Edit: diff updated after 39bc2d1017e7f3213b9d9c149f756bd8aefe33af
author_association: CONTRIBUTOR
user: login: coderabbitai[bot]
created_at: 2025-05-04T12:43:47Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: failure by coderabbit.ai -->

> [!CAUTION]
> ## Review failed
> 
> The head commit changed during the review from 4e66f219d338871152591aead48407b08a914df6 to b74e125cd9cd58f4940f3e63dbd81acf00aa1115.

<!-- end of auto-generated comment: failure by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough

HARK! By the ancient runes of configuration, two new conjurations have been inscribed within the scrolls of `vehicles.yml`: the "Office chair Spawner Light" and the "Office chair Spawner Dark." Each spawner entity doth inherit the mystical properties of `MarkerBase`, and is imbued with a `Sprite` component, layered with a verdant state and a sigil from `chairs.rsi`, each bearing its own unique visage—one in white, the other in shadow. Both spawners are further enchanted with a `ConditionalSpawner` component, which shall summon forth the respective chair prototypes, `ChairOfficeLight` and `ChairOfficeDark`, upon activation. In addition, the sacred file header hath been fortified with new copyright incantations.

Elsewhere, in the realm of textures, a fresh `meta.json` hath been conjured within `chairs.rsi`, declaring the version and texture dimensions, and naming the two states: "dark-icon" and "white-icon."

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant MapLoader as Map Loader
    participant Spawner as Office Chair Spawner (Light/Dark)
    participant Proto as Chair Prototype (Light/Dark)

    MapLoader->>Spawner: Place spawner entity on map
    Spawner->>Spawner: Display sprite (green + chair icon)
    MapLoader->>Spawner: Trigger spawn event
    Spawner->>Proto: Spawn ChairOfficeLight or ChairOfficeDark
```

<!-- walkthrough_end -->
<!-- internal state start -->


<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEYDEZyAAUASpETZWaCrKNxU3bABsvkCiQBHbGlcABpIcVwvOkgAIgBhWG0+RG40AHdyCkRY9Ax6BwFmdRp6OUhsREoYWGl4NAAGJvRkW0gMRwFqgCYANm7u/ixcWsgAcXxBMABlXGp4fCx/bnxEdXwXcPgMXApFbAZpdEYk+BS0zOqCCNGiNDYNGpJIZnxxCXnFyC6EfJvUNC0WjqBZYVAjagvNDcbjbIj8ABmCPghxOyWQ6TQyF4JAkC0qXnk8GYK0QawE0XCmHoI2eDFO5wyWUgCLQDHgXnU1COIw8e0OZMecGeNHpGBRaF89MwpGxFGJzg5RIwEnwXikL0U8GRDE+GGQ10QLGeAE0AIIAWQAMiyOdIhbV/OgnRh8C86PV0Lg5vS2DtkBtvv40ABrOFojCy9pvGLbG7PJSIBjy7jiRYOulJSMkLz4eHsFwswO81p2RBzGgGpK4Y7Ss72C7MpIyEhkdBAugZhRKFDITmHfUxbD5K6jM1jKxWsAAZg0DTAGzAXm5fH7ZCq4XS6lgL284m40QU3Fk8qIsBrsDVSmy6AYIdd6WitFItC7bSYGGRFGYyEBjrIqLXLSPB7CIYgAOTYt4vj+EEIR5PQ0rZrm8JENg8BKJy5CIBoRj6MY4BQGQ9D4AiOAEMQZDKKUCisOwXC8PwwiiO8RzlEw14qGomjaLoYCGCYUDuMgAJYGgeCEKQWTcohLB+pwfgZPYjjMM48jsYoyiqOoWg6PhBGmAYNjSPg2AUAKAD0Vh7AQuCyNw0gWQA+hMgjlnqFkAKI7CCjkWs4IaUIgFnTI2QUWVICAMNEOGyMwXgcAYsTJQYFiQGaACSlHSTRDhOIWpERrKbijEhUaAjS6RuuQ6SQOw6jyKkTJBREbrAea1oKJ+8BoVQaYYFwsQAPJIiimbJJAoXNXwVo9eeuTUnEI06uN9ZTZcfAACIBRouSeWyO41XVPl2SgGCOuoyAInszCQAABv5FCBRQABCWIkHdCFndF2CJscd2hfKNCfUwJKLOwkBbiMERVZAy6yEFXBoJARD+G27k0F9yOpEDzz+AilAAeGd1DcxYjBQAaiQUUxRZdbZBo2TwJ9UM7sC5bbGI9gVkcAAUd3pAgNBgCiiyfQixajJyZ41h88qYDWi13bQAUix+4uSwmAWQHL9Q7AAlI8L1vDu9XiEckpGt9Xi/c8yN3fEizAv1krrVkIMsCs5A7DckJNZkcpvG89lHBg9wxA7DLLWNs0y59SuJMk0eHNtT2ff4qQsZIOayI8ZpAiCiySoS4S4LDR3TFYm0ABpHiec01lhRzpIT6AwsRMRAaMyKHrUgKULhqWWGaXg0H1oIGm1oxKNFzh6gGZEkAAHisFA0YGngUiix2RPA0h4elHb0GbshcCTo2ovTk1hTNDcs9ukAZZt91u8nJCJ2csfnp9cZ3cZRpmUstZIOdkHLBRcpMAQGNQReROnvYKj1nrBTduFSKKIYoaDil4O6BgoD5yUMfE6p97pvzRGtG+kBU4hnvtDJ+L9Gxvw/hQVOGBqFnXuv/Uy5lHLANsiHcBrkoEVhgd5XefkArhRQdkCK1N0H2iwTg5KsQ8KGU4YAxy0Bl64DMo5UmYFcCU1kdFRy9McJMwsmwOYGghBGgGklFKaVMrZWojEPKqkCpkTKvvAwZp2gkFqgAKWmENAAcu6OYKs5i2kPBLPgaDjFkL4DQJe2iM6QGbN8VsYkj5eg4SZdRwVNEpJ0cFPRLFDE0xMQyMxawLEkCsTYsWDpUA9wTCQZE2F4w6yCqCFokAACMX1M7smRDyUYyTUnPDWAALztsgacgxygLJ4PAJeOYcKP0Vl4K2M9lxpLLm1LROjubcmQGHNg9BYgqyemrRYC0/ixEFuoEgtyMChFyDiPKKhCR+BIJ8+qkZIDAiRITH2eIHCSh1oqBWC8ulXwmSUwe5hh6j2ohPVqXTdlz36rC5eq9158E3v2HevlEAHxCeDSAvNkZHUsYCagyMgmhOic8TEv4j4AG5ox1RXhsAlPBsBbwYN2Z4Zt4GQ1bq8YFe9aCG3sco3B/EDJET+IVcSFEpIuNknRHYXAqC1TcWpb48gOJaW4rpPiAlCK0WKLgJyGFEBOX8HifxdAnLuTXpa5V6AGgAHYACs/SAAsaA0BBt9b6hoABOPoAhei0AaAIBgwauhBv6QADgYKoXoCJw2NGnAwBoXqDCCRteoe1tBHXOr3i3WgTliKWqAA== -->

<!-- internal state end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=Goob-Station/Goob-Station&utm_content=2622):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: CONTRIBUTOR