Atmospheric network monitor (#32294)

* Updated to latest master version

* Added gas pipe analyzer

* Completed prototype

* Playing with UI display

* Refinement of the main UI

* Renamed gas pipe analyzer to gas pipe sensor

* Added focus network highlighting and map icons for gas pipe sensors

* Added construction graph for gas pipe sensor

* Improved efficiency of atmos pipe and focus pipe network data storage

* Added gas pipe sensor variants

* Fixed gas pipe sensor nav map icon not highlighting on focus

* Rendered pipe lines now get merged together

* Set up appearance handling for the gas pipe sensor, but setting the layers is bugged

* Gas pipe sensor lights turn off when the device is unpowered

* Renamed console

* The gas pipe sensor is now a pipe. Redistributed components between it and its assembly

* AtmosMonitors can now optionally monitor their internal pipe network instead of the surrounding atmosphere

* Massive code clean up

* Added delta states to handle pipe net updates, fixed entity deletion handling

* Nav map blip data has been replaced with prototypes

* Nav map blip fixes

* Nav map colors are now set by the console component

* Made the nav map more responsive to changes in focus

* Updated nav map icons

* Reverted unnecessary namespace changes

* Code tidy up

* Updated sprites and construction graph for gas pipe sensor

* Updated localization files

* Misc bug fixes

* Added missing comment

* Fixed issue with the circuit board for the monitor

* Embellished the background of the console network entries

* Updated console to account for PR #32273

* Removed gas pipe sensor

* Fixing merge conflict

* Update

* Addressing reviews part 1

* Addressing review part 2

* Addressing reviews part 3

* Removed unnecessary references

* Side panel values will be grayed out if there is no gas present in the pipe network

* Declaring colors at the start of some files

* Added a colored stripe to the side of the atmos network entries

* Fixed an issue with pipe sensor blip coloration

* Fixed delay that occurs when toggling gas sensors on/off
This commit is contained in:
chromiumboy
2024-12-16 21:53:17 -06:00
committed by GitHub
parent f4765260cb
commit 27e59d35fb
47 changed files with 2486 additions and 66 deletions

View File

@@ -26,6 +26,15 @@
components:
- type: ComputerBoard
prototype: ComputerAlert
- type: entity
parent: BaseComputerCircuitboard
id: AtmosMonitoringComputerCircuitboard
name: atmospheric network monitor board
description: A computer printed circuit board for an atmospheric network monitor.
components:
- type: ComputerBoard
prototype: ComputerAtmosMonitoring
- type: entity
parent: BaseComputerCircuitboard

View File

@@ -49,6 +49,39 @@
enum.WiresUiKey.Key:
type: WiresBoundUserInterface
- type: entity
parent: BaseComputerAiAccess
id: ComputerAtmosMonitoring
name: atmospheric network monitor
description: Used to monitor the station's atmospheric networks.
components:
- type: Computer
board: AtmosMonitoringComputerCircuitboard
- type: Sprite
layers:
- map: ["computerLayerBody"]
state: computer
- map: ["computerLayerKeyboard"]
state: generic_keyboard
- map: ["computerLayerScreen"]
state: tank
- map: ["computerLayerKeys"]
state: atmos_key
- map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
state: generic_panel_open
- type: AtmosMonitoringConsole
navMapTileColor: "#1a1a1a"
navMapWallColor: "#404040"
- type: ActivatableUI
singleUser: true
key: enum.AtmosMonitoringConsoleUiKey.Key
- type: UserInterface
interfaces:
enum.AtmosMonitoringConsoleUiKey.Key:
type: AtmosMonitoringConsoleBoundUserInterface
enum.WiresUiKey.Key:
type: WiresBoundUserInterface
- type: entity
parent: BaseComputer
id: ComputerEmergencyShuttle

View File

@@ -0,0 +1,56 @@
# All consoles
- type: navMapBlip
id: NavMapConsole
blinks: true
color: Cyan
texturePaths:
- "/Textures/Interface/NavMap/beveled_circle.png"
# Atmos monitoring console
- type: navMapBlip
id: GasPipeSensor
selectable: true
color: "#ffcd00"
texturePaths:
- "/Textures/Interface/NavMap/beveled_star.png"
- type: navMapBlip
id: GasVentOpening
scale: 0.6667
color: LightGray
texturePaths:
- "/Textures/Interface/NavMap/beveled_square.png"
- type: navMapBlip
id: GasVentScrubber
scale: 0.6667
color: LightGray
texturePaths:
- "/Textures/Interface/NavMap/beveled_circle.png"
- type: navMapBlip
id: GasFlowRegulator
scale: 0.75
color: LightGray
texturePaths:
- "/Textures/Interface/NavMap/beveled_arrow_south.png"
- "/Textures/Interface/NavMap/beveled_arrow_east.png"
- "/Textures/Interface/NavMap/beveled_arrow_north.png"
- "/Textures/Interface/NavMap/beveled_arrow_west.png"
- type: navMapBlip
id: GasValve
scale: 0.6667
color: LightGray
texturePaths:
- "/Textures/Interface/NavMap/beveled_diamond_north_south.png"
- "/Textures/Interface/NavMap/beveled_diamond_east_west.png"
- "/Textures/Interface/NavMap/beveled_diamond_north_south.png"
- "/Textures/Interface/NavMap/beveled_diamond_east_west.png"
- type: navMapBlip
id: Thermoregulator
scale: 0.6667
color: LightGray
texturePaths:
- "/Textures/Interface/NavMap/beveled_hexagon.png"

View File

@@ -79,6 +79,8 @@
!type:PortablePipeNode
nodeGroupID: Pipe
pipeDirection: South
- type: AtmosMonitoringConsoleDevice
navMapBlip: Thermoregulator
- type: ItemSlots
slots:
beakerSlot:

View File

@@ -73,7 +73,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_pump.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasFlowRegulator
- type: entity
parent: GasBinaryBase
id: GasVolumePump
@@ -130,7 +132,9 @@
examinableAddress: true
prefix: device-address-prefix-volume-pump
- type: WiredNetworkConnection
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasFlowRegulator
- type: entity
parent: GasBinaryBase
id: GasPassiveGate
@@ -159,7 +163,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasValve
- type: entity
parent: GasBinaryBase
id: GasValve
@@ -207,7 +213,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasValve
- type: entity
parent: GasBinaryBase
id: SignalControlledValve
@@ -266,7 +274,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasValve
- type: entity
parent: GasBinaryBase
id: GasPort
@@ -295,7 +305,9 @@
- type: Construction
graph: GasBinary
node: port
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentOpening
- type: entity
parent: GasVentPump
id: GasDualPortVentPump
@@ -351,7 +363,9 @@
pipeDirection: South
- type: AmbientSound
enabled: true
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentOpening
- type: entity
parent: [ BaseMachine, ConstructibleMachine ]
id: GasRecycler
@@ -413,7 +427,9 @@
acts: ["Destruction"]
- type: Machine
board: GasRecyclerMachineCircuitboard
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasValve
- type: entity
parent: GasBinaryBase
id: HeatExchanger
@@ -453,3 +469,5 @@
- type: Construction
graph: GasBinary
node: radiator
- type: AtmosMonitoringConsoleDevice
navMapBlip: Thermoregulator

View File

@@ -27,6 +27,9 @@
True: { state: lights }
- type: AtmosMonitor
monitorsPipeNet: true
- type: GasPipeSensor
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasPipeSensor
- type: ApcPowerReceiver
- type: ExtensionCableReceiver
- type: Construction

View File

@@ -54,6 +54,7 @@
- type: PipeRestrictOverlap
- type: AtmosUnsafeUnanchor
- type: AtmosPipeColor
- type: AtmosMonitoringConsoleDevice
- type: Tag
tags:
- Pipe

View File

@@ -70,7 +70,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasFlowRegulator
- type: entity
parent: GasFilter
id: GasFilterFlipped
@@ -158,7 +160,9 @@
range: 5
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasFlowRegulator
- type: entity
parent: GasMixer
id: GasMixerFlipped
@@ -257,3 +261,5 @@
- type: Construction
graph: GasTrinary
node: pneumaticvalve
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasFlowRegulator

View File

@@ -68,7 +68,9 @@
sound:
path: /Audio/Ambience/Objects/gas_vent.ogg
- type: Weldable
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentOpening
- type: entity
parent: GasUnaryBase
id: GasPassiveVent
@@ -92,7 +94,9 @@
- type: Construction
graph: GasUnary
node: passivevent
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentOpening
- type: entity
parent: [GasUnaryBase, AirSensorBase]
id: GasVentScrubber
@@ -141,7 +145,9 @@
sound:
path: /Audio/Ambience/Objects/gas_vent.ogg
- type: Weldable
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentScrubber
- type: entity
parent: GasUnaryBase
id: GasOutletInjector
@@ -180,7 +186,9 @@
visibleLayers:
- enum.SubfloorLayers.FirstLayer
- enum.LightLayers.Unshaded
- type: AtmosMonitoringConsoleDevice
navMapBlip: GasVentOpening
- type: entity
parent: [ BaseMachinePowered, ConstructibleMachine ]
id: BaseGasThermoMachine
@@ -224,7 +232,9 @@
examinableAddress: true
- type: WiredNetworkConnection
- type: PowerSwitch
- type: AtmosMonitoringConsoleDevice
navMapBlip: Thermoregulator
- type: entity
parent: BaseGasThermoMachine
id: GasThermoMachineFreezer
@@ -429,3 +439,5 @@
- type: ExaminableSolution
solution: tank
- type: PowerSwitch
- type: AtmosMonitoringConsoleDevice
navMapBlip: Thermoregulator