Нормальные протезы в персонализации#65
Conversation
|
RSI Diff Bot; head commit 9cdaecf merging into 8e25888 Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi
|
Главное изменениеPR добавляет систему косметических киберпротезов (cyberlibs) в персонализацию персонажей. Реализация включает 8 брендов протезов (Bishop, Hephaestus, Hephaestus Titan, Morpheus, Wardtakahashi, Zenghu, Nanotrasen, Xion) с вариантами для левой/правой руки, кисти, ноги, стопы и торса. Для Wardtakahashi торс дополнительно разделён на мужской (torso_m) и женский (torso_f) варианты. Validation / Критические проблемыФайл Проблема: Дефис списка в блоке
Это соответствует ошибке, описанной в комментарии Vecortys: "yaml падает". Стандартный YAML парсер сервера не сможет корректно обработать эту структуру. Resources / Локализация✓ Локализационные файлы корректны:
✓ RSI метаданные полны и согласованы:
РекомендацияPR требует исправления перед мержем. Необходимо привести индентацию блоков WalkthroughДобавлены маркировки кибернетических конечностей для 8 брендов (Bishop, Hephaestus, Hephaestus Titan, Morpheus, Wardtakahashi, Zenghu, Nanotrasen, Xion): YAML-прототипы с ограничениями по видам/полу, RSI-метаданные спрайтов и двуязычная локализация Fluent. ChangesCyberlimb Markings — 8 брендов
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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
🤖 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/Locale/ru-RU/_Arcane/markings/cyberlibs.ftl`:
- Around line 1-81: The cyberlimb marking localization strings have been added
only to the Russian (ru-RU) locale file, but the base English (en-US) locale is
missing. Following the coding guidelines that require adding en-US entries
first, add all the marking-Cyberlimb* keys (including
marking-CyberlimbRArmBishop, marking-CyberlimbLArmBishop,
marking-CyberlimbRHandBishop, marking-CyberlimbLHandBishop,
marking-CyberlimbRLegBishop, marking-CyberlimbLLegBishop,
marking-CyberlimbRFootBishop, marking-CyberlimbLFootBishop,
marking-CyberlimbTorsoBishop, and all corresponding entries for Hephaestus,
Hephaestus Titan, Morpheus, Wardtakahashi, Zenghu, Nanotrasen, and Xion
variants) to the en-US locale file at
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl with appropriate English
translations before the ru-RU additions.
In `@Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml`:
- Around line 553-557: The `color` field within the
`coloring.default.type.SimpleColoring` structure is inconsistently formatted
across multiple marking definitions in the cyberlibs.yml file. Standardize the
indentation and structure of all `color` declarations to follow a single
consistent pattern throughout the file. Apply the same formatting to all
affected locations where `SimpleColoring` appears (at lines 553-557, 568-572,
583-587, 598-602, 613-617, 628-632, 644-647, 659-662, 675-678, and 692-694) to
ensure proper YAML deserialization and prevent color values from being ignored
during parsing.
- Around line 836-969: All Nanotrasen cyberlimb marking definitions
(CyberlimbRArmNanotrasen, CyberlimbLArmNanotrasen, CyberlimbRHandNanotrasen,
CyberlimbLHandNanotrasen, CyberlimbRLegNanotrasen, CyberlimbLLegNanotrasen,
CyberlimbLFootNanotrasen, CyberlimbRFootNanotrasen, and
CyberlimbTorsoNanotrasen) incorrectly reference the xion.rsi sprite file instead
of a Nanotrasen-specific sprite file. Update the sprite path in each of these
marking definitions to point to the correct Nanotrasen RSI asset file instead of
the xion.rsi file to ensure proper visualization and prevent duplication of Xion
sprites in the UI and gameplay.
🪄 Autofix (Beta)
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: ce72f16a-db94-4770-8be2-9f6e18395d3f
⛔ Files ignored due to path filters (73)
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/torso_f.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/torso_m.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/torso.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/l_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/l_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/l_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/l_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/r_arm.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/r_foot.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/r_hand.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/r_leg.pngis excluded by!**/*.pngResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/torso.pngis excluded by!**/*.png
📒 Files selected for processing (10)
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.ymlResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/meta.json
📜 Review details
🧰 Additional context used
📓 Path-based instructions (9)
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/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/meta.jsonResources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/**/*.json
📄 CodeRabbit inference engine (AGENTS.md)
Keep RSI
meta.jsonordered asversion,license,copyright,size,stateswith 4-space indentation.
Files:
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.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/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/meta.jsonResources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/meta.json
Resources/**/*.ftl
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 localization string standards and formatting rules
Files:
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftl
Resources/**/*.{yml,ftl}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 prototype locale integration rules and practices
Files:
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
**/*.ftl
📄 CodeRabbit inference engine (AGENTS.md)
Use specific
kebab-caselocalization IDs.
Files:
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftl
Resources/Locale/**/*.ftl
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Locale/**/*.ftl: Add or update FTL entries underResources/Locale/, starting withen-US; add/update matchingru-RUentries when the same feature already maintains Russian locale or the change is Orion-facing and you can do so without guessing translations.
Use specifickebab-caselocalization IDs.
Files:
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftl
⚙️ CodeRabbit configuration file
Resources/Locale/**/*.ftl: Treat localization as mandatory:
- Every player-facing string should be localized.
- Prefer specific kebab-case keys.
- Flag raw strings in code or gameplay/resource changes that are missing locale updates.
- Check consistency when prototype names, descriptions, markings, or UI text changed.
Files:
Resources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftl
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/Prototypes/_Arcane/Customization/Markings/cyberlibs.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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/Prototypes/**/*.yml
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Prototypes/**/*.yml: Put prototypes under the most specific existing subtree inResources/Prototypes/. If you introduce a new prototype parent tree, put parent prototypes inbase.ymland variants in sibling files.
Keep entity prototype field order astype,abstract,parent,id,categories,name,suffix,description,components. Do not insert blank lines between- type:entries inside acomponents:list. Separate prototype blocks with one blank line.
Prefersuffixfor spawn-menu distinctions instead of changing prototypename.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
⚙️ CodeRabbit configuration file
Resources/Prototypes/**/*.yml: Review SS14 prototypes carefully:
- Use the narrowest existing subtree and avoid duplicating nearby prototype files or parent trees.
- Keep entity field order as: type, abstract, parent, id, categories, name, suffix, description, components.
- Prefer base.yml for parent trees and sibling files for variants.
- Do not add blank lines inside components lists.
- Call out broken inheritance, risky prototype ID changes, missing paired locale updates, and Appearance / GenericVisualizer mismatches.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
🔇 Additional comments (7)
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi/meta.json (1)
1-81: LGTM!Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi/meta.json (1)
1-47: LGTM!Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi/meta.json (1)
1-47: LGTM!Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.json (1)
4-4: Проверьте атрибуцию исходников вcopyright.Ссылки выглядят скопированными из соседних брендов; если эти RSI не намеренно производны именно от указанных DMI, атрибуция ассетов будет неверной.
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi/meta.json#L4-L4: подтвердите, чтоbishop_rook.dmi— реальный исходник для Morpheus; иначе замените URL.Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsi/meta.json#L4-L4: подтвердите, чтоmorpheus_mantis.dmi— реальный исходник для Zenghu; иначе замените URL.As per coding guidelines,
Resources/**/*.json: Review resource JSON files for path correctness and consistency.Source: Coding guidelines
Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi/meta.json (1)
1-47: LGTM!Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi/meta.json (1)
1-52: LGTM!Resources/Textures/_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi/meta.json (1)
1-48: LGTM!
|
yaml падает |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml (1)
1-1033:⚠️ Potential issue | 🟠 MajorДобавить локализацию для sprite states в FTL-файлы.
Код в
Content.Client/Humanoid/MarkingPicker.xaml.cs:205вызываетLoc.GetString($"marking-{marking.ID}-{rsi.RsiState}")для каждого состояния спрайта маркировки. В файлахResources/Locale/en-US/_Arcane/markings/cyberlibs.ftlиResources/Locale/ru-RU/_Arcane/markings/cyberlibs.ftlотсутствуют ключи локализации второго уровня (например,marking-CyberlimbRArmBishop-r_arm,marking-CyberlimbRArmBishop-l_arm). Это приводит к тому, что UI будет показывать технические имена состояний вместо локализованных строк. Требуется добавить ~72+ ключей видаmarking-{ID}-{state}для всех комбинаций маркировок и их состояний в обе локали.🤖 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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml` around lines 1 - 1033, The MarkingPicker.xaml.cs code calls Loc.GetString with pattern marking-{ID}-{state} to localize sprite state names, but the FTL localization files for cyberlibs markings are missing these second-level keys. For each marking ID defined in cyberlibs.yml (such as CyberlimbRArmBishop, CyberlimbLArmBishop, CyberlimbTorsoBishop, and all other variants across Bishop, Hephaestus, HephaestusTitan, Morpheus, Wardtakahashi, Zenghu, Nanotrasen, and Xion cyberlimbs), add corresponding localization entries in both en-US and ru-RU FTL files using the key format marking-{marking-id}-{sprite-state} (for example marking-CyberlimbRArmBishop-r_arm, marking-CyberlimbTorsoWardtakahashiMale-torso_m, etc.) with appropriate localized display names for each sprite state.
🤖 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.
Outside diff comments:
In `@Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml`:
- Around line 1-1033: The MarkingPicker.xaml.cs code calls Loc.GetString with
pattern marking-{ID}-{state} to localize sprite state names, but the FTL
localization files for cyberlibs markings are missing these second-level keys.
For each marking ID defined in cyberlibs.yml (such as CyberlimbRArmBishop,
CyberlimbLArmBishop, CyberlimbTorsoBishop, and all other variants across Bishop,
Hephaestus, HephaestusTitan, Morpheus, Wardtakahashi, Zenghu, Nanotrasen, and
Xion cyberlimbs), add corresponding localization entries in both en-US and ru-RU
FTL files using the key format marking-{marking-id}-{sprite-state} (for example
marking-CyberlimbRArmBishop-r_arm,
marking-CyberlimbTorsoWardtakahashiMale-torso_m, etc.) with appropriate
localized display names for each sprite state.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: ef617a92-6c5d-43f9-853e-ce8067b90674
📒 Files selected for processing (2)
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
📜 Review details
🧰 Additional context used
📓 Path-based instructions (8)
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/Locale/en-US/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/**/*.ftl
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 localization string standards and formatting rules
Files:
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl
Resources/**/*.{yml,ftl}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 prototype locale integration rules and practices
Files:
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftlResources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
**/*.ftl
📄 CodeRabbit inference engine (AGENTS.md)
Use specific
kebab-caselocalization IDs.
Files:
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl
Resources/Locale/**/*.ftl
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Locale/**/*.ftl: Add or update FTL entries underResources/Locale/, starting withen-US; add/update matchingru-RUentries when the same feature already maintains Russian locale or the change is Orion-facing and you can do so without guessing translations.
Use specifickebab-caselocalization IDs.
Files:
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl
⚙️ CodeRabbit configuration file
Resources/Locale/**/*.ftl: Treat localization as mandatory:
- Every player-facing string should be localized.
- Prefer specific kebab-case keys.
- Flag raw strings in code or gameplay/resource changes that are missing locale updates.
- Check consistency when prototype names, descriptions, markings, or UI text changed.
Files:
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl
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/Prototypes/_Arcane/Customization/Markings/cyberlibs.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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/Prototypes/**/*.yml
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Prototypes/**/*.yml: Put prototypes under the most specific existing subtree inResources/Prototypes/. If you introduce a new prototype parent tree, put parent prototypes inbase.ymland variants in sibling files.
Keep entity prototype field order astype,abstract,parent,id,categories,name,suffix,description,components. Do not insert blank lines between- type:entries inside acomponents:list. Separate prototype blocks with one blank line.
Prefersuffixfor spawn-menu distinctions instead of changing prototypename.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
⚙️ CodeRabbit configuration file
Resources/Prototypes/**/*.yml: Review SS14 prototypes carefully:
- Use the narrowest existing subtree and avoid duplicating nearby prototype files or parent trees.
- Keep entity field order as: type, abstract, parent, id, categories, name, suffix, description, components.
- Prefer base.yml for parent trees and sibling files for variants.
- Do not add blank lines inside components lists.
- Call out broken inheritance, risky prototype ID changes, missing paired locale updates, and Appearance / GenericVisualizer mismatches.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
🔇 Additional comments (2)
Resources/Locale/en-US/_Arcane/markings/cyberlibs.ftl (1)
1-81: LGTM!Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml (1)
1-1033: YAML валидна, прошлые правки подтверждены.Проверка YAMLLinter показала: файл синтаксически корректен, все 73 маркировки имеют требуемую структуру. Прошлые правки (Wardtakahashi male/female торса с sexRestriction, Nanotrasen с правильными путями спрайтов) подтверждены. "yaml падает" из PR-комментария не воспроизводится — валидация пройдена.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml (1)
1-1033:⚠️ Potential issue | 🔴 CriticalВсе 8 наборов cyberlimbs ссылаются на несуществующие RSI-спрайты — добавьте файлы или удалите прототипы.
YAML синтаксически валиден (73 прототипа без дублей ID), но все 73 маркировки ссылаются на отсутствующие в репозитории RSI-файлы:
_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi_Arcane/Mobs/Customization/Cyberlimbs/hephaestus.rsi_Arcane/Mobs/Customization/Cyberlimbs/hephaestus_titan.rsi_Arcane/Mobs/Customization/Cyberlimbs/morpheus.rsi_Arcane/Mobs/Customization/Cyberlimbs/nanotrasen.rsi_Arcane/Mobs/Customization/Cyberlimbs/wardtakahashi.rsi_Arcane/Mobs/Customization/Cyberlimbs/xion.rsi_Arcane/Mobs/Customization/Cyberlimbs/zenghu.rsiСтруктура прототипов правильная (включая sex-specific сплит для Wardtakahashi), но они нерабочие без спрайтов.
🤖 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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml` around lines 1 - 1033, The YAML file contains 73 marking prototypes (CyberlimbRArmBishop, CyberlimbLArmBishop, CyberlimbRHandBishop, etc.) that reference eight non-existent RSI sprite files located at _Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi, hephaestus.rsi, hephaestus_titan.rsi, morpheus.rsi, nanotrasen.rsi, wardtakahashi.rsi, xion.rsi, and zenghu.rsi. To resolve this, either create and add these missing RSI sprite files to the repository at their specified paths with the appropriate sprite states (r_arm, l_arm, r_hand, l_hand, r_leg, l_leg, r_foot, l_foot, torso, torso_m, torso_f), or remove all the marking prototypes that depend on them from this file.Source: Coding guidelines
🤖 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.
Outside diff comments:
In `@Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml`:
- Around line 1-1033: The YAML file contains 73 marking prototypes
(CyberlimbRArmBishop, CyberlimbLArmBishop, CyberlimbRHandBishop, etc.) that
reference eight non-existent RSI sprite files located at
_Arcane/Mobs/Customization/Cyberlimbs/bishop.rsi, hephaestus.rsi,
hephaestus_titan.rsi, morpheus.rsi, nanotrasen.rsi, wardtakahashi.rsi, xion.rsi,
and zenghu.rsi. To resolve this, either create and add these missing RSI sprite
files to the repository at their specified paths with the appropriate sprite
states (r_arm, l_arm, r_hand, l_hand, r_leg, l_leg, r_foot, l_foot, torso,
torso_m, torso_f), or remove all the marking prototypes that depend on them from
this file.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: f2f81262-900e-482b-a696-8c5bc217f79d
📒 Files selected for processing (1)
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
📜 Review details
🧰 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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/**/*.{yml,ftl}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 prototype locale integration rules and practices
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.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/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
Resources/Prototypes/**/*.yml
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Prototypes/**/*.yml: Put prototypes under the most specific existing subtree inResources/Prototypes/. If you introduce a new prototype parent tree, put parent prototypes inbase.ymland variants in sibling files.
Keep entity prototype field order astype,abstract,parent,id,categories,name,suffix,description,components. Do not insert blank lines between- type:entries inside acomponents:list. Separate prototype blocks with one blank line.
Prefersuffixfor spawn-menu distinctions instead of changing prototypename.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
⚙️ CodeRabbit configuration file
Resources/Prototypes/**/*.yml: Review SS14 prototypes carefully:
- Use the narrowest existing subtree and avoid duplicating nearby prototype files or parent trees.
- Keep entity field order as: type, abstract, parent, id, categories, name, suffix, description, components.
- Prefer base.yml for parent trees and sibling files for variants.
- Do not add blank lines inside components lists.
- Call out broken inheritance, risky prototype ID changes, missing paired locale updates, and Appearance / GenericVisualizer mismatches.
Files:
Resources/Prototypes/_Arcane/Customization/Markings/cyberlibs.yml
|
чем дальше в лес, тем... |









































































Описание PR
Добавлены красивые протезы в персонализацию, распространённые на многих серверах.
Медиа
Тип PR