-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix shitmed test #1040
fix shitmed test #1040
Conversation
WalkthroughИзменения касаются нескольких компонентов системы. В тестах подсчёта ног изменена логика: теперь используется Changes
Sequence Diagram(s)sequenceDiagram
participant E as Entity
participant S as SharedBodySystem
participant BPC as BodyPartComponent
E->>S: EntInsertedIntoContainerMessage
S->>S: OnBodyPartInserted (проверка slotId и BodyPartComponent)
S->>S: Вызов AddPart и CheckBodyPart
S-->>E: Подтверждение обработки
sequenceDiagram
participant E as Entity
participant S as SharedBodySystem
participant BPC as BodyPartComponent
E->>S: EntRemovedFromContainerMessage
S->>S: OnBodyPartRemoved (проверка slotId и BodyPartComponent)
S->>S: Вызов RemovePart и CheckBodyPart
S-->>E: Подтверждение обработки
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
Resources/Prototypes/_Backmen/Body/Parts/spider.yml (1)
1-14
:🧩 Analysis chain
Проверьте влияние удаления PartSpider.
Удаление абстрактного класса
PartSpider
может повлиять на другие сущности, которые его наследовали. Убедитесь, что все необходимые компоненты перенесены в дочерние классы.
🏁 Script executed:
#!/bin/bash # Search for any remaining references to PartSpider rg "PartSpider" --type yamlLength of output: 359
Обнаружены критические ссылки на PartSpider
Скрипт показал, что в файле Resources/Prototypes/_Backmen/Body/Parts/spider.yml остаются ссылки на PartSpider в массиве родительских классов (например, в строках с BaseTorso, BaseRightLeg и BaseLeftLeg). Это указывает на то, что удаление абстрактного класса PartSpider может нарушить цепочку наследования, если его функциональность не была должным образом перенесена в дочерние классы. Необходимо:
• Проверить, что все компоненты, ранее предоставлявшиеся PartSpider, интегрированы в соответствующие дочерние сущности.
• Обновить список родительских классов, исключив PartSpider, если он больше не используется.
🧹 Nitpick comments (2)
Content.IntegrationTests/Tests/Backmen/Body/HandsTest.cs (1)
76-77
: Рассмотрите возможность унификации подхода к подсчету конечностей.Для консистентности, можно использовать аналогичный подход с
BodyComponent
для подсчета рук, как это сделано для подсчета ног.Content.Shared/Body/Systems/SharedBodySystem.Parts.cs (1)
171-185
: Исправьте язык сообщения об ошибке.Текст сообщения об ошибке на русском языке, в то время как код написан на английском. Рекомендуется перевести сообщение для консистентности:
- $" прототип должен иметь подключение начиная с {GetSlotFromBodyPart(part)}"); + $" prototype must have a connection starting with {GetSlotFromBodyPart(part)}");
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
Content.IntegrationTests/Tests/Backmen/Body/HandsTest.cs
(2 hunks)Content.Shared/Body/Systems/SharedBodySystem.Parts.cs
(1 hunks)Resources/Prototypes/_Backmen/Body/Parts/spider.yml
(1 hunks)Resources/Prototypes/_Backmen/Body/Prototypes/arachne.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 300000ms (2)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
🔇 Additional comments (5)
Content.IntegrationTests/Tests/Backmen/Body/HandsTest.cs (1)
40-44
: Улучшена точность подсчета ног!Использование
BodyComponent.LegEntities
вместо прямого подсчета частей тела является более надежным подходом, так как учитывает только правильно подключенные конечности.Content.Shared/Body/Systems/SharedBodySystem.Parts.cs (2)
37-40
: Улучшена обработка жизненного цикла частей тела!Добавленные обработчики событий обеспечивают корректное управление состоянием частей тела на всех этапах их жизненного цикла.
206-230
: Улучшена безопасность удаления частей тела!Добавленные проверки гарантируют корректное удаление частей тела и поддержание консистентного состояния компонентов.
Resources/Prototypes/_Backmen/Body/Prototypes/arachne.yml (1)
40-47
: Улучшена система именования ног!Новая система именования конечностей (first, second, third, hind) более логична и последовательна, что упрощает понимание структуры тела арахны.
Resources/Prototypes/_Backmen/Body/Parts/spider.yml (1)
28-29
: Улучшена конфигурация компонента торакса!Добавление
slotId
иcontainerName
делает конфигурацию более явной и предсказуемой.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
Content.Shared/Body/Systems/SharedBodySystem.Parts.cs (1)
171-186
: Улучшена проверка корректности вставки частей тела.Добавлены отладочные проверки для валидации компонентов и их слотов. Используется культурно-независимое сравнение строк для обеспечения согласованности.
Рекомендуется вынести сообщение об ошибке в константу для облегчения локализации:
- $"BodyPartComponent has not been inserted ({Prototype(args.Entity)?.ID}) into {Prototype(ent.Comp.Body.Value)?.ID}" + - $" прототип должен иметь подключение начиная с {GetSlotFromBodyPart(part)} (сейчас {slotId.Replace(PartSlotContainerIdPrefix,"")})"); + const string ErrorMessage = "BodyPartComponent has not been inserted ({0}) into {1}. Prototype should have connection starting with {2} (current: {3})"; + string.Format(ErrorMessage, + Prototype(args.Entity)?.ID, + Prototype(ent.Comp.Body.Value)?.ID, + GetSlotFromBodyPart(part), + slotId.Replace(PartSlotContainerIdPrefix,""));
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
Content.Shared/Body/Systems/SharedBodySystem.Parts.cs
(2 hunks)Resources/Prototypes/_Backmen/Entities/Mobs/NPCs/base.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 300000ms (3)
- GitHub Check: Test Packaging
- GitHub Check: build (ubuntu-latest)
- GitHub Check: build (ubuntu-latest)
🔇 Additional comments (4)
Content.Shared/Body/Systems/SharedBodySystem.Parts.cs (3)
37-42
: Добавлены новые подписки на события для улучшения управления частями тела.Новые обработчики событий улучшают систему управления частями тела, добавляя поддержку инициализации, удаления компонентов, попыток ампутации и изменения состояния активации.
192-197
: Добавлена проверка корректности вставки органов.Добавлены отладочные проверки для валидации компонентов органов при вставке.
206-231
: Улучшена логика удаления частей тела.Добавлены дополнительные проверки и очистка эффектов при удалении частей тела. Проверяется соответствие слотов и выполняется корректное обновление состояния тела.
Resources/Prototypes/_Backmen/Entities/Mobs/NPCs/base.yml (1)
120-140
: Улучшена детализация структуры тела NPC.Изменения улучшают анатомическую структуру:
- Заменены общие "ноги" на конкретные правую и левую
- Добавлены отдельные соединения для ступней
Убедитесь, что все связанные системы (анимация, передвижение) корректно работают с новой структурой ног.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
Resources/Prototypes/_Backmen/Entities/Mobs/NPCs/base.yml (1)
154-155
: Проверка секции «feet».
Секцияfeet
указываетpart: RightFootHuman
. Если ожидается, что данная секция должна охватывать обе стопы, возможно, требуются дополнительные корректировки либо дополнительная логика для учёта левой стопы. Рекомендуется подтвердить архитектурное решение.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
Resources/Prototypes/Body/Prototypes/primate.yml
(2 hunks)Resources/Prototypes/_Backmen/Body/Prototypes/drone.yml
(1 hunks)Resources/Prototypes/_Backmen/Body/Prototypes/haisenberg.yml
(1 hunks)Resources/Prototypes/_Backmen/Entities/Mobs/NPCs/base.yml
(3 hunks)
⏰ Context from checks skipped due to timeout of 300000ms (3)
- GitHub Check: Test Packaging
- GitHub Check: build (ubuntu-latest)
- GitHub Check: build (ubuntu-latest)
🔇 Additional comments (12)
Resources/Prototypes/Body/Prototypes/primate.yml (2)
16-17
: Обновление соединений торса для рук.
Изменены имена соединений с прежних значений на "left hands 1" и "left hands 2". Это улучшает однозначность и согласованность наименования, что соответствует усилиям по стандартизации имен по всему проекту.
26-28
: Уточнение именования слотов для рук.
Переименование слотов в "left hands 1" и "left hands 2" делает структуру прототипа более понятной и согласованной с изменениями в соединениях торса. Убедитесь, что подобные изменения отражены и в системах, использующих эти прототипы.Resources/Prototypes/_Backmen/Entities/Mobs/NPCs/base.yml (5)
1-4
: Обновление имени сущности и родительского класса.
Изменения в строках 2 и 4 корректно отражают новое имя сущности «Базированная База НПЦ» и обновлённый список родительских классов[SimpleSpaceMobBase, StripableInventoryBase]
. Убедитесь, что все ссылки на старое имя сущности и зависимости обновлены в остальных частях проекта.
7-19
: Добавление новых компонентов для NPC.
Новые компоненты, такие какUniversalLanguageSpeaker
,DiseaseCarrier
,CombatMode
,SurgeryTarget
,Stripping
,Strippable
,UserInterface
(с настраиваемыми интерфейсами) иComplexInteraction
, добавлены корректно. Проверьте, что настройки ключей в интерфейсах (например,enum.StrippingUiKey.Key
иenum.SurgeryUIKey.Key
) соответствуют ожиданиям используемых систем.
55-56
: Добавление компонента Inventory.
КомпонентInventory
с шаблономhuman
добавлен правильно. Рекомендуется проверить, что данный шаблон и его настройки удовлетворяют требованиям системы инвентаризации и корректно интегрируются с общим функционалом NPC.
134-135
: Обновление связей в слоте «torso».
В блокеtorso
теперь явно указаны соединения с конкретными слотамиright leg
иleft leg
. Это улучшает детализацию модели тела. Убедитесь, что подобное изменение отражается во всех модулях, где используются данные связи.
142-153
: Детализация конечностей в прототипе AnimalHuman.
Добавлены отдельные слоты для:
–right leg
с частьюRightLegHuman
, соединяющимся сright foot
–left leg
с частьюLeftLegHuman
, соединяющимся сleft foot
– Слоты дляright foot
иleft foot
с частямиRightFootHuman
иLeftFootHuman
соответственно.
Эта детализация повышает точность описания анатомии NPC. Проверьте, что указанные части корректно интегрируются с остальными компонентами системы тела.Resources/Prototypes/_Backmen/Body/Prototypes/haisenberg.yml (3)
15-17
: Изменование списка соединений в слоте "torso".
Переименование элементов списка с прежних значений (например, "right_arm", "left_arm") на "right arm" и "left arm" улучшает читаемость и согласованность с другими прототипами.
21-25
: Унификация наименований соединений конечностей.
Изменения значений списка соединений внутри слотов, где для правой руки теперь используется "right hand" и для левой – "left hand", обеспечивают единообразие именования по всем прототипам. Рекомендуется проверить, чтобы все ссылки на данные ключи в системе также были обновлены.
22-22
: Обновление ключей слотов конечностей.
Ключи для определения слотов "left arm", "right hand" и "left hand" изменены в соответствии с новым форматированием (использование пробелов вместо подчёркиваний). Это повышение согласованности имен в файле способствует улучшенной поддерживаемости и ясности структуры.Also applies to: 26-26, 28-28
Resources/Prototypes/_Backmen/Body/Prototypes/drone.yml (2)
9-14
: Изменение соединений в слоте "torso" для дрона.
Новый список соединений для слота "torso" теперь включает "left arm 1", "left arm 2", "left arm 3", "left arm 4", "right arm 5" и "right arm 6". Это обновление отражает переход от прежних наименований (например, "hand #") к улучшенному и единообразному форматированию.
15-26
: Обновление ключей слотов конечностей дрона.
Ключи слотов для левых и правых конечностей изменены на "left arm 1", "left arm 2", "left arm 3", "left arm 4", "right arm 5" и "right arm 6". Такой подход обеспечивает согласованность с обновлённой схемой именования прототипов тела. Рекомендуется убедиться, что все ссылки на эти слоты в системе также отражают данные изменения.
🆑
Summary by CodeRabbit
Новый функционал
Тесты