* initial system (this math is probably WRONG)
* General code cleanup and OnExamined support
(holy moly this code sucks)
* UICode and related events foundation
TODO:
- Actually write the XAML UI and the underlying system
- Un-shitcode the entire thing
- Actually test everything...
* Working UI code
TODO: Make predicted, as this certainly isn't predicted. Even though I said it was. It isn't.
* Remove one TODO for unshitcoding the examine code
* Add reminder
yea
* Make predicted (defenitely isn't)
(also defenitely isn't a copypaste from pressure pump code)
* It's predicted!
TODO:
- Give it snazzy predicted visuals!
- Have a different field for pressure entry, lest it gets bulldozed every UI update.
* Improve gas pressure relief valve UI
TODO: Reminder to reduce amount of dirties using deltafields
* Implement DirtyField prediction
* Entity<T> cleanup
A lot of Entity<T> conversions and lukewarm cleanup.
Also got caught copy pasting code in 4K UHD but it's not like you couldn't tell.
* More cleanup and comments
* Remove TODO comment on bulldozing window title
* """refactoring"""
- Move appearance out of shared and finally fix it. Pointless to predict appearance in this instance.
- More Entity<T> conversions because I like them.
- Move UI creation handling over entirely to the ActivatableUI system.
- Fix a hardcoded locale string (why????).
* Add visuals
* Revert debugging variable replacememt
yea
* Revert skissue
* Remove unused using directives and remove TODO
* Localize, cleanup, document
* Fix adminlogging discrepancy
* Add ability to construct, add guidebook entry
* Clear up comment
* Add guidebook tooltip to valve
* Convert GasPressureReliefValveBoundUserInterface declaration into primary constructor
* Adds more input handling and adds autofill on open
* Un-deepfry input validator shitcode
Genuinely what was I smoking
* improve visuals logic
* Refactor again
- Update math to the correct implementation
- Moved code that could be re-used in the future into a helper method under AtmosphereSystem.Gases.cs
* I'm sorry but I hate warnings
* Remove unused using directive in AtmosphereSystem.Gases.cs
* Review and cleanup
* Lukewarm UI glossup
* Maintainer for the upstream project btw
* Remove redundant state sets and messy logic
* Unduplicate valve updater code
* Redo UI (im sorry Slarti)
* run tests
* Test refactored UI messaging
* Second round of UI improvements
- God please find a way to improve this system. Feels bad.
* Update loop implementation
* Further predict UI
* Clear up SetToCurrentThreshold
* cleanup
* Update to master + pipe layers and bug fixes
want to run tests
* fixes
* Deploy rename pipebomb
* Documentation and requested changes
* Rename the method that wiggled away
* Undo rounding changes
* Fix comment
* Rename and cleanup
* Apply suggestions from code review
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* 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.
* 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
* 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 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
* Refactors the entirety of the AtmosphereSystem public-facing API to allow for multiple atmos backends.
* actually compiles
* Remove commented out code
* funny bracket
* Move archived moles, temperature from GasMixture to TileAtmosphere.
* WIP customizable map default mixture
still VERY buggy
* broken mess
aaaaaaaaaaaaa
* Fix lattice, etc not being considered space
* visualization for "IsSpace"
* help
* Update Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Holy SHIT it compiles AGAIN
* Fix AtmosDeviceSystem crash at shutdown
* Fix immutable tiles on map blueprints not being fixed by fixgridatmos/revalidate.
* Use space instead of gasmixture immutable for heat capacity calculations
* Remove all LINDA-specific code from GasMixture, move it to TileAtmosphere/AtmosphereSystem instead.
* Fix roundstart tiles not processing
* Update Content.Server/Atmos/Commands/SetTemperatureCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs
Changed Files tab is so large I can't commit both suggestions at once mfw
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Initial
* Cleanup a bunch of things
* some changes dunno
* RequireAnchored
* a
* stuff
* more work
* Lots of progress
* delete pipe visualizer
* a
* b
* pipenet and pipenode cleanup
* Fixes
* Adds GasValve
* Adds GasMiner
* Fix stuff, maybe?
* More fixes
* Ignored components on the client
* Adds thermomachine behavior, change a bunch of stuff
* Remove Anchored
* some work, but it's shitcode
* significantly more ECS
* ECS AtmosDevices
* Cleanup
* fix appearance
* when the pipe direction is sus
* Gas tanks and canisters
* pipe anchoring and stuff
* coding is my passion
* Unsafe pipes take longer to unanchor
* turns out we're no longer using eris canisters
* Gas canister inserted tank appearance, improvements
* Work on a bunch of appearances
* Scrubber appearance
* Reorganize AtmosphereSystem.Piping into a bunch of different systems
* Appearance for vent/scrubber/pump turns off when leaving atmosphere
* ThermoMachine appearance
* Cleanup gas tanks
* Remove passive gate unused imports
* remove old canister UI functionality
* PipeNode environment air, make everything use AssumeAir instead of merging manually
* a
* Reorganize atmos to follow new structure
* ?????
* Canister UI, restructure client
* Restructure shared
* Fix build tho
* listen, at least the canister UI works entirely...
* fix build : )
* Atmos device prototypes have names and descriptions
* gas canister ui slider doesn't jitter
* trinary prototypes
* sprite for miners
* ignore components
* fix YAML
* Fix port system doing useless thing
* Fix build
* fix thinking moment
* fix build again because
* canister direction
* pipenode is a word
* GasTank Air will throw on invalid states
* fix build....
* Unhardcode volume pump thresholds
* Volume pump and filter take time into account
* Rename Join/Leave atmosphere events to AtmosDeviceEnabled/Disabled Event
* Gas tank node volume is set by initial mixtuer
* I love node container