Skip to content

Porting Starlight Plumbing System#2

Draft
Copilot wants to merge 2 commits intopersistence_testingfrom
copilot/port-starlight-plumbing-system
Draft

Porting Starlight Plumbing System#2
Copilot wants to merge 2 commits intopersistence_testingfrom
copilot/port-starlight-plumbing-system

Conversation

Copy link
Copy Markdown

Copilot AI commented Feb 20, 2026

Ports the Starlight reagent Plumbing system from ss14Starlight/space-station-14 into the persistence fork, branched from persistence_testing.

Changes

New Code (ported from Starlight)

  • Content.Server/_Starlight/Plumbing/ — Server-side entity systems (PlumbingDeviceSystem, PlumbingInletSystem, PlumbingOutletSystem, PlumbingInputSystem, PlumbingOutputSystem, PlumbingFilterSystem, PlumbingReactorSystem, PlumbingSynthesizerSystem, PlumbingPillPressSystem, PlumbingSmartDispenserSystem, PlumbingConnectorAppearanceSystem, PlumbingPullSystem), node group (PlumbingNet), pipe node (PlumbingNode), and associated events/components
  • Content.Shared/_Starlight/Plumbing/ — Shared components and BUI state definitions for all plumbing machines
  • Content.Client/_Starlight/Plumbing/ — Client-side appearance system and XAML UI windows for Filter, Reactor, Synthesizer, Smart Dispenser, and Pill Press

New Resources

  • Resources/Prototypes/_StarLight/Entities/Structures/Piping/Plumbing/ — Entity prototypes for fluid ducts (straight, bend, T-junction, fourway) and plumbing machines (Tank, Input, Output, Filter, Reactor, Synthesizer, Smart Dispenser, Pill Press, Bottler)
  • Resources/Textures/_Starlight/Structures/Piping/Plumbing/ — RSI sprite sheets for all plumbing entities
  • Resources/Locale/en-US/_Starlight/plumbing/ — Fluent localization strings for plumbing UI

Modifications to Existing Files

  • NodeGroupID.cs — Added Plumbing enum value for the reagent duct node network
  • RCDDeconstructibleComponent.cs — Added rpld DataField for YAML compatibility with plumbing prototypes
  • SharedChemMaster.cs — Added PatchSolutionName = "patch" constant used by the Pill Press
  • tags.yml — Added Patch and PlumbingDuct tag definitions

New Dependency Stubs

  • BeakerBarChart.cs — UI bar chart widget used by the Smart Dispenser window
  • PatchComponent.cs — Minimal component for patch items produced by the Pill Press
  • patch.yml — Minimal Patch entity prototype for Pill Press output
Original prompt

Create a new branch starlight-plumbing-port from persistence_testing in Koollan/SS14-Persistence and open a draft pull request targeting persistence_testing.

PR Title: Porting Starlight Plumbing System

PR Description:

  • This is a draft PR intended to port the Starlight reagent Plumbing system into the persistence fork.
  • Start by creating the branch from persistence_testing.
  • Open the draft PR from starlight-plumbing-port into persistence_testing.

No additional code changes are explicitly requested in this step; focus on branch + draft PR creation.

This pull request was created from Copilot chat.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Porting Starlight plumbing system Porting Starlight Plumbing System (Draft) Feb 20, 2026
Copilot AI requested a review from Koollan February 20, 2026 17:31
Copy link
Copy Markdown
Owner

@Koollan Koollan left a comment

Choose a reason for hiding this comment

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

Now porting work needs to be done

- Add Content.Server/_Starlight/Plumbing/ (systems, components, nodes, nodegroups)
- Add Content.Shared/_Starlight/Plumbing/ (components, shared state)
- Add Content.Client/_Starlight/Plumbing/ (appearance system, UI windows)
- Add Resources/Prototypes/_StarLight/Entities/Structures/Piping/Plumbing/
- Add Resources/Textures/_Starlight/Structures/Piping/Plumbing/ (RSI sprites)
- Add Resources/Locale/en-US/_Starlight/plumbing/ (FTL strings)
- Add NodeGroupID.Plumbing to NodeGroupID enum
- Add rpld DataField to RCDDeconstructableComponent
- Add PatchSolutionName to SharedChemMaster
- Add BeakerBarChart UI control to Content.Client/Medical/Cryogenics
- Add PatchComponent to Content.Shared/_Starlight/Medical/Items/Components
- Add Patch and PlumbingDuct tags to tags.yml
- Add minimal Patch entity prototype

Co-authored-by: Koollan <23038489+Koollan@users.noreply.github.com>
Copy link
Copy Markdown
Author

Copilot AI commented Feb 20, 2026

Now porting work needs to be done

Done. Ported the full Starlight Plumbing System in commit 400b1890. The port includes:

  • Server-side systems: PlumbingDeviceSystem, PlumbingInletSystem, PlumbingOutletSystem, PlumbingInputSystem, PlumbingOutputSystem, PlumbingFilterSystem, PlumbingReactorSystem, PlumbingSynthesizerSystem, PlumbingPillPressSystem, PlumbingSmartDispenserSystem, PlumbingConnectorAppearanceSystem, PlumbingPullSystem
  • Node group: PlumbingNet + PlumbingNode (extends PipeNode)
  • Client UI: XAML windows + BUI for Filter, Reactor, Synthesizer, Smart Dispenser, and Pill Press
  • Prototypes: Fluid ducts (straight, bend, T-junction, fourway) and all plumbing machines (Tank, Input, Output, Filter, Reactor, Synthesizer, Smart Dispenser, Pill Press, Bottler)
  • Sprites: RSI sprite sheets for all plumbing entities
  • Localization: FTL files for UI strings
  • Required dependency stubs: PatchComponent, BeakerBarChart UI control, PatchSolutionName constant, NodeGroupID.Plumbing enum value, Patch/PlumbingDuct tags

Copilot AI changed the title Porting Starlight Plumbing System (Draft) Porting Starlight Plumbing System Feb 20, 2026
Copilot AI requested a review from Koollan February 20, 2026 17:45
Koollan pushed a commit that referenced this pull request Mar 25, 2026
* init

new disks are in. can be spawned or printed. no weights or correctly bound techs yet.

* tweak textures and naming

* make tech disks respect their tier and discipline

* make tech console respect tier weight

* yml fixes (forgo a million things)

* meow :3 reworked to use GenericVisualizer

* moved staticPrice comp to shared to support different pricing per tier

* unhardcoded prices; tweaked log messages

* cleanup

* a few fixes

* updated pricing to match weights

* lowering prices I forgor how many of them science can print

* what

* t3 texture, logger, factory

* move PriceCalculationEvent & EstimatedPriceCalculationEvent to shared

* remove static price comp; use EntProtoId for disk proto

* moved staticPrice comp back to server

* cleanup: price event, visualizer enums & yml

* ummove PriceCalculationEvent

* ummove PriceCalculationEvent attempt #2

* more unmoving

* fixes

* predict onExamine

* review changes

* small cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants