Commit Graph

46 Commits

Author SHA1 Message Date
chromiumboy
27e59d35fb 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
2024-12-17 04:53:17 +01:00
slarticodefast
ede8a1d377 Fix gas pipe leaking when unanchoring or breaking them (#33774)
* fix gas pipe unanchoring

* remove unneeded update

* revert popup change
2024-12-09 00:20:04 +01:00
metalgearsloth
9365e3a99b Predicted gas pumps (#33717)
* Predicted gas pumps

I wanted to try out atmos and first thing I found.

* a

* Remove details range
2024-12-07 14:39:52 +11:00
Tayrtahn
e6f55fafb4 Fix AtmosDeviceSystem debug assert Heisenbug (#29752)
Fix AtmosDeviceSystem debug assertion Heisenbug
2024-07-11 16:14:34 +10:00
osjarw
6af418663e Limit air lost by wrenching/breaking pipes (#29574)
Gas lost via wrench/breaking capped
2024-06-29 09:06:25 -07:00
Leon Friedrich
888a3bda51 Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile
2024-03-30 15:17:53 +11:00
Leon Friedrich
77e029d4ca Remove atmos method events (#26402)
* Remove HasAtmosphereMethodEvent

* Remove GetTileMixturesMethodEvent

* Remove GetTileMixtureMethodEvent

* Remove GetAdjacentTilesMethodEvent

* Add TileMixtureEnumerator

* Remove GetAdjacentTileMixturesMethodEvent

* Remove IsTileSpaceMethodEvent

* Remove HotspotExposeMethodEvent

* Remove pipe net method events

* Remove device method events

* Use Entity<T>

* Misc fixes

* A

* Theres probably a few more of these

* Fix other resolve errors
2024-03-28 13:22:19 +11:00
Tayrtahn
ae3d745430 Code Cleanup: Purge obsolete MapManager methods (#26279)
* GetGrid

* GridExists

* TryGetGrid
2024-03-22 18:08:40 +11:00
Kara
bc1f8b0e40 Convert atmos device events to ref events (#22843) 2023-12-21 17:48:18 -08:00
Kevin Zheng
6444f7b7c5 Make pipes leak when destroyed (#20928)
This plugs a meta where atmos techs were fireaxing pipes to remove them without leaking their contents.
2023-12-10 23:51:45 -08:00
DrSmugleaf
f560f88eb5 Remove 700 usages of Component.Owner (#21100) 2023-10-19 12:34:31 -07:00
Kevin Zheng
57bf21cb6a Add atmos tick time to atmos device update event (#18781) 2023-08-07 11:36:43 -06:00
Visne
5a5a3afbb1 Remove some obsolete AppearanceComponent method usages (#13726) 2023-02-02 12:34:53 -04:00
Leon Friedrich
881a2b2ece PopupSystem public methods rejig (#12830) 2022-12-19 08:41:47 +11:00
theashtronaut
6f9065a1de Reimplement anchor/unanchor delay (#11128) 2022-09-10 23:30:10 -07:00
Kara
50fc190f7f Visual popup addendum (#9570) 2022-07-09 02:32:06 -07:00
Kara
dc28b58468 Visual popup types (#9523)
* Visual popup types

* Pass over `PopupCoordinates` and `PopupCursor`

* `PopupEntity` pass

* Disease and reagent popup pass

* COLOUR
2022-07-09 04:09:52 -05:00
Vera Aguilera Puerto
aa9281d667 Refactors the AtmosphereSystem public-facing API to allow for multiple atmos backends. (#8134)
* 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>
2022-07-04 09:51:34 -05:00
Leon Friedrich
fa4c6f63f8 Nullable grid Uid (#8798) 2022-06-20 10:14:35 +10:00
Acruid
4f9be42f40 Remove Explicit GridId References (#8315)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-06-12 11:54:41 +10:00
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
metalgearsloth
72da2db62d Content changes for grid splitting (#7645) (#7746)
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
2022-04-24 13:54:25 +10:00
metalgearsloth
ecaad9c349 Revert "Update submodule (again)" (#7730) 2022-04-24 02:26:00 +10:00
metalgearsloth
8c7772630c Content changes for grid splitting (#7645)
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
2022-04-24 00:59:38 +10:00
Leon Friedrich
39c4d8be1f Move Anchorable to shared. (#7361)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-02 14:52:44 +11:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
Leon Friedrich
ac23899a39 Move pipe visualizers to systems. (#6565) 2022-02-13 20:20:35 -07:00
Leon Friedrich
21e0cd4256 Optimize pipe net appearance updating. (#6469)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-02-09 14:10:55 +11:00
Vera Aguilera Puerto
c8b65be747 Replace IEntityManager resolves in systems for cached EntityManager 2021-12-08 13:00:43 +01:00
Vera Aguilera Puerto
5cd42c9ad6 Inline UID 2021-12-03 15:53:09 +01:00
Vera Aguilera Puerto
a5b57c8e10 Inline Transform 2021-12-03 14:20:34 +01:00
Acruid
fa0ec5cbd9 AppearanceComponent API Changes (#5446) 2021-11-23 18:22:59 +11:00
Vera Aguilera Puerto
fe6590bbe6 Makes Anchorable ECS. (#5222) 2021-11-09 18:08:30 +11:00
E F R
03e5c153da atmos: fix AtmosDeviceSystem failing to join (#4746) 2021-10-02 14:03:42 -07:00
Vera Aguilera Puerto
0be5ff829b Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
Vera Aguilera Puerto
0767bd3777 Popup ECS Refactor (#4692) 2021-09-26 15:18:45 +02:00
Vera Aguilera Puerto
ad5f7bb71b Subscribe TransformComponent events by-ref (#4478) 2021-08-21 11:49:31 +02:00
Vera Aguilera Puerto
009087863f AtmosDevices can optionally process in space. (#4405)
Refactors some misc atmos things, too.
2021-08-02 21:59:41 +10:00
Vera Aguilera Puerto
1033d8bbe5 Use EntitySystem dependencies in a bunch of systems. 2021-07-26 13:01:47 +02:00
Vera Aguilera Puerto
4112847142 ECS Atmos Part 5: Moves all logic from GridAtmosphereComponent to AtmosphereSystem. (#4331) 2021-07-23 11:09:01 +02:00
Vera Aguilera Puerto
c8ba345cdc ECS Atmos Part 3: Removes AtmosHelpers, add many methods to AtmosphereSystem. (#4285)
* ECS Atmos Part 3: Removes AtmosHelpers, add many methods to AtmosphereSystem

* Adds API for adding/removing active tiles.

* Adds API for FixVacuum.

* Adds API for UpdateAdjacent.

* Adds API for IsTileAirBlocked.

* Re-organize hotspot code

* Adds API for IsTileSpace.

* RemoveGasCommand uses AtmosphereSystem

* AddGasCommand uses AtmosphereSystem.

* SetTemperatureCommand uses AtmosphereSystem.

* Adds API for IsSimulatedGrid.

* GasLeak uses AtmosphereSystem.

* Makes Spark method in GasLeak ALSO use AtmosphereSystem.

* GasPassiveVentSystem uses AtmosphereSystem.

* GasMinerSystem uses AtmosphereSystem.

* GasOutletInjectorSystem uses AtmosphereSystem.

* GasVentPumpSystem uses AtmosphereSystem.

* GasDualPortVentPumpSystem uses AtmosphereSystem.

* GasVolumePumpSystem uses AtmosphereSystem.

* GasAnalyzerComponent uses AtmosphereSystem.

* Add API for GetAdjacentTileMixtures.

* GasVentScrubberSystem uses AtmosphereSystem.

* AirtightComponent uses AtmosphereSystem.

* GasLeaks's TryFindRandomTile uses AtmosphereSystem.

* Adds API for GetAdjacentTiles.

* FirelockComponent's IsHoldingFire uses AtmosphereSystem.

* Adds API for GetAllTileMixtures.

* DeleteGasCommand uses AtmosphereSystem.

* FixGridAtmos uses AtmosphereSystem.

* FillGasCommand uses AtmosphereSystem.

* SetAtmosTemperatureCommand uses AtmosphereSystem.
2021-07-19 12:07:37 +02:00
Vera Aguilera Puerto
077f158dda Add pipe coloring (#4261) 2021-07-12 09:59:45 +02:00
Pieter-Jan Briers
103bc19508 Pow3r: stage 1 (#4208)
Co-authored-by: 20kdc <asdd2808@gmail.com>
2021-07-04 18:11:52 +02:00
Vera Aguilera Puerto
263c9ef974 ECS Atmos Part 2: Moves a lot of Gas Mixture methods to AtmosphereSystem. (#4218) 2021-06-23 11:35:30 +02:00
Acruid
15fb554c28 Engine Entity Anchoring Changes (#4195)
* Converted all SnapGridPositionChangedEvent subscriptions to AnchorStateChangedEvent.

* Fixes power tests with new anchored requirements.

* Moved AnchorableComponent into construction.
AnchorableComponent now uses Transform.Anchored.

* Fixed bug with nodes, power works again.

* Adds lifetime stages to Component.

* Update Engine to v0.4.70.
2021-06-19 19:41:26 -07:00
Vera Aguilera Puerto
a2b737d945 Atmos pipe rework (#3833)
* 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
2021-06-19 13:25:05 +02:00