-
Notifications
You must be signed in to change notification settings - Fork 32
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
Боди-камера #363
base: master
Are you sure you want to change the base?
Боди-камера #363
Conversation
WalkthroughВ этом обновлении представлена новая функциональность body camera (нагрудной камеры) для security (службы безопасности). Изменения включают создание прототипа камеры, добавление локализации на английском и русском языках, обновление инвентаря торговых автоматов и шкафчиков, а также разработку серверной логики для управления состоянием камеры при надевании и снятии. Changes
Sequence DiagramsequenceDiagram
participant Player
participant BodyCamera
participant SurveillanceCameraSystem
Player->>BodyCamera: Надевает
BodyCamera->>SurveillanceCameraSystem: Активировать камеру
Player->>BodyCamera: Снимает
BodyCamera->>SurveillanceCameraSystem: Деактивировать камеру
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 (
|
RSI Diff Bot; head commit 629ced6 merging into 810939c Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi
|
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: 4
🔭 Outside diff range comments (1)
Resources/Prototypes/Catalog/Fills/Lockers/security.yml (1)
Line range hint
1-400
: Необходимо удалить русские комментарии из файла!Согласно правилам кодирования, в прототипах запрещены любые переводы на русский язык. Используйте только английский язык или ссылки на переводы.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (4)
Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/equipped-NECK.png
is excluded by!**/*.png
Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/icon.png
is excluded by!**/*.png
Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/inhand-right.png
is excluded by!**/*.png
📒 Files selected for processing (9)
Content.Server/_CorvaxNext/BodyCam/BodyCameraComponent.cs
(1 hunks)Content.Server/_CorvaxNext/BodyCam/BodyCameraSystem.cs
(1 hunks)Resources/Locale/en-US/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl
(1 hunks)Resources/Locale/ru-RU/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl
(1 hunks)Resources/Prototypes/Catalog/Fills/Lockers/security.yml
(1 hunks)Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml
(1 hunks)Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
(1 hunks)Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml
(1 hunks)Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/meta.json
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
Resources/Locale/en-US/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl (1)
Pattern **/*.ftl
: Все повторяющиеся переводы должны быть написаны так:
Оригинальный перевод - id1 = text1
Повторяющийся, но с изменениями id2 = { id1 }
и если требуется .desc должен прописываться как { id1.desc }
А многострочные переводы начинающиеся со спецсимвола должны идти сначала id = спецсимвол текст и потом следующая строчка. Пример
id = спецсимвол текст
текст
спецсимвол текст
Все переводы начинающиеся с ent- должны быть с большой буквы после =. Даже после .desc и .suffix
Resources/Locale/ru-RU/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl (1)
Pattern **/*.ftl
: Все повторяющиеся переводы должны быть написаны так:
Оригинальный перевод - id1 = text1
Повторяющийся, но с изменениями id2 = { id1 }
и если требуется .desc должен прописываться как { id1.desc }
А многострочные переводы начинающиеся со спецсимвола должны идти сначала id = спецсимвол текст и потом следующая строчка. Пример
id = спецсимвол текст
текст
спецсимвол текст
Все переводы начинающиеся с ent- должны быть с большой буквы после =. Даже после .desc и .suffix
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
Resources/Prototypes/Catalog/Fills/Lockers/security.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
🪛 yamllint (1.35.1)
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml
[error] 5-5: trailing spaces
(trailing-spaces)
[error] 7-7: wrong indentation: expected at least 3
(indentation)
[error] 10-10: no new line character at the end of file
(new-line-at-end-of-file)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
[error] 6-6: wrong indentation: expected at least 3
(indentation)
[error] 25-25: trailing spaces
(trailing-spaces)
🔇 Additional comments (7)
Content.Server/_CorvaxNext/BodyCam/BodyCameraComponent.cs (1)
1-6
: Код компонента выглядит корректно.
Этот маркер-компонент соответствует описанной функциональности и не содержит явных проблем.
Content.Server/_CorvaxNext/BodyCam/BodyCameraSystem.cs (1)
1-53
: Реализация системы активации камеры при надевании корректна.
Логика подписки на события работает последовательно: при старте камера отключается, при экипировке включается, а при снятии — выключается. Дополнительные проверки или логирование потребуются только при расширении функционала.
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml (2)
7-10
: Конфигурация спрайтов корректна
Компоненты Sprite
и Clothing
правильно настроены и используют путь в директории _LostParadise
.
🧰 Tools
🪛 yamllint (1.35.1)
[error] 7-7: wrong indentation: expected at least 3
(indentation)
[error] 10-10: no new line character at the end of file
(new-line-at-end-of-file)
4-5
: 🛠️ Refactor suggestion
Необходимо использовать локализацию для name и description
Текстовые поля name
и description
должны быть перенесены в локализационные файлы вместо хардкода на английском языке.
Предлагаю следующие изменения:
id: LPPClothingNeckSecBodycamera
- name: security bodycamera
- description: Security body camera, useful for monitoring officers and cadets on patrols
+ name: security-bodycamera-name
+ description: security-bodycamera-description
Likely invalid or redundant comment.
🧰 Tools
🪛 yamllint (1.35.1)
[error] 5-5: trailing spaces
(trailing-spaces)
Resources/Textures/_LostParadise/Clothing/Neck/secbodycam.rsi/meta.json (1)
1-26
: Метаданные текстур корректно настроены
Файл содержит все необходимые состояния для экипировки (icon, equipped-NECK, inhand-right, inhand-left), корректные размеры текстур и правильную информацию о лицензии.
Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml (1)
30-30
: Корректное добавление нательной камеры в торговый автомат службы безопасности!
Количество камер (5 штук) выглядит разумным для данного типа оборудования.
Resources/Prototypes/Catalog/Fills/Lockers/security.yml (1)
115-115
: Корректное добавление нательной камеры в шкафчик службы безопасности!
Размещение камеры в стандартном шкафчике службы безопасности логично, так как это базовое оборудование для сотрудников.
Resources/Locale/en-US/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl
Show resolved
Hide resolved
Resources/Locale/ru-RU/ss14-ru/prototypes/_lostparadise/entities/objects/tools/bodycamera.ftl
Show resolved
Hide resolved
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
Outdated
Show resolved
Hide resolved
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
Outdated
Show resolved
Hide resolved
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.
Жду фикса тестов и абабряю
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: 1
♻️ Duplicate comments (2)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml (2)
1-22
:⚠️ Potential issueФайл необходимо переместить в правильную директорию
Файл должен находиться в директории _LostParadise вместо _CorvaxNext согласно правилам проекта.
Требуемый путь:
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/base_bodycamera.yml
🧰 Tools
🪛 yamllint (1.35.1)
[error] 6-6: wrong indentation: expected at least 3
(indentation)
[error] 22-22: trailing spaces
(trailing-spaces)
5-21
: 🛠️ Refactor suggestionКомпоненты настроены правильно, но требуется исправление локализации
Конфигурация компонентов корректна, но строка с ID на русском языке должна быть перемещена в локализацию.
- id: "Нагрудная камера" + id: "bodycamera-surveillance-id"🧰 Tools
🪛 yamllint (1.35.1)
[error] 6-6: wrong indentation: expected at least 3
(indentation)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
🪛 yamllint (1.35.1)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
[error] 6-6: wrong indentation: expected at least 3
(indentation)
[error] 22-22: trailing spaces
(trailing-spaces)
🔇 Additional comments (1)
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml (1)
1-4
: Корректное определение базовой сущности
Структура определения сущности правильная, наследование от BaseItem и использование abstract корректно.
Resources/Prototypes/_CorvaxNext/Entities/Objects/Tools/bodycamera.yml
Outdated
Show resolved
Hide resolved
фикс сделал, тесты прошло |
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.
ЗБС, ахуенно!
@Hqlle Перенеси пожалуйста всё по нашим папкам, нам не особо нужно засорять чужими папками |
Лучше так |
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: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
Content.Server/_LostParadise/BodyCam/BodyCameraComponent.cs
(1 hunks)Content.Server/_LostParadise/BodyCam/BodyCameraSystem.cs
(1 hunks)
🔇 Additional comments (9)
Content.Server/_LostParadise/BodyCam/BodyCameraComponent.cs (2)
1-2
: Отличный выбор неймспейса и ясная структура кода.
Код выглядит лаконично. В будущих изменениях можно добавить более развёрнутые комментарии с учётом особенностей проекта.
6-7
: Корректная регистрация компонента.
Использование [RegisterComponent]
успешно регистрирует этот класс как компонент. Код не вызывает вопросов.
Content.Server/_LostParadise/BodyCam/BodyCameraSystem.cs (7)
1-5
: Использования и зависимости выглядят корректно.
Вы убедились, что в проекте доступны все необходимые сборки и модули, включая Content.Server.SurveillanceCamera
? В остальном всё выглядит хорошо.
6-7
: Комментарий о происхождении кода.
Важно убедиться, что нет проблем с правами на исходный код, если он портирован из других проектов. Судя по информации в PR, автор провёл проверку авторских прав.
14-16
: Наследование от EntitySystem
и внедрение зависимостей.
Архитектурно правильно использовать EntitySystem
. Зависимость от SurveillanceCameraSystem
выглядит обоснованной.
18-26
: Метод Initialize
: подписка на события.
Подписка на локальные события выглядит корректно; охвачены все жизненные циклы компонента (добавление, экипировка, снятие).
28-36
: Метод OnStartup
: отключение камеры по умолчанию.
Хорошее решение — гарантировать отключённое состояние камеры на старте.
38-45
: Метод OnEquipped
: логика включения камеры.
Реализация выглядит правильно: при экипировке камера активируется. Учитывайте сценарии, когда компонент камеры может отсутствовать (что вы уже делаете через TryComp
).
47-54
: Метод OnUnequipped
: логика выключения камеры.
Аналогично OnEquipped
, здесь всё корректно — при снятии предмета камера отключается.
Не всё перенёс |
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
Resources/Prototypes/_LostParadise/Entities/Clothing/Neck/bodycamera.yml
(1 hunks)Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
Resources/Prototypes/_LostParadise/Entities/Clothing/Neck/bodycamera.yml (1)
Pattern **/*.yml
: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.
Все добавляемые прототипы должны быть в нашей папке.
Никогда не предлагать ничего по отступам
При удалении дополнительного дополнения по типу prob:
, можно оставить оригинальную часть с - id:
.
🪛 yamllint (1.35.1)
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml
[error] 6-6: wrong indentation: expected at least 3
(indentation)
[error] 22-22: trailing spaces
(trailing-spaces)
Resources/Prototypes/_LostParadise/Entities/Clothing/Neck/bodycamera.yml
[error] 5-5: trailing spaces
(trailing-spaces)
[error] 7-7: wrong indentation: expected at least 3
(indentation)
[error] 10-10: no new line character at the end of file
(new-line-at-end-of-file)
🔇 Additional comments (4)
Resources/Prototypes/_LostParadise/Entities/Clothing/Neck/bodycamera.yml (2)
7-10
: Структура прототипа выглядит корректно
Компоненты Sprite и Clothing настроены правильно, с корректными путями к ресурсам в папке _LostParadise.
🧰 Tools
🪛 yamllint (1.35.1)
[error] 7-7: wrong indentation: expected at least 3
(indentation)
[error] 10-10: no new line character at the end of file
(new-line-at-end-of-file)
4-5
: 🛠️ Refactor suggestion
Используйте ключи локализации вместо прямого текста
Название и описание должны использовать ключи локализации вместо прямого текста на английском языке.
Предлагаемые изменения:
- name: security bodycamera
- description: Security body camera, useful for monitoring officers and cadets on patrols
+ name: security-bodycamera-name
+ description: security-bodycamera-description
Соответствующие ключи локализации должны быть добавлены в файлы локализации.
Likely invalid or redundant comment.
🧰 Tools
🪛 yamllint (1.35.1)
[error] 5-5: trailing spaces
(trailing-spaces)
Resources/Prototypes/_LostParadise/Entities/Objects/Tools/bodycamera.yml (2)
13-15
: Проверьте конфигурацию сети
Необходимо убедиться, что указанные частоты и идентификатор сети корректно настроены и соответствуют существующей инфраструктуре.
✅ Verification successful
Конфигурация сети проверена и подтверждена
Проверка показала, что настройки сети для нательной камеры корректны и соответствуют существующей инфраструктуре:
deviceNetId: Wired
- используется во всех устройствах системы видеонаблюденияreceiveFrequencyId: SurveillanceCameraSecurity
- стандартная частота приема для камер безопасности, используется в камерах наблюдения по всей станцииtransmitFrequencyId: SurveillanceCamera
- стандартная частота передачи для всех камер наблюдения
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Поиск других устройств с аналогичными настройками сети
rg "deviceNetId: Wired" -A 3
rg "SurveillanceCameraSecurity" -A 2
Length of output: 74068
6-21
: Проверьте зависимости компонентов
Прототип использует несколько взаимосвязанных компонентов. Убедитесь, что все необходимые системы присутствуют в проекте.
✅ Verification successful
Let me gather more information about the components used in the YAML file.
Все необходимые компоненты найдены и корректно реализованы
На основе анализа кодовой базы подтверждаю, что все компоненты, используемые в прототипе нагрудной камеры, присутствуют в проекте:
- Eye: реализован в нескольких компонентах в директории Content.Shared/Eye/
- DeviceNetwork: полностью реализован в Content.Server/DeviceNetwork/
- SurveillanceCamera: имеет полную реализацию в Content.Server/SurveillanceCamera/
- BodyCamera: реализован в Content.Server/_LostParadise/BodyCam/
- UserInterface и WirelessNetworkConnection: являются базовыми компонентами системы
Все зависимости корректно определены и связаны между собой через системы DeviceNetwork и SurveillanceCamera.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Поиск определений необходимых компонентов
echo "Checking for required components..."
ast-grep --pattern 'class $name : IComponent'
Length of output: 128
Script:
#!/bin/bash
# Поиск компонентов, упомянутых в YAML файле
echo "Searching for Eye component..."
rg "class Eye" -A 2
echo -e "\nSearching for WirelessNetworkConnection component..."
rg "class WirelessNetworkConnection" -A 2
echo -e "\nSearching for DeviceNetwork component..."
rg "class DeviceNetwork" -A 2
echo -e "\nSearching for SurveillanceCamera component..."
rg "class SurveillanceCamera" -A 2
echo -e "\nSearching for BodyCamera component..."
rg "class BodyCamera" -A 2
# Поиск определений UI компонентов
echo -e "\nSearching for UI related components..."
rg "SurveillanceCameraSetupBoundUi" -A 2
Length of output: 21176
🧰 Tools
🪛 yamllint (1.35.1)
[error] 6-6: wrong indentation: expected at least 3
(indentation)
setupAvailableNetworks: | ||
- SurveillanceCameraSecurity | ||
networkSet: true | ||
id: "Нагрудная камера" |
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.
Замените русский текст на английский
Согласно правилам, в прототипах запрещено использование русского языка. ID камеры должен быть на английском.
Предлагаемые изменения:
- id: "Нагрудная камера"
+ id: "Body Camera"
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
id: "Нагрудная камера" | |
id: "Body Camera" |
Описание обновления:
Добавляет боди камеры для службы безопастности
для работы боди-камер были портированы компоненты с space-syndicate/space-station-14-next#183
Благодаря портированным компонентам, боди-камеры работают только когда одеты на пешку, в иных случая они работать не будут
Медиа
Проверки
Изменения
🆑 Kest