[Tweak] TG13 Floor Tiles & Decals Overhaul - #180
Conversation
|
RSI Diff Bot; head commit 4825661 merging into 5eff5fe Resources/Textures/Decals/Overlays/greyscale.rsi
Resources/Textures/Decals/bricktile.rsi
Resources/Textures/Decals/minitile.rsi
|
Главное изменениеОбновлены ресурсные данные для TG13-стиля плиток и декалей. Resources / localizationЗатронуты только RSI meta и атрибуции ресурсов. Validation / riskRuntime-проверки и тесты не указаны. WalkthroughОбновлены версии метаданных двух декалей. Дополнены сведения об авторстве и респритах для декалей и наборов плиток. Записи стальных плиток разделены, а четыре записи ксеноплиток удалены. ChangesМетаданные и авторство текстур
Estimated code review effort: 1 (Trivial) | ~5 минут Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Resources/Textures/Tiles/attributions.yml (1)
142-143: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winВосстановите атрибьюцию для сохранённых PNG.
В ресурсах остались
Resources/Textures/Tiles/xeno_steel_corner.png,Resources/Textures/Tiles/xeno_steel.png,Resources/Textures/Tiles/xeno_flooring.png,Resources/Textures/Tiles/xeno_maint.pngиResources/Textures/Tiles/dark_squiggly.png. Если хотя бы один из них используется, запись вResources/Textures/Tiles/attributions.ymlне удаляйте; иначе файлы останутся без обязательной атрибуции.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Resources/Textures/Tiles/attributions.yml` around lines 142 - 143, Restore the attribution entry in attributions.yml for the retained xeno_steel_corner.png, xeno_steel.png, xeno_flooring.png, xeno_maint.png, and dark_squiggly.png resources, preserving it whenever any of these files remains used.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Resources/Textures/Decals/bricktile.rsi/meta.json`:
- Around line 2-4: В обоих RSI-файлах —
Resources/Textures/Decals/bricktile.rsi/meta.json (строки 2-4) и
Resources/Textures/Decals/minitile.rsi/meta.json (строки 2-4) — замените
значение version с 3 на 1, оставив остальные поля без изменений.
In `@Resources/Textures/Tiles/attributions.yml`:
- Around line 59-61: Remove steel_dirty.png from the older attribution entry in
the YAML file, leaving it only in the newer attribution entry so CreditsWindow
does not display duplicate credits.
- Around line 21-22: Согласуйте поля copyright и source для стальных плиток в
записи атрибуции: source должен содержать ссылки на оба указанных источника,
либо удалите из copyright источник, которого нет в source. Сохраните единое
отображение согласованных источников в CreditsWindow.
---
Outside diff comments:
In `@Resources/Textures/Tiles/attributions.yml`:
- Around line 142-143: Restore the attribution entry in attributions.yml for the
retained xeno_steel_corner.png, xeno_steel.png, xeno_flooring.png,
xeno_maint.png, and dark_squiggly.png resources, preserving it whenever any of
these files remains used.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: cfe49410-8f9b-4e47-9fa6-99e35818d70d
⛔ Files ignored due to path filters (233)
Resources/Textures/Decals/Overlays/greyscale.rsi/brick_box.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/brick_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/checkerNESW.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/checkerNWSE.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/diagonal.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/diagonal_checker_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/diagonal_checker_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/fulltile_overlay.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/halftile_overlay.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/halftile_overlay_180.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/halftile_overlay_270.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/halftile_overlay_90.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/herringbone.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_box.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_checker_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_checker_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_diagonal.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_diagonal_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_diagonal_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/minitile_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/mono.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/offset.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/offset_checker_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/offset_checker_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement_checker_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement_checker_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement_vertical.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement_vertical_checker_a.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/pavement_vertical_checker_b.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/quartertile_overlay.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/quartertile_overlay_180.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/quartertile_overlay_270.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/quartertile_overlay_90.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/threequartertile_overlay.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/threequartertile_overlay_180.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/threequartertile_overlay_270.pngis excluded by!**/*.pngResources/Textures/Decals/Overlays/greyscale.rsi/threequartertile_overlay_90.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_box.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/dark_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_box.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/steel_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_box.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/bricktile.rsi/white_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_box.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/dark_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_box.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/steel_line_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_box.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_corner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_corner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_corner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_corner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_end_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_end_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_end_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_end_w.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_inner_ne.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_inner_nw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_inner_se.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_inner_sw.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_line_e.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_line_n.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_line_s.pngis excluded by!**/*.pngResources/Textures/Decals/minitile.rsi/white_line_w.pngis excluded by!**/*.pngResources/Textures/Tiles/Asteroid/asteroid_plating.pngis excluded by!**/*.pngResources/Textures/Tiles/arcadeblue2.pngis excluded by!**/*.pngResources/Textures/Tiles/bar.pngis excluded by!**/*.pngResources/Textures/Tiles/blue.pngis excluded by!**/*.pngResources/Textures/Tiles/cafeteria.pngis excluded by!**/*.pngResources/Textures/Tiles/checker_dark.pngis excluded by!**/*.pngResources/Textures/Tiles/clown.pngis excluded by!**/*.pngResources/Textures/Tiles/dark.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_diagonal.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_diagonal_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_herringbone.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_mono.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_offset.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_pavement.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_pavement_vertical.pngis excluded by!**/*.pngResources/Textures/Tiles/dark_plastic.pngis excluded by!**/*.pngResources/Textures/Tiles/elevator_shaft.pngis excluded by!**/*.pngResources/Textures/Tiles/freezer.pngis excluded by!**/*.pngResources/Textures/Tiles/glass.pngis excluded by!**/*.pngResources/Textures/Tiles/gold.pngis excluded by!**/*.pngResources/Textures/Tiles/hydro.pngis excluded by!**/*.pngResources/Textures/Tiles/kitchen.pngis excluded by!**/*.pngResources/Textures/Tiles/laundry.pngis excluded by!**/*.pngResources/Textures/Tiles/lime.pngis excluded by!**/*.pngResources/Textures/Tiles/mime.pngis excluded by!**/*.pngResources/Textures/Tiles/mining_floor.pngis excluded by!**/*.pngResources/Textures/Tiles/mining_floor_dark.pngis excluded by!**/*.pngResources/Textures/Tiles/mining_floor_light.pngis excluded by!**/*.pngResources/Textures/Tiles/mono.pngis excluded by!**/*.pngResources/Textures/Tiles/plastic.pngis excluded by!**/*.pngResources/Textures/Tiles/rglass.pngis excluded by!**/*.pngResources/Textures/Tiles/showroom.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttleblack.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttleblue.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttlegrey.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttleorange.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttlepurple.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttlered.pngis excluded by!**/*.pngResources/Textures/Tiles/shuttlewhite.pngis excluded by!**/*.pngResources/Textures/Tiles/steel.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_damaged.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_diagonal.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_diagonal_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_dirty.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_herringbone.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_mono.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_offset.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_pavement.pngis excluded by!**/*.pngResources/Textures/Tiles/steel_pavement_vertical.pngis excluded by!**/*.pngResources/Textures/Tiles/super_reinforced.pngis excluded by!**/*.pngResources/Textures/Tiles/white.pngis excluded by!**/*.pngResources/Textures/Tiles/white_diagonal.pngis excluded by!**/*.pngResources/Textures/Tiles/white_diagonal_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/white_herringbone.pngis excluded by!**/*.pngResources/Textures/Tiles/white_mini.pngis excluded by!**/*.pngResources/Textures/Tiles/white_mono.pngis excluded by!**/*.pngResources/Textures/Tiles/white_offset.pngis excluded by!**/*.pngResources/Textures/Tiles/white_pavement.pngis excluded by!**/*.pngResources/Textures/Tiles/white_pavement_vertical.pngis excluded by!**/*.pngResources/Textures/Tiles/wood.pngis excluded by!**/*.pngResources/Textures/Tiles/wood_broken.pngis excluded by!**/*.pngResources/Textures/Tiles/wood_large.pngis excluded by!**/*.pngResources/Textures/Tiles/wood_tile.pngis excluded by!**/*.pngResources/Textures/Tiles/xeno_steel_corner.pngis excluded by!**/*.png
📒 Files selected for processing (3)
Resources/Textures/Decals/bricktile.rsi/meta.jsonResources/Textures/Decals/minitile.rsi/meta.jsonResources/Textures/Tiles/attributions.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (6)
- GitHub Check: Test Packaging
- GitHub Check: YAML Linter
- GitHub Check: Validate RSIs
- GitHub Check: build (ubuntu-latest)
- GitHub Check: YAML map schema validator
- GitHub Check: build (ubuntu-latest)
🧰 Additional context used
📓 Path-based instructions (5)
Resources/**/*.{yml,ftl,json}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Resources/**/*.{yml,ftl,json}: Follow SS14 naming conventions when editing prototype, localization, and resource files
Follow SS14 upstream maintenance practices when editing resource files
Files:
Resources/Textures/Decals/bricktile.rsi/meta.jsonResources/Textures/Decals/minitile.rsi/meta.jsonResources/Textures/Tiles/attributions.yml
Resources/**/*.json
📄 CodeRabbit inference engine (AGENTS.md)
Keep RSI
meta.jsonordered asversion,license,copyright,size,stateswith 4-space indentation.
Files:
Resources/Textures/Decals/bricktile.rsi/meta.jsonResources/Textures/Decals/minitile.rsi/meta.json
⚙️ CodeRabbit configuration file
Resources/**/*.json: Review resource JSON files for path correctness and consistency.
For RSI meta.json files, check ordering, state/layout consistency, and whether referenced prototypes or visualizers still match the available states.
Files:
Resources/Textures/Decals/bricktile.rsi/meta.jsonResources/Textures/Decals/minitile.rsi/meta.json
Resources/**/*.yml
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Resources/**/*.yml: Follow SS14 ECS prototype patterns and conventions
Follow SS14 graphics generic visualizer appearance conventions and patterns
Resources/**/*.yml: Loadss14-naming-conventionsdocumentation for Resources work
Loadss14-ecs-prototypesdocumentation for Resources work
Loadss14-upstream-maintenancedocumentation for Resources work
Loadss14-prototypes-localedocumentation for Resources work
Loadss14-localization-stringsdocumentation for Resources work
Loadss14-sprite-overlays-shadersdocumentation when working with RSI metadata, textures, sprite layers, overlays, or shader resources
Validate YAML after editsRun
dotnet run --project Content.YAMLLinter/Content.YAMLLinter.csproj -c DebugOptto validate YAML and resource edits.
Files:
Resources/Textures/Tiles/attributions.yml
Resources/**/*.{yml,ftl}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 prototype locale integration rules and practices
Files:
Resources/Textures/Tiles/attributions.yml
**/*.{cs,xaml,yml,yaml}
📄 CodeRabbit inference engine (AGENTS.md)
If the task adds tests or you need to choose the right test layer, load skill
ss14-tests-authoring.
Files:
Resources/Textures/Tiles/attributions.yml
🧠 Learnings (3)
📚 Learning: 2026-07-26T02:48:44.443Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane PR: 136
File: Resources/Textures/Clothing/Back/Duffels/captain.rsi/meta.json:4-4
Timestamp: 2026-07-26T02:48:44.443Z
Learning: In `Resources/Textures/**/**/*.rsi/meta.json`, if the PR replaces sprite assets with sources that do not include the previous credit holders (e.g., the new sprites come from another upstream/source), do not keep attribution/author fields for contributors who made no contribution to the current assets. Update the attribution to reflect the actual authors/sources of the sprites currently referenced by the .rsi.
Applied to files:
Resources/Textures/Decals/bricktile.rsi/meta.jsonResources/Textures/Decals/minitile.rsi/meta.json
📚 Learning: 2026-07-07T17:55:50.395Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane-old PR: 101
File: Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs:192-194
Timestamp: 2026-07-07T17:55:50.395Z
Learning: When reviewing ArcaneSS14/arcane-old changes related to `MobState` thresholds/visuals/actions, treat the `Critical` enum value as requiring explicit mappings (it no longer implicitly behaves as an alias of `SoftCritical`). If any YAML prototype `thresholds:` (for `MobThresholdsComponent.Thresholds`) uses the bare `Critical` key (e.g., `MobThresholdsComponent.Thresholds: { Critical: ... }` for entities like `MobMouseCancer`), ensure the prototype (or referenced config) provides corresponding explicit `StateAlertDict` entries and any required `MobStateActions.actions` and `DamageStateVisuals.states` mappings for `Critical`. Otherwise, review should expect failures because the default `StateAlertDict` in `MobThresholdsComponent.cs` typically maps only `Alive`, `SoftCritical`, `HardCritical`, and `Dead`—not `Critical`.
Applied to files:
Resources/Textures/Tiles/attributions.yml
📚 Learning: 2026-07-28T15:44:38.498Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane PR: 152
File: Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml:69-72
Timestamp: 2026-07-28T15:44:38.498Z
Learning: В ArcaneSS14/arcane не выполняйте форматирующие перестановки полей (в т.ч. изменение порядка полей) в upstream-файлах: делайте это только если правка добавляет Arcane-специфичную сущность или напрямую требуется для функциональности. Иначе сохраняйте upstream-порядок полей, даже если он противоречит локальным рекомендациям, чтобы не создавать лишние diff и конфликты при upstream-синхронизации. Исключение: допустимо переупорядочивание/форматирование в `Resources/Prototypes/_Arcane` (и только там).
Applied to files:
Resources/Textures/Tiles/attributions.yml
🔇 Additional comments (2)
Resources/Textures/Tiles/attributions.yml (2)
11-11: LGTM!Also applies to: 41-41, 51-51, 131-131
59-61: 📐 Maintainability & Code QualityЗапустите обязательную проверку YAML.
После исправлений выполните:
dotnet run --project Content.YAMLLinter/Content.YAMLLinter.csproj -c DebugOptAs per coding guidelines: файлы
Resources/**/*.ymlнеобходимо валидировать этим линтером.
|
@coderabbitai Я имею такие спрайты для lattice.png, чтобы можно было отображать подключение к любой стороне, но как это тут бы реализовать, как и сделано у стен, но теперь с покрытием? Само собой сообщи требуемый порядок текстур в файле спрайта и для каких сторон. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== lattice files =='
fd -HI -i 'lattice' . | sort
printf '%s\n' '== lattice references =='
rg -n -i -C 3 '\blattice\b|lattice\.png|lattice\.rsi' . \
-g '!**/.git/**' -g '!**/bin/**' -g '!**/obj/**' || true
printf '%s\n' '== wall auto-tiling / adjacency references =='
rg -n -i -C 3 'auto.?tile|autotile|adjacen|neighbor|connect(ion|ed)?|edge mask|bitmask|Cardinal' \
Content.Server Content.Shared Resources 2>/dev/null || true
printf '%s\n' '== candidate sprite metadata =='
fd -HI '(meta\.json|.*\.yml|.*\.yaml)' Resources \
-x sh -c 'rg -l -i "lattice|wall" "$1" 2>/dev/null || true' sh {} \
| sort -uLength of output: 193356 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== lattice/girder/grille prototype declarations =='
rg -n -i -C 18 '(^\s*id:\s*.*(lattice|girder|grille)|^\s*-\s*type:\s*IconSmooth|^\s*mode:\s*CardinalFlags|^\s*base:)' \
Resources/Prototypes/Entities/Structures/Walls/girders.yml \
Resources/Prototypes/Entities/Structures/Walls/grille.yml \
Resources/Prototypes/Entities/Structures/Walls/walls.yml \
Resources/Prototypes/Entities/Structures/Walls/railing.yml 2>/dev/null || true
printf '%s\n' '== exact resource candidates =='
fd -HI -i 'lattice|girder|grille' Resources/Textures | sort
printf '%s\n' '== IconSmooth / CardinalFlags source definitions =='
rg -n -C 12 'class\s+IconSmooth|IconSmoothComponent|CardinalFlags|enum\s+IconSmooth' \
Content.Shared Content.Server Content.Client Robust.Shared 2>/dev/null || true
printf '%s\n' '== lattice specific references, restricted to source and prototypes =='
rg -n -i -C 8 '\blattice\b' \
Content.Shared Content.Server Content.Client \
Resources/Prototypes/Entities/Structures Resources/Prototypes/Recipes 2>/dev/null || trueLength of output: 201149 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== CardinalConnectDirs enum and cardinal neighbour order =='
rg -n -A 35 -B 8 'enum\s+CardinalConnectDirs|CalculateNewSpriteCardinal' \
Content.Client/IconSmoothing/IconSmoothSystem.cs \
Content.Client/IconSmoothing/IconSmoothComponent.cs 2>/dev/null || true
printf '%s\n' '== lattice tile definition =='
rg -n -i -A 30 -B 12 '(^\s*id:\s*Lattice\b|^\s*tileId:\s*Lattice\b|^\s*name:\s*lattice\b|lattice\.png)' \
Resources/Prototypes Resources/Tiles 2>/dev/null || true
printf '%s\n' '== lattice image properties =='
file Resources/Textures/Tiles/lattice.png Resources/Textures/Tiles/latticeTrain.png
identify -verbose Resources/Textures/Tiles/lattice.png 2>/dev/null | \
rg -n 'Geometry|Format|Colorspace|Alpha' || true
printf '%s\n' '== direct tile rendering and tile texture lookup =='
rg -n -C 5 'Tile.*Texture|Texture.*Tile|TileDefinition|TileDef' \
Content.Client Content.Shared \
-g '*.cs' 2>/dev/null | head -n 500Length of output: 18927
Нужна доработка client tile renderer. Он должен:
Не рекомендую делать overlay-entity поверх каждого lattice-тайла. Это создаст много entity, усложнит сохранение карт и синхронизацию при строительстве/разборке покрытия. Маска в существующем
То есть порядок кадров в
Если файл остаётся одним spritesheet, размести кадры линейно слева направо в этом порядке: Для Логика маски: var mask = 0;
if (GetTile(north).TypeId == latticeId) mask |= 1;
if (GetTile(south).TypeId == latticeId) mask |= 2;
if (GetTile(east).TypeId == latticeId) mask |= 4;
if (GetTile(west).TypeId == latticeId) mask |= 8;
var frame = mask;Это отдельная client-side правка tile renderer, а не изменение You are interacting with an AI system. |
|
@coderabbitai Стены используют 7 спрайтов, а не 15. Разберись как оно работает и составь таблицу того, что требуется оставлять на рисунках на каждом спрайте для решётки. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== IconSmooth declarations and state selection =='
rg -n -C 12 \
'class\s+IconSmooth(System|Component)|CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|IconSmooth' \
Content.Client/IconSmoothing Content.Shared/IconSmoothing Resources/Prototypes/Entities/Structures/Walls \
2>/dev/null || true
printf '%s\n' '== Candidate wall texture metadata =='
fd -HI 'meta.json' Resources/Textures \
-x sh -c 'if rg -q "\"(0|1|2|3|4|5|6)\"|\"(single|end|straight|corner|t|cross)\"" "$1"; then printf "%s\n" "$1"; fi' sh {} \
| head -n 80
printf '%s\n' '== Wall and lattice prototypes =='
rg -n -C 10 \
'type:\s*IconSmooth|mode:\s*CardinalFlags|base:|id:\s*(Wall|Lattice|TrainLattice)' \
Resources/Prototypes/Entities/Structures/Walls Resources/Prototypes/Tiles \
2>/dev/null || true
printf '%s\n' '== Exact candidate resource paths =='
fd -HI -i 'wall|lattice' Resources/Textures | sort | head -n 160Length of output: 1045
Повторите запрос после восстановления доступа к репозиторию. Я сверю You are interacting with an AI system. |
|
@coderabbitai Глянь на solid0.png - solid7.png в Resources\Textures\Structures\Walls\solid.rsi |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== solid.rsi files =='
fd -HI . Resources/Textures/Structures/Walls/solid.rsi -d 1 | sort
printf '%s\n' '== solid RSI metadata =='
for f in Resources/Textures/Structures/Walls/solid.rsi/meta.json \
Resources/Textures/Structures/Walls/solid.rsi/solid0.png \
Resources/Textures/Structures/Walls/solid.rsi/solid1.png \
Resources/Textures/Structures/Walls/solid.rsi/solid2.png \
Resources/Textures/Structures/Walls/solid.rsi/solid3.png \
Resources/Textures/Structures/Walls/solid.rsi/solid4.png \
Resources/Textures/Structures/Walls/solid.rsi/solid5.png \
Resources/Textures/Structures/Walls/solid.rsi/solid6.png \
Resources/Textures/Structures/Walls/solid.rsi/solid7.png; do
if [ -e "$f" ]; then
printf '\n-- %s --\n' "$f"
if [ "${f##*.}" = "json" ]; then
cat "$f"
else
file "$f"
identify -format 'geometry=%wx%h\n' "$f" 2>/dev/null || true
fi
fi
done
printf '%s\n' '== Icon smoothing source outline =='
fd -HI -e cs . Content.Client Content.Shared \
| xargs -r rg -l 'CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|IconSmoothComponent' \
| sort -u
printf '%s\n' '== Cardinal smoothing implementation =='
rg -n -A100 -B20 \
'CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|GetState|SetState' \
Content.Client/IconSmoothing Content.Shared/IconSmoothing 2>/dev/null || true
printf '%s\n' '== wall prototype smoothing configuration =='
rg -n -A25 -B10 \
'type:\s*IconSmooth|mode:\s*CardinalFlags|base:\s*solid|state:\s*solid[0-7]' \
Resources/Prototypes/Entities/Structures/Walls 2>/dev/null || trueLength of output: 1773 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="ArcaneSS14/arcane"
pr=180
head_sha="$(gh api "repos/$repo/pulls/$pr" --jq '.head.sha')"
printf 'PR head: %s\n' "$head_sha"
printf '%s\n' '== target tree entries =='
gh api "repos/$repo/git/trees/$head_sha?recursive=1" --paginate \
--jq '.tree[] | select(.path == "Resources/Textures/Structures/Walls/solid.rsi/meta.json" or (.path | test("^Resources/Textures/Structures/Walls/solid\\.rsi/solid[0-7]\\.png$")) or (test("IconSmooth.*\\.cs$"))) | [.path, .type, .sha] | `@tsv`'
printf '%s\n' '== solid RSI metadata =='
gh api "repos/$repo/contents/Resources/Textures/Structures/Walls/solid.rsi/meta.json?ref=$head_sha" \
--jq '.content' | tr -d '\n' | base64 -d
printf '%s\n' '== IconSmooth source files and relevant lines =='
tree_file="$(gh api "repos/$repo/git/trees/$head_sha?recursive=1" --paginate \
--jq -r '.tree[] | select(.path | test("IconSmooth(System|Component)\\.cs$")) | .path' | head -n 1)"
if [ -n "$tree_file" ]; then
printf '\n-- %s --\n' "$tree_file"
gh api "repos/$repo/contents/$tree_file?ref=$head_sha" --jq '.content' \
| tr -d '\n' | base64 -d \
| rg -n -A110 -B20 'Cardinal|CalculateNewSprite|state|State'
fi
mkdir -p /tmp/solid-rsi
for i in 0 1 2 3 4 5 6 7; do
path="Resources/Textures/Structures/Walls/solid.rsi/solid${i}.png"
gh api "repos/$repo/contents/$path?ref=$head_sha" --jq '.content' \
| tr -d '\n' | base64 -d > "/tmp/solid-rsi/solid${i}.png"
done
printf '%s\n' '== PNG dimensions and alpha bounding boxes =='
python3 - <<'PY'
from pathlib import Path
import struct, zlib
def png_rgba(path):
data = path.read_bytes()
assert data[:8] == b'\x89PNG\r\n\x1a\n'
pos = 8
chunks = []
while pos < len(data):
n = struct.unpack(">I", data[pos:pos+4])[0]
typ = data[pos+4:pos+8]
val = data[pos+8:pos+8+n]
pos += 12 + n
chunks.append((typ, val))
ihdr = next(v for t, v in chunks if t == b'IHDR')
w, h, bit, color, comp, filt, inter = struct.unpack(">IIBBBBB", ihdr)
print(f"{path.name}: {w}x{h}, bit={bit}, color={color}, interlace={inter}")
# Report only the PNG technical properties. Visual topology will be read from the files if a viewer is available.
for path in sorted(Path("/tmp/solid-rsi").glob("solid*.png")):
png_rgba(path)
PYLength of output: 2389
Я не буду угадывать соответствие
После этого дам точную таблицу из 8 кадров для You are interacting with an AI system. |
|
@coderabbitai |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== Wall prototype configuration =='
rg -n -A35 -B12 \
'(^\s*id:\s*(Wall|WallSolid)\b|^\s*type:\s*IconSmooth\b|^\s*mode:\s*CardinalFlags\b|^\s*base:\s*solid\b)' \
Resources/Prototypes/Entities/Structures/Walls/walls.yml 2>/dev/null || true
printf '%s\n' '== solid RSI metadata and files =='
cat Resources/Textures/Structures/Walls/solid.rsi/meta.json 2>/dev/null || true
fd -HI -d 1 -t f . Resources/Textures/Structures/Walls/solid.rsi | sort
printf '%s\n' '== IconSmooth source candidates =='
fd -HI -e cs . Content.Client Content.Shared Robust.Shared 2>/dev/null \
| xargs -r rg -l 'CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|IconSmoothComponent' \
| sort -u
printf '%s\n' '== Cardinal state-selection implementation =='
rg -n -A140 -B25 \
'CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|GetState|SetState' \
Content.Client/IconSmoothing Content.Shared/IconSmoothing 2>/dev/null || true
printf '%s\n' '== PNG dimensions =='
for f in Resources/Textures/Structures/Walls/solid.rsi/solid{0..7}.png; do
[ -f "$f" ] && { printf '%s: ' "$f"; identify -format '%wx%h\n' "$f" 2>/dev/null || file "$f"; }
doneLength of output: 10706 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== IconSmoothSystem outline =='
ast-grep outline Content.Client/IconSmoothing/IconSmoothSystem.cs --items all --view expanded
printf '%s\n' '== Cardinal smoothing methods =='
rg -n -A130 -B25 \
'CalculateNewSpriteCardinal|CardinalFlags|CardinalConnectDirs|SetState|state.*base|base.*state' \
Content.Client/IconSmoothing/IconSmoothSystem.cs \
Content.Client/IconSmoothing/IconSmoothComponent.cs \
Content.Client/IconSmoothing/ClientRandomIconSmoothSystem.cs \
Content.Shared/IconSmoothing/SmoothEdgeComponent.cs || true
printf '%s\n' '== Direction enum definitions =='
rg -n -A60 -B15 \
'enum\s+(CardinalConnectDirs|CardinalFlags)|CardinalConnectDirs\s*\{' \
Content.Client/IconSmoothing Content.Shared/IconSmoothing Robust.Shared 2>/dev/null || trueLength of output: 60681
Базовый угол — юго-восточный (SE). Для каждого
Код задаёт это в
Для решётки диагональные соседи не нужны. Поэтому схема стен из Для решётки нужны шесть форм соединений. Повороты должны делать движок или tile renderer:
Если нужен единый PNG без поворота в коде, потребуется 16 кадров с маской Текущий You are interacting with an AI system. |














































































































































































































































































































































Описание PR
Перенос спрайтов с TG13
Взял основу переноса с закрытого на Trauma Station PR Trauma-Station/Trauma-Station#3728
С декалями проблем ещё больше. Пришлось респрайтить ВСЕ, абсолютно ВСЕ основные декали под TG стиль, на что и ушло чуть ли не 7 часов, не учитывая тесты и проверки.
И не меньше проблем было с респрайтами остальных тайлов и решёток, которых не было на TG13.
Лишь глянув на авторские права, я сильно огорчился. Дело не в доступе да ограничения, а в том, что в PR-е из траумы вовсе не было изменений у attributions, из-за чего пришлось самому разгребать все изменения.
Но итог один. Общий стиль станции стал намного лучше. Мы всё дальше и дальше отходим от дерьмовых и старых спрайтов, не позволяя игрокам продолжать впитывать старое говно.
Медиа
Тип PR
Лицензионное соглашение
Изменения
🆑