polymorph#998
Hidden character warning
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughПри использовании способности полиморфии теперь после копирования внешности пользователя также копируются метаданные цели — имя и описание; в инициализации компонента отформатирована и инвертирована проверка наличия Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
📜 Recent review detailsConfiguration used: Repository UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
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: 0
🧹 Nitpick comments (1)
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs (1)
45-49: Отличное дополнение функциональности полиморфа!Логика копирования метаданных реализована корректно. Имя и описание сущности копируются от цели к пользователю, что соответствует описанию PR. Восстановление оригинальных значений корректно обрабатывается в
ReturnAppearance.Опциональное замечание:
MetaDataComponentявляется фундаментальным компонентом в RobustToolbox и присутствует на всех сущностях. ПроверкаTryCompявляется избыточной, но не вредит и делает код более защищённым.🔎 Опциональное упрощение (можно применить позже)
- if (TryComp<MetaDataComponent>(target, out var targetMeta)) - { - _meta.SetEntityName(user, targetMeta.EntityName); - _meta.SetEntityDescription(user, targetMeta.EntityDescription); - } + var targetMeta = MetaData(target); + _meta.SetEntityName(user, targetMeta.EntityName); + _meta.SetEntityDescription(user, targetMeta.EntityDescription);
📜 Review details
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
- GitHub Check: YAML Linter
🔇 Additional comments (1)
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs (1)
88-89: Улучшение обработки компонента!Изменение с раннего возврата на условное присваивание — хорошее решение. Теперь компонент может корректно инициализироваться для сущностей без
HumanoidAppearanceComponent, при этомReturnAppearanceбезопасно обрабатывает случай отсутствия профиля благодаря проверке на линии 71.
|
|
||
| component.OriginalProfile = humanoid.LastProfileLoaded; | ||
| if (TryComp<HumanoidAppearanceComponent>(uid, out var humanoid)) | ||
| component.OriginalProfile = humanoid.LastProfileLoaded; |
There was a problem hiding this comment.
Это то же самое, лучше оставь как было
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Lachklen
Repo: WWhiteDreamProject/wwdpublic PR: 863
File: Resources/Locale/en-US/_white/cards/hobby.ftl:5-5
Timestamp: 2025-10-22T20:13:31.389Z
Learning: В PR по EvacPod для репозитория WWhiteDreamProject/wwdpublic: если опечатка в ключе локализации (например, card-ep_hobby_mashrooms) не влияет на отображение и используется последовательно, автор предпочитает не блокировать PR; вместо этого предлагать необязательный follow-up issue.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
- GitHub Check: YAML Linter
- GitHub Check: build (ubuntu-latest)
- GitHub Check: YAML map schema validator
🔇 Additional comments (1)
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs (1)
45-49: Копирование метаданных реализовано корректно.Логика копирования имени и описания из целевой сущности работает правильно и соответствует описанию PR. Метаданные копируются после клонирования внешности, что является правильным порядком операций.
Content.Server/_White/Abilities/Psionics/Abilities/PolymorphPowerSystem.cs
Outdated
Show resolved
Hide resolved
|
а можно использовать нормальные буквы в названиях веток? |
RedFoxIV
left a comment
There was a problem hiding this comment.
Для чего конкретно это нужно? Я был под впечатлением, что и без этого полиморф отлично работает.
А ещё я не вижу, как восстанавливаются оригинальные значения.
| if (TryComp<MetaDataComponent>(target, out var targetMeta)) | ||
| { | ||
| _meta.SetEntityName(user, targetMeta.EntityName); | ||
| _meta.SetEntityDescription(user, targetMeta.EntityDescription); | ||
| } | ||
|
|
There was a problem hiding this comment.
MetaDataComponent есть на всех сущностях в игре, для энтсистем даже сокращённый метод сделали
/// <summary>
/// Returns the <see cref="MetaDataComponent"/> on an entity.
/// </summary>
/// <exception cref="KeyNotFoundException">Thrown when the entity doesn't exist.</exception>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
protected MetaDataComponent MetaData(EntityUid uid)
{
return EntityManager.MetaQuery.GetComponent(uid);
}
```| if (!TryComp<HumanoidAppearanceComponent>(uid, out var humanoid)) | ||
| return; | ||
|
|
||
Описание PR
теперь копирует метаданные
Медиа
Список
Изменения
🆑