* fix: only show pipe layer popups to the user changing them
* fix: don't show pipe layer subfloor popup when not using a screwdriver
* fix: properly pass down user and used for serverside pipe layer changes
Technically this doesn't matter as the Shared codepath for this method
doesn't actually use these on the server: only the user is used for a
clientside popup. Still, will be good to have these for future changes
that might need them.
* - Combine enum keys `ToggleableLightVisuals` and `ToggleVisuals` into `ToggleableVisuals`
- Rename `ToggleableLightVisualsComponent` to `ToggleableVisualsComponent` and `ToggleableLightVisualsSystem` to `ToggleableVisualsSystem`
- (The `SpriteLayer` field on the component is now required because the old default of `light` doesn't make sense anymore)
- Make it so that `ToggleableVisualsComponent` works even when there's not a light attached to the entity
- (Amazingly this seems to have only applied to Headphones, but I can only imagine there are many other things people would like to do with simple toggleable visuals)
- Explicitly make `ItemTogglePointLightComponent`'s purpose to make `ToggleVisualsComponent` apply to `PointLightComponent`s on the same entity.
- Add field `ToggleableVisualsColorModulatesLights`, which makes the `Color` appearance value of `ToggleableVisuals` modulate the color of lights on the same entity
- Lots of prototype updates to uptake the above
* fix bad merge
* unbork robust
* blindly letting rider reformat stuff
* I guess I never cleaned up these imports at all
* Make PryTile use Entity<T>
Converts the old parameters into an obsolete overload
* Make HandleDecompressionFloorRip use Entity<T>
Converts the old parameters into an obsolete overload
* Convert the one use to use Entity<T>
* Delete obsolete private methods
* Predicted gas pumps
I wanted to try out atmos and first thing I found.
* a
* Atmos device prediction
- Canisters
- Tanks
- Internals
AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.
* Remove details range
* Gas tank prediction
* Even more sweeping changes
* Alerts
* rehg
* Popup fix
* Fix merge conflicts
* Fix
* Review
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* Fire extinguishers now put out candles
This did not actually require any changes to flammable or extinguishers directly, the only necessary changes were to make the collision actually work.
Vapor entities (also used for fire extinguishers) now have a collision layer, so they can hit items.
Added a new FlammableSetCollisionWake component to actually enable collision on candles while they are lit, because otherwise CollisionWake on entities gets in the way too.
* Extinguishing items is now relayed to held/worn items
This means held candles get extinguished too.
Involved moving the core logic of ExtinguishReaction into an event so that it can be relayed via the existing hand/inventory relay logic.
* Add helper functions for subscribing to relayed events.
Use these in FlammableSystem
* Make extinguishers work on cigarettes too
A bunch of renaming to make the rest of my code work with SmokableComponent
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* 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