* add powered variable to vent components
* add checks for powered to vent systems
also corrected onpowerchanged methods to update powered arg.
* removed powered from components
* Use ApcPowerReceieverComponent for power state.
* removed unneeded code from OnPowerChanged
* document what enabled is used for in components
* only you can prevent oopsie daisies.
* add check for powered in OnGasVentPumpUpdated
* apcPowerReceiverComponent BEGONE
* CODE RED EVERYTHINGS ON FIRE wait we're fine now.
* Make ReactionResults an array
We're making the dictionaries fixed-size anyway.
Alternatively could use a frozendictionary but not sure on the perf difference. Worst case whoever adds another reactionresult makes a minor adjustment
* apply conventions
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Significantly updates the Engineering guidebook (more explicitly the Atmos section) to have a lot more relevant and useful information.
Right now engineering has been getting update after update with no real change to the relevant guidebook entry. This has lead to a lot of out of date information and bad practices being prevalent in the guidebook, something that pains me to read.
1. Now clearly says "opened"/"closed" when changing the release valve.
2. Clearly says whether the valve was opened while a canister was inserted or not.
3. When a tank is ejected, logs if the valve is open and the ejection started spilling into the environment.
Fixes#34488
* 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
* Initial commit
* Monitored pipe node is now referenced by name
* Review changes
* Simplified construction
* Tweaked deconstruction to match other binary atmos devices
* Helper function removal
* Updated attribution
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
* Initial commit
* Tidy up
* Add firelocks to the nav map
* Add nav map regions to atmos alerts computer
* Added support for multiple region overlay sets per grid
* Fixed issue where console values were not updating correctly
* Fixing merge conflict
* Fixing merge conflicts
* Finished all major features
* Removed station map regions (to be re-added in a separate PR)
* Improved clarity
* Adjusted the color saturation of the regions displayed on the atmos alerts computer
The comparison for doing gas exchange used current and not archived
moles. This could lead to update order-dependent gas spreading effects.
To fix this, convert TileAtmosphere's MolesArchived and
TemperatureArchived to a AirArchived, and use that in the comparison
method.
---------
Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
* builds
* doesn't crash
* seems to work
* distance cap was dumb
* Requested changes
* can't find any issues from making the changes
* Check for anchor and minor optimisation
* Removed unnecessary usings
* Code less verbose and cleanup
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
If air sensor/vent detects danger while the air alarm is unpowered, the air alarm won't be updated accordingly when it gains power. This can cause situations where the alarm says that everything's normal, even though the alarm UI shows stuff like 10000kPa and all sensors display danger.
When AtmosAlarmable (air alarm) is powered on, it runs the Sync method of AtmosDeviceNetworkSystem. AtmosMonitors then answer by sending a SyncData packet back, however AtmosAlarmable doesn't handle this packet in any way. This happens because the packet doesn't have any tags set, so they are ignored, and even if they weren't, there's no case in the switch statement which handles the syncing.
The proper way to do this fix is probably by actually handling this packet in some way, but I'm lazy rn so I'll just use this quick fix: Whenever AtmosMonitor gets a request to sync, it runs the Alert method, informing the connected air alarms of it's current state.
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* Remove client state from server AirAlarmComponent
Send information for all connected devices, not just the ones for the
current tab, as attempting to limit this breaks multiple users viewing
the same UI.
Fixes#12842
* Send device data as a list, rather than a dictionary
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* greatly improve how the gas analyzer behaves
* don't close the analyzer when the object goes out of range
* cleanup
* always switch to the device tab when a new device is analyzed
* modern api part one
* modern api part 2
* modern api part three
* file scope namespace
* add verbose examine text to gas miners so their behaviour can be understood
* no need for these to be properties
* use an enum instead of two booleans for the miner state
* require the gas miner to be anchored in order to not be disabled
* xmldoc
* pr feedback
* file-scope namespace
* it's to late to hide my transgressions in a rebase
* turns out the normal examine distance is totally fine for this
* GET WORLD POSITON, ROTATION
* Missing parentheses
* ui system depndency
* the issue
* Unused
* Let the function do the transform
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Replace EntityCoordiates.InRange() with TransformSystem.InRange()
* nullspace
* I figured it out
* man I have no clue how client side sutff works
* please have mercy
* remove RadiationPulseOverlay changes
* nullspace
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* blah, setup
* Updates GasTankSystem and InternalsSystem to not use Component.Owner
* squish the diff
* Fixa the rest
---------
Co-authored-by: plykiya <plykiya@protonmail.com>