Conversation
|
RSI Diff Bot; head commit b7087c8 merging into 61021c8 Resources/Textures/_Corvax/Effects/crayondecals.rsi
|
📝 WalkthroughWalkthroughTwo new resource files are added to support Cyrillic letter decals for the crayons system. The YAML file defines 21+ decal prototypes mapping Cyrillic letters to sprite states, while the JSON metadata file specifies the texture atlas configuration (32×32 sprites, CC0-1.0 license) containing the corresponding glyph imagery. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Resources/Prototypes/_Corvax/Decals/crayons.yml`:
- Around line 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).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 71bd342a-9af0-406f-902d-79c2f7464b5f
⛔ Files ignored due to path filters (19)
Resources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_b.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_c.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_ch.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_d.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_eh.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_f.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_g.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_hard_sign.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_i.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_l.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_p.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_sh.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_shh.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_soft_sign.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_y.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_ya.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_yu.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_z.pngis excluded by!**/*.pngResources/Textures/_Corvax/Effects/crayondecals.rsi/cyr_zh.pngis excluded by!**/*.png
📒 Files selected for processing (2)
Resources/Prototypes/_Corvax/Decals/crayons.ymlResources/Textures/_Corvax/Effects/crayondecals.rsi/meta.json
| - 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 |
There was a problem hiding this comment.
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.
| - 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).
There was a problem hiding this comment.
хуйню не неси, это порт блять
There was a problem hiding this comment.
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.



















http://github.com/space-syndicate/space-station-14/commit/fdf42dfcb2dbe94a8022e91de5d22fda3c505cef
Changelog
🆑 AL-S
Summary by CodeRabbit