Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions Resources/Prototypes/_Corvax/Decals/crayons.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Cyrillic letters
- type: decal # Б
id: cyr_b
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_b

- type: decal # Г
id: cyr_g
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_g

- type: decal # Д
id: cyr_d
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_d

- type: decal # Ж
id: cyr_zh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_zh

- type: decal # З
id: cyr_z
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_z

- type: decal # И
id: cyr_i
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_i

- type: decal # Л
id: cyr_l
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_l

- type: decal # П
id: cyr_p
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_p

- type: decal # Ф
id: cyr_f
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_f

- type: decal # Ц
id: cyr_c
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_c

- type: decal # Ч
id: cyr_ch
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ch

- type: decal # Ш
id: cyr_sh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_sh

- type: decal # Щ
id: cyr_shh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_shh

- type: decal # Ъ
id: cyr_hard_sign
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_hard_sign

- type: decal # Ы
id: cyr_y
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_y

- type: decal # Ь
id: cyr_soft_sign
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_soft_sign

- type: decal # Э
id: cyr_eh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_eh

- type: decal # Ю
id: cyr_yu
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_yu

- type: decal # Я
id: cyr_ya
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ya
Comment on lines +2 to +133
Copy link

@coderabbitai coderabbitai bot Mar 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Match base crayon behavior fields on all new Cyrillic decals.

These entries omit defaultCleanable, defaultCustomColor, and defaultSnap, while existing crayon decals define them. That can cause behavior drift (notably colorization/cleanup/snap handling) for Cyrillic decals.

💡 Suggested patch pattern (apply to each Cyrillic decal entry)
 - type: decal # Б
   id: cyr_b
   tags: ["crayon", "crayon-2-alphanum"]
+  defaultCleanable: true
+  defaultCustomColor: true
+  defaultSnap: false
   sprite:
     sprite: _Corvax/Effects/crayondecals.rsi
     state: cyr_b
📝 Committable suggestion

‼️ 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.

Suggested change
- type: decal # Б
id: cyr_b
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_b
- type: decal # Г
id: cyr_g
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_g
- type: decal # Д
id: cyr_d
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_d
- type: decal # Ж
id: cyr_zh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_zh
- type: decal # З
id: cyr_z
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_z
- type: decal # И
id: cyr_i
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_i
- type: decal # Л
id: cyr_l
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_l
- type: decal # П
id: cyr_p
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_p
- type: decal # Ф
id: cyr_f
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_f
- type: decal # Ц
id: cyr_c
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_c
- type: decal # Ч
id: cyr_ch
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ch
- type: decal # Ш
id: cyr_sh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_sh
- type: decal # Щ
id: cyr_shh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_shh
- type: decal # Ъ
id: cyr_hard_sign
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_hard_sign
- type: decal # Ы
id: cyr_y
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_y
- type: decal # Ь
id: cyr_soft_sign
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_soft_sign
- type: decal # Э
id: cyr_eh
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_eh
- type: decal # Ю
id: cyr_yu
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_yu
- type: decal # Я
id: cyr_ya
tags: ["crayon", "crayon-2-alphanum"]
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ya
- type: decal # Б
id: cyr_b
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_b
- type: decal # Г
id: cyr_g
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_g
- type: decal # Д
id: cyr_d
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_d
- type: decal # Ж
id: cyr_zh
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_zh
- type: decal # З
id: cyr_z
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_z
- type: decal # И
id: cyr_i
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_i
- type: decal # Л
id: cyr_l
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_l
- type: decal # П
id: cyr_p
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_p
- type: decal # Ф
id: cyr_f
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_f
- type: decal # Ц
id: cyr_c
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_c
- type: decal # Ч
id: cyr_ch
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ch
- type: decal # Ш
id: cyr_sh
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_sh
- type: decal # Щ
id: cyr_shh
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_shh
- type: decal # Ъ
id: cyr_hard_sign
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_hard_sign
- type: decal # Ы
id: cyr_y
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_y
- type: decal # Ь
id: cyr_soft_sign
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_soft_sign
- type: decal # Э
id: cyr_eh
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_eh
- type: decal # Ю
id: cyr_yu
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_yu
- type: decal # Я
id: cyr_ya
tags: ["crayon", "crayon-2-alphanum"]
defaultCleanable: true
defaultCustomColor: true
defaultSnap: false
sprite:
sprite: _Corvax/Effects/crayondecals.rsi
state: cyr_ya
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_Corvax/Decals/crayons.yml` around lines 2 - 133, The
Cyrillic decal entries (ids like cyr_b, cyr_g, cyr_d, cyr_zh, cyr_z, cyr_i,
cyr_l, cyr_p, cyr_f, cyr_c, cyr_ch, cyr_sh, cyr_shh, cyr_hard_sign, cyr_y,
cyr_soft_sign, cyr_eh, cyr_yu, cyr_ya) are missing base crayon behavior fields;
add the same default fields used by existing crayon decals—defaultCleanable,
defaultCustomColor, and defaultSnap—with the same values as the other crayon
entries so these decals inherit correct colorization, cleanup, and snap behavior
(update each decal block to include defaultCleanable: true/false,
defaultCustomColor: true/false, defaultSnap: true/false matching the base crayon
decal pattern).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

хуйню не неси, это порт блять

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description image shows a dark-themed character picker dialog titled "Мелок" (Chalk) displaying a grid of characters including Cyrillic letters, Latin letters, and digits — confirming the visual result of these crayon decal additions.

Let me verify the upstream commit to see whether the original source also omits those fields.

@cryals, понял, спасибо за пояснение — раз это прямой порт из апстрима (fdf42df), добавлять поля, которых нет в оригинале, не нужно. Снимаю замечание.


✏️ Learnings added
Learnt from: cryals
Repo: ss14-art/open-space PR: 8
File: Resources/Prototypes/_Corvax/Decals/crayons.yml:2-133
Timestamp: 2026-03-17T09:20:40.880Z
Learning: In the ss14-art/open-space repository, PRs that port content from the upstream space-syndicate/space-station-14 repository should not have extra fields or modifications added that are not present in the upstream source. Faithful ports should be left as-is to match the original.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
68 changes: 68 additions & 0 deletions Resources/Textures/_Corvax/Effects/crayondecals.rsi/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC0-1.0",
"copyright": "discord:temporary-ga#3856",
"states": [
{
"name": "cyr_b"
},
{
"name": "cyr_c"
},
{
"name": "cyr_ch"
},
{
"name": "cyr_d"
},
{
"name": "cyr_eh"
},
{
"name": "cyr_f"
},
{
"name": "cyr_g"
},
{
"name": "cyr_hard_sign"
},
{
"name": "cyr_i"
},
{
"name": "cyr_l"
},
{
"name": "cyr_p"
},
{
"name": "cyr_sh"
},
{
"name": "cyr_shh"
},
{
"name": "cyr_soft_sign"
},
{
"name": "cyr_y"
},
{
"name": "cyr_ya"
},
{
"name": "cyr_yu"
},
{
"name": "cyr_z"
},
{
"name": "cyr_zh"
}
]
}
Loading