Skip to content

RPD port from Goob-Station and add support pipe layers#608

Open
JrInventor05 wants to merge 14 commits into
corvax-team:masterfrom
JrInventor05:rpd
Open

RPD port from Goob-Station and add support pipe layers#608
JrInventor05 wants to merge 14 commits into
corvax-team:masterfrom
JrInventor05:rpd

Conversation

@JrInventor05

@JrInventor05 JrInventor05 commented May 13, 2026

Copy link
Copy Markdown
Contributor

Описание PR

Портирован РПД с губов, добавлена поддержка разных слоёв труб у РПД.

Почему / Баланс

Таск PRT-252 по предложке https://discord.com/channels/1066727245806325872/1494022529856311477

Технические детали

Медиа

Требования

Согласие с условиями

  • Я согласен с условиями LICENSE и CLA.

Критические изменения

Список изменений

Summary by CodeRabbit

  • New Features
    • Added enhanced rapid piping placement for pipe layers, including prototype overrides and improved alignment/rendering.
    • Introduced ghost prototype mirroring via a flip keybind, with server notification and correct mirror-state restoration.
    • Expanded RCD/RPD capabilities with configurable placement range, optional ignition settings, and RPD-specific deconstruction behavior.
  • Localization
    • Added/updated Russian strings for new RPD/RCD tool and piping component names/descriptions, including recharging/experimental variants.
  • Bug Fixes
    • Improved interaction reach checks by using the held device’s configured range (with a sensible fallback).

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e2b2da8e-ab84-452f-adaf-b5d831f24f7b

📥 Commits

Reviewing files that changed from the base of the PR and between aa57d6a and 624f4de.

📒 Files selected for processing (7)
  • Content.Client/Atmos/AlignAtmosPipeLayers.cs
  • Content.Client/RCD/AlignRCDConstruction.cs
  • Content.Client/RCD/RCDConstructionGhostSystem.cs
  • Content.Client/RCD/RCDMenuBoundUserInterface.cs
  • Content.Shared/RCD/RCDPrototype.cs
  • Content.Shared/RCD/Systems/RCDSystem.cs
  • Resources/Prototypes/_Goobstation/RPD/rpd.yml
🚧 Files skipped from review as they are similar to previous changes (6)
  • Resources/Prototypes/_Goobstation/RPD/rpd.yml
  • Content.Client/RCD/RCDMenuBoundUserInterface.cs
  • Content.Client/RCD/AlignRCDConstruction.cs
  • Content.Client/Atmos/AlignAtmosPipeLayers.cs
  • Content.Client/RCD/RCDConstructionGhostSystem.cs
  • Content.Shared/RCD/Systems/RCDSystem.cs

📝 Walkthrough

Walkthrough

This PR integrates a Rapid Piping Device (RPD) variant into the RCD system, adding configurable ranges, mirror/cross-direction prototypes, override prototype IDs, ignition support, and dynamic prototype grouping. Changes span server-side validity/finalization logic, client-side UI dehardcoding and pipe-layer alignment, and new configuration data.

Changes

RPD System Integration

Layer / File(s) Summary
RCD Component Data & Event Contracts
Content.Shared/RCD/Components/RCDComponent.cs, Content.Shared/RCD/Components/RCDDeconstructableComponent.cs, Content.Shared/RCD/RCDEvents.cs
RCDComponent gains access control for read/write Other access, OverrideProtoId, Range (default 1.5f), UseMirrorPrototype, IsRpd, EnableIgnite, IgniteChance, and IgnitedTime fields; RCDDeconstructableComponent adds RpdDeconstructable flag; three new serializable events defined for override-proto, mode-change, and ghost-flip operations.
Prototype Definitions & Group Configuration
Content.Shared/RCD/RCDGroupPrototype.cs, Content.Shared/RCD/RCDPrototype.cs
RDGroupPrototype introduced to organize RCD radial menu groups; RCDPrototype extended with optional MirrorPrototype and AllowCrossDirection properties for flexible prototype selection and placement rules.
RCDSystem Server-side Logic
Content.Shared/RCD/Systems/RCDSystem.cs
Reach validation refactored to use configurable component Range with MaxRaycastRange fallback, prototype grouping dictionary populated from RDGroupPrototype and refreshed on reload, validity checks rewritten to support override/mirror protos and cross-direction placement via AllowCrossDirection, RPD-specific deconstruction branching requires RpdDeconstructable when IsRpd, FinalizeRCDOperation updated to compute final rotation (world/grid adjusted) and apply it directly during spawn.
Client Ghost & Mirror Prototype Support
Content.Client/RCD/RCDConstructionGhostSystem.cs
Editor flip keybind toggles UseMirrorPrototype state, placer creation extracted to CreatePlacer helper computing effective prototype from override/mirror configuration, _lastPlacer tracking restores mirror state when held entity changes, server notified via RCDConstructionGhostFlipEvent.
Client Menu UI & Dynamic Grouping
Content.Client/RCD/RCDMenuBoundUserInterface.cs
Hardcoded static PrototypesGroupingInfo dictionary removed, RCDSystem injected to provide dynamic instance-backed PrototypesGroupingInfo, menu button layer construction uses instance grouping for tooltip/sprite data, HandleMenuOptionClick raises predictive ignition and override-proto events when RCDComponent is active.
Client Placement Alignment & Pipe Layers
Content.Client/Atmos/AlignAtmosPipeLayers.cs, Content.Client/RCD/AlignRCDConstruction.cs
AlignAtmosPipeLayers wired with HandsSystem to detect and synchronize RCDComponent override proto IDs for pipe layers, AlignRCDConstruction conditionally delegates rendering and placement mode to pipe layers when prototype has AtmosPipeLayersComponent, range validation uses configurable RCD.Range with MaxRaycastRange fallback.
Configuration, Localization & Assets
Resources/Prototypes/_Goobstation/Entities/Objects/Tools/tools.yml, Resources/Prototypes/_WL/Entities/Objects/Tools/tools.yml, Resources/Prototypes/_Goobstation/RPD/rpd.yml, Resources/Prototypes/_WL/RD/rcd.yml, Resources/Locale/ru-RU/..., Resources/Textures/..., Resources/Prototypes/Entities/Objects/Tools/tools.yml, Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml, .vscode/launch.json, Content.Shared/Charges/Components/LimitedChargesComponent.cs
New RPD entity variants (bluespace, experimental recharge, empty) with audio and sprite, radial UI prototype configuration for pipe segments/pumps/valves/vents/atmospheric utilities, Russian localization for new entities and RCD categories, RSI texture metadata for rpd/brpd/cercd, RCD entity gains IgnitionSource (800K), GasPipeSansLayers gains RCDDeconstructable support, LimitedChargesComponent attribute formatting adjusted.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Suggested reviewers

  • tau27
  • Litogin

Poem

🐰 Hop along the pipe-laying way,
Mirror flips and ranges play,
RPD arrives with gusto bright,
Rapid piping done just right!
*~ CodeRabbit's Whisker-Twitching Delight* 🔨✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: porting the RPD from Goob-Station and adding pipe layer support, which aligns with the primary focus of the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

RSI Diff Bot; head commit 624f4de merging into c05ea9e
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_Goobstation/Objects/Tools/rpd.rsi

State Old New Status
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_WL/Objects/Tools/brpd.rsi

State Old New Status
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/_WL/Objects/Tools/cercd.rsi

State Old New Status
icon Added
inhand-left Added
inhand-right Added

Edit: diff updated after 624f4de

@oldschoolotaku

Copy link
Copy Markdown
Collaborator

не забудь потом коменты распихать на все не наши изменения

@JrInventor05

Copy link
Copy Markdown
Contributor Author

не забудь потом коменты распихать на все не наши изменения

КНШН

@github-actions github-actions Bot removed the size/L label May 21, 2026
@JrInventor05 JrInventor05 marked this pull request as ready for review May 21, 2026 13:56

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🧹 Nitpick comments (3)
Content.Client/RCD/RCDConstructionGhostSystem.cs (1)

127-141: ⚡ Quick win

Remove the commented-out "moved into another method" block.

The original placer setup is fully replaced by CreatePlacer; keeping the old code as a multi-line comment just adds noise.

🔧 Proposed cleanup
-        /* moved into another method
-        // Create a new placer
-        var newObjInfo = new PlacementInformation
-        {
-            MobUid = heldEntity.Value,
-            PlacementOption = PlacementMode,
-            EntityType = prototype.Prototype,
-            Range = (int)Math.Ceiling(SharedInteractionSystem.InteractionRange),
-            IsTile = prototype.Mode == RcdMode.ConstructTile,
-            UseEditorContext = false,
-        };
-
-        _placementManager.Clear();
-        _placementManager.BeginPlacing(newObjInfo);
-        */
     }
🤖 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 `@Content.Client/RCD/RCDConstructionGhostSystem.cs` around lines 127 - 141,
Remove the obsolete commented block that initializes a placer (the multi-line
comment that creates a PlacementInformation instance and calls
_placementManager.Clear() / _placementManager.BeginPlacing(...)); the logic has
been replaced by CreatePlacer, so delete that commented-out code to reduce noise
and keep RCDConstructionGhostSystem.cs clean while ensuring no functional
changes to CreatePlacer or other placement logic.
Content.Client/Atmos/AlignAtmosPipeLayers.cs (1)

192-197: 💤 Low value

Use the already-pattern-matched rcdEnt instead of re-indexing rcd.Value.

rcd is { } rcdEnt already gives you a non-null value; reading rcd.Value.Owner afterwards just rehashes the optional. Minor cleanup:

🔧 Proposed cleanup
         if (!_pipeLayersSystem.TryGetAlternativePrototype(atmosPipeLayers, layer, out var newProtoId))
         {
             if (rcd is { } rcdEnt
                 && rcdEnt.Comp.OverrideProtoId != null) // don't dirty if it already null
-                _entityManager.RaisePredictiveEvent(new RCDOverrideProtoIdEvent(_entityManager.GetNetEntity(rcd.Value.Owner), null));
+                _entityManager.RaisePredictiveEvent(new RCDOverrideProtoIdEvent(_entityManager.GetNetEntity(rcdEnt.Owner), null));
             return;
         }
🤖 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 `@Content.Client/Atmos/AlignAtmosPipeLayers.cs` around lines 192 - 197, The
code pattern-matched a non-null variable `rcdEnt` but then re-indexes the
original optional via `rcd.Value.Owner`; update the call that constructs the
event in AlignAtmosPipeLayers (the _entityManager.RaisePredictiveEvent(new
RCDOverrideProtoIdEvent(...))) to use the already-pattern-matched `rcdEnt` for
the owner (e.g., use `rcdEnt.Owner`) instead of `rcd.Value.Owner`, leaving the
rest of the RCDOverrideProtoIdEvent invocation and null payload unchanged.
Content.Client/RCD/RCDMenuBoundUserInterface.cs (1)

21-30: ⚡ Quick win

Drop the commented-out PrototypesGroupingInfo dictionary now that grouping is sourced from RCDSystem.

The static dictionary is fully replaced by _rcd.PrototypesGroupingInfo; retaining the old definition as a multi-line comment just adds noise to the file.

🔧 Proposed cleanup
-    // WL-Change: dehardcode // commented
-    // private static readonly Dictionary<string, (string Tooltip, SpriteSpecifier Sprite)> PrototypesGroupingInfo
-    //     = new Dictionary<string, (string Tooltip, SpriteSpecifier Sprite)>
-    //     {
-    //         ["WallsAndFlooring"] = ("rcd-component-walls-and-flooring", new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/Radial/RCD/walls_and_flooring.png"))),
-    //         ["WindowsAndGrilles"] = ("rcd-component-windows-and-grilles", new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/Radial/RCD/windows_and_grilles.png"))),
-    //         ["Airlocks"] = ("rcd-component-airlocks", new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/Radial/RCD/airlocks.png"))),
-    //         ["Electrical"] = ("rcd-component-electrical", new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/Radial/RCD/multicoil.png"))),
-    //         ["Lighting"] = ("rcd-component-lighting", new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/Radial/RCD/lighting.png"))),
-    //     };
🤖 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 `@Content.Client/RCD/RCDMenuBoundUserInterface.cs` around lines 21 - 30, Remove
the commented-out static dictionary PrototypesGroupingInfo from
RCDMenuBoundUserInterface: locate the commented block that defines
PrototypesGroupingInfo (the multi-line comment starting with "private static
readonly Dictionary<string, (string Tooltip, SpriteSpecifier Sprite)>
PrototypesGroupingInfo") and delete it so only the runtime source
_rcd.PrototypesGroupingInfo is used; ensure no other references in the file rely
on the removed comment and keep usages pointed to _rcd.PrototypesGroupingInfo.
🤖 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 `@Content.Client/RCD/RCDConstructionGhostSystem.cs`:
- Line 32: The _useMirrorPrototype system field can go stale across heldEntity
swaps; stop using it and always read the component value on the RCD component at
runtime: update RCDConstructionGhostSystem.Update() to query
rcd.UseMirrorPrototype (or its inverted form) directly when deciding which
prototype to ghost, and change HandleFlip to only send the network flip event
rather than mutating _useMirrorPrototype; ensure any other places that currently
read _useMirrorPrototype (e.g., the ghost selection logic formerly around lines
121-125 and the check at the top of Update) are switched to read the RCD
component on the current heldEntity so client ghost state always reflects the
component, not a system-lifetime field.
- Line 33: FlipConstructionPrototype is declared but never raised; either remove
it or fire it when a flip occurs—update HandleFlip to invoke
FlipConstructionPrototype after performing the local state update (e.g., after
the flip logic and any UI/state refresh) so subscribers get notified, ensuring
you null-check the event (FlipConstructionPrototype?) before invoking; if no
subscribers are intended, delete the FlipConstructionPrototype event declaration
instead.

In `@Content.Shared/RCD/Systems/RCDSystem.cs`:
- Around line 733-737: The current early return on protoMiddle being null (var
protoMiddle = component.OverrideProtoId ?? prototype.Prototype; if (protoMiddle
== null) return;) short-circuits mode-specific deconstruction; move the
null-check into each construct branch that needs protoMiddle so that
prototype.Prototype is evaluated only when that branch runs (i.e., inside the
switch/case or if blocks handling different construct modes), and apply the same
change for the other similar blocks around the code handling the ranges noted
(the deconstruction branches at ~741-755 and ~795-810) to ensure deconstruction
occurs per-branch and you only return/skip when the specific branch requires a
missing protoMiddle.
- Around line 107-125: The handlers OverrideChanged and OnModeChanged apply
client-supplied NetEntity/rcd state without authenticating the sender; update
both to verify the event sender has authority over the target RCD before
mutating state: in OverrideChanged (handling RCDOverrideProtoIdEvent) and
OnModeChanged (handling RCDChangeModeEvent) obtain the sender/session from the
event, confirm the session is associated with a player entity that either owns
or is holding the RCD (e.g., check ownership/hand/component that references the
RCD) and only then call GetEntity/TryComp, set comp.OverrideProtoId, Dirty(...)
or call _source.SetIgnited; if authorization fails, return early and do not
apply changes. Ensure you reference the event types RCDOverrideProtoIdEvent and
RCDChangeModeEvent and protect calls to GetEntity, TryComp<RCDComponent>, Dirty,
and _source.SetIgnited behind this authorization check.

In `@Resources/Locale/ru-RU/_WL/entities/objects/tools/tools.ftl`:
- Around line 6-7: The Russian strings for the tool entity contain typos: update
the translation key ent-RPDExperimental and its description (.desc) to correct
spellings — change "эксперементальный" to "экспериментальный" in the entity name
and "Усовершенствовванное" to "Усовершенствованное" in ent-RPDExperimental.desc
(leave other wording intact unless you spot additional orthography issues).

In `@Resources/Locale/ru-RU/rcd/components/rcd-component.ftl`:
- Line 52: The locale entry for the key rcd-component-atmosphericutility has an
unintended leading space before "Атмос"; remove the extra leading whitespace so
the value becomes "Атмос" (no leading spaces) to prevent misaligned UI text.

In `@Resources/Prototypes/_Goobstation/Entities/Objects/Tools/tools.yml`:
- Around line 9-28: The RPD's availablePrototypes list in tools.yml is missing
the RadiatorBend entry referenced by rpd.yml; add "RadiatorBend" to the
availablePrototypes array (alongside other entries like Radiator, PipeBend,
etc.) so the RPD entity can spawn that prototype at runtime.

---

Nitpick comments:
In `@Content.Client/Atmos/AlignAtmosPipeLayers.cs`:
- Around line 192-197: The code pattern-matched a non-null variable `rcdEnt` but
then re-indexes the original optional via `rcd.Value.Owner`; update the call
that constructs the event in AlignAtmosPipeLayers (the
_entityManager.RaisePredictiveEvent(new RCDOverrideProtoIdEvent(...))) to use
the already-pattern-matched `rcdEnt` for the owner (e.g., use `rcdEnt.Owner`)
instead of `rcd.Value.Owner`, leaving the rest of the RCDOverrideProtoIdEvent
invocation and null payload unchanged.

In `@Content.Client/RCD/RCDConstructionGhostSystem.cs`:
- Around line 127-141: Remove the obsolete commented block that initializes a
placer (the multi-line comment that creates a PlacementInformation instance and
calls _placementManager.Clear() / _placementManager.BeginPlacing(...)); the
logic has been replaced by CreatePlacer, so delete that commented-out code to
reduce noise and keep RCDConstructionGhostSystem.cs clean while ensuring no
functional changes to CreatePlacer or other placement logic.

In `@Content.Client/RCD/RCDMenuBoundUserInterface.cs`:
- Around line 21-30: Remove the commented-out static dictionary
PrototypesGroupingInfo from RCDMenuBoundUserInterface: locate the commented
block that defines PrototypesGroupingInfo (the multi-line comment starting with
"private static readonly Dictionary<string, (string Tooltip, SpriteSpecifier
Sprite)> PrototypesGroupingInfo") and delete it so only the runtime source
_rcd.PrototypesGroupingInfo is used; ensure no other references in the file rely
on the removed comment and keep usages pointed to _rcd.PrototypesGroupingInfo.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: a844aad0-48db-47fa-86cb-0309fc22c433

📥 Commits

Reviewing files that changed from the base of the PR and between c05ea9e and 0bb9afa.

⛔ Files ignored due to path filters (30)
  • Resources/Audio/_WL/Items/handling/rpd_drop.ogg is excluded by !**/*.ogg
  • Resources/Audio/_WL/Items/handling/rpd_pickup.ogg is excluded by !**/*.ogg
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/bend.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/dual_port.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/fourway.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/gas_filter.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/gas_mixer.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/injector.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/pneumatic_valve.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/port.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/pump_manual_valve.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/pump_pressure.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/pump_signal_valve.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/pump_volume.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/radiator.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/radiator_bend.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/scrub_off.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/straight.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/tjunction.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/vent_off.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Interface/Radial/RPD/vent_passive.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Objects/Tools/rpd.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Objects/Tools/rpd.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_Goobstation/Objects/Tools/rpd.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/brpd.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/brpd.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/brpd.rsi/inhand-right.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/cercd.rsi/icon.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/cercd.rsi/inhand-left.png is excluded by !**/*.png
  • Resources/Textures/_WL/Objects/Tools/cercd.rsi/inhand-right.png is excluded by !**/*.png
📒 Files selected for processing (24)
  • .vscode/launch.json
  • Content.Client/Atmos/AlignAtmosPipeLayers.cs
  • Content.Client/RCD/AlignRCDConstruction.cs
  • Content.Client/RCD/RCDConstructionGhostSystem.cs
  • Content.Client/RCD/RCDMenuBoundUserInterface.cs
  • Content.Shared/Charges/Components/LimitedChargesComponent.cs
  • Content.Shared/RCD/Components/RCDComponent.cs
  • Content.Shared/RCD/Components/RCDDeconstructableComponent.cs
  • Content.Shared/RCD/RCDEvents.cs
  • Content.Shared/RCD/RCDGroupPrototype.cs
  • Content.Shared/RCD/RCDPrototype.cs
  • Content.Shared/RCD/Systems/RCDSystem.cs
  • Resources/Locale/ru-RU/_WL/entities/objects/tools/tools.ftl
  • Resources/Locale/ru-RU/rcd/components/rcd-component.ftl
  • Resources/Locale/ru-RU/ss14-ru/prototypes/_Goobstation/entities/objects/tools/tools.ftl
  • Resources/Prototypes/Entities/Objects/Tools/tools.yml
  • Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
  • Resources/Prototypes/_Goobstation/Entities/Objects/Tools/tools.yml
  • Resources/Prototypes/_Goobstation/RPD/rpd.yml
  • Resources/Prototypes/_WL/Entities/Objects/Tools/tools.yml
  • Resources/Prototypes/_WL/RD/rcd.yml
  • Resources/Textures/_Goobstation/Objects/Tools/rpd.rsi/meta.json
  • Resources/Textures/_WL/Objects/Tools/brpd.rsi/meta.json
  • Resources/Textures/_WL/Objects/Tools/cercd.rsi/meta.json

Comment thread Content.Client/RCD/RCDConstructionGhostSystem.cs Outdated
Comment thread Content.Client/RCD/RCDConstructionGhostSystem.cs Outdated
Comment thread Content.Shared/RCD/Systems/RCDSystem.cs
Comment thread Content.Shared/RCD/Systems/RCDSystem.cs
Comment thread Resources/Locale/ru-RU/_WL/entities/objects/tools/tools.ftl Outdated
Comment thread Resources/Locale/ru-RU/rcd/components/rcd-component.ftl Outdated
Comment thread Resources/Prototypes/_Goobstation/Entities/Objects/Tools/tools.yml
@oldschoolotaku

Copy link
Copy Markdown
Collaborator

линтер не оценил твой ивент

@JrInventor05

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Litogin Litogin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавить комментарии на using

@JrInventor05

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@JrInventor05 JrInventor05 requested a review from Litogin June 15, 2026 07:40
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@github-actions github-actions Bot added size/L and removed size/M labels Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants