Commit Graph

210 Commits

Author SHA1 Message Date
metalgearsloth f8b8ec7994 Power stuff (#31314)
* 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
2024-08-27 01:00:42 +01:00
deltanedas 09d5fe3f9f Make component fields datafields 2024-08-27 00:48:33 +01:00
deltanedas 1ab7a31bf9 Revert "add atmos stuff for mapping vox boxes (#1668)"
This reverts commit 6dc5ff7720.
2024-08-27 00:47:20 +01:00
deltanedas 6dc5ff7720
add atmos stuff for mapping vox boxes (#1668)
* add 101kpa nitrogen fixgridatmos marker

* make a lot of things datafields so they save and can be set in yml

* add vox box scrubber/filter/sensor/alarm

* move some stuff to deltav folder, add deltav comments to the fixgridatmos mixture

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-08-22 20:14:35 +00:00
Mervill 511b636f2b Add verbose (client predicted!) examine text to Gas Miners (#30480)
* 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
2024-08-09 19:01:47 +01:00
Tayrtahn d972a3647f Fix AtmosDeviceSystem debug assert Heisenbug (#29752)
Fix AtmosDeviceSystem debug assertion Heisenbug
2024-08-09 17:45:28 +01:00
Mervill c0a4865d75 Clean up gas miners (#29657)
Separate the environment check from CapSpawnAmount into GetValidEnvironment to make the code a little cleaner, and also makes these two checks independent.

CapSpawnAmount and GetValidEnvironment now both have zero side-effects

Broken renamed Idle to reflect its use. Broken in my mind implies that there's some method for fixing.

---------

Co-authored-by: Partmedia <kevinz5000@gmail.com>
2024-08-09 17:25:49 +01:00
jmcb c1b97b0e64 Remove outdated NotNullWhen annotation (#29641)
A previous version of this function returned a bool. Since this no longer does that, remove the annotation.
2024-08-09 17:19:00 +01:00
Guillaume E 10c33d0390
Improve gas miner's output bounds checks (#29569)
Miners now can produce a fraction of their SpawnAmount corresponding
to the "remaining space" available in their environment according to
their MaxExternalPressure and MaxExternalAmount.
2024-07-25 01:55:10 +02:00
osjarw fdd1f80fe7
Limit air lost by wrenching/breaking pipes (#29574)
Gas lost via wrench/breaking capped
2024-07-25 01:55:07 +02:00
slarticodefast 3457c80cb1
Add sprite for vent under-pressure lock-out (#29527) 2024-07-25 01:54:57 +02:00
slarticodefast 00047bb1b1
Fix air vent and scrubber not requiring power (#29544) 2024-07-25 01:54:56 +02:00
Guillaume E 03eded9173
Make miners respect AtmosDeviceUpdateEvent.dt (#29522)
Miners' prototype have been changed to reflect this (I read
somewhere that we have about 1 atmos tick/0.5s, my tests show more
like 1/0.53 but that looks close enough).

This also means that miner's spawnAmount is now expressed in mol/s.

See: #18781
2024-07-25 01:53:09 +02:00
Partmedia 501a19be82
Increase lockout threshold (#29504) 2024-07-25 01:50:53 +02:00
MjrLandWhale f047b1f39b
Override under-pressure lock-out in air alarm "Fill" mode (#28909) 2024-07-05 20:28:14 +02:00
Nemanja bacd52c991
Decouple interactions from hands, cleanup old events, add new fears (#28393)
* ok basic shit

* second part

* pretend it isn't real it can't hurt you.

* 👁️ 👁️

* shadowcommander review
2024-06-01 18:00:07 +02:00
Kevin Zheng 6714823ef6
Fix flow rate display (#28372) 2024-06-01 17:19:56 +02:00
Kevin Zheng a6e4fd4c7a
Tune spacing speed to fix under-pressure lockout (#28370) 2024-06-01 17:19:28 +02:00
Kara b93f956353
Resolve `'EntitySystem.Get<T>()' is obsolete` in content (#27936)
* PROJECT 0 WARNINGS: Resolve `'EntitySystem.Get<T>()' is obsolete` in content

* pass entman

* dog ass test

* webeditor
2024-05-18 13:58:55 +02:00
Jezithyr 17ff17a0d0
Move GasMixture to shared (#27480)
* Moved GasMixture to shared

* Temp Fix for sandbox violation, idk why Array.Resize isn't working properly. It's already sandboxed.

* The most powerful webedit in history
2024-05-07 04:00:15 +02:00
metalgearsloth 1d63b4cfcb
Content update for UI prediction (#27214)
* Content update for UI refactor

* Big update

* Sharing

* Remaining content updates

* First big update

* Prototype updates

* AUGH

* Fix UI comp ref

* Cleanup

- Fix predicted message, fix item slots, fix interaction range check.

* Fix regressions

* Make this predictive

idk why it wasn't.

* Fix slime merge

* Merge conflict

* Fix merge

(cherry picked from commit 5896e6875266b22c565009b5d45f60ceb981d90a)
2024-05-03 00:15:32 +02:00
slarticodefast a2e1dc8107
Show volume on the gas analyzer (#25720)
The gas analyzer now shows the volume of pipes, tanks, canisters and the environment.

Adjust gas analyzers so that the volume and number of moles shown corresponds to only the scanned element, e.g. a canister or single pipe in a pipenet.

(cherry picked from commit 5a5efa11cf1d68708a70d48a286cb97fde96afdf)
2024-04-21 22:05:43 +02:00
Plykiya 32b1c01066
Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working

* OKAY GAS FILTERS TOO

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 7638252df3b0c7e958e988fc7e491d81c1e8a656)
2024-04-07 14:14:51 +02:00
Leon Friedrich 01e6149cc1
Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile

(cherry picked from commit 888a3bda515a214733bf748c5d6a7e7c923a301e)
2024-04-07 14:14:34 +02:00
Jake Huxell 7be31aab33
Reduced Warning Count By 130 For Full Rebuilds (#26518)
* remove deprecated entity coordinate extension functions. Reduces warning count by approximately 50

* final toCoords Removed

* Remove all unused variables and dead code paths

* remove always true variable, should be a cvar or something instead

* remove superfluous variables from tests

(cherry picked from commit 59e46aab93ca38f8d57fcad4e3a2c893737d9ad4)
2024-04-07 14:11:06 +02:00
Leon Friedrich 480c59499f
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

(cherry picked from commit 77e029d4ca787485152dec5a4aaafd4589f9ad43)
2024-04-07 14:04:38 +02:00
Leon Friedrich 239fd1d654
Partial atmos refactor (#22521)
* Reduce atmos component queries

* Remove method events

* Cache airtight data

* Make MolesArchived nullable

* Fix airtight cache

* only get tile def once

* Immutable mixtures

* firelock queries

* misc

* misc cleanup

* Trim disconnected tiles

* Fix merge issues and bugs

* Why does the PR keep increasing in scope

* debug overlay

* Fix bugs

* Fix test, remove unused events

* Add setmapatmos command

* Fix overlays

* Add map check

* A

* Resolve conflicts with #26102

* Remove some obsolete methods

(cherry picked from commit 18a35e7e83b2b71ee84b054d44d9ed5e595dd618)
2024-03-24 00:14:24 +01:00
Tayrtahn eb4cd9bc0b
Code Cleanup: Purge obsolete MapManager methods (#26279)
* GetGrid

* GridExists

* TryGetGrid

(cherry picked from commit ae3d745430e3c5250d19553429e7cda2b8050d10)
2024-03-24 00:13:35 +01:00
LordCarve 60f2c8376d
Obsolete `Logger` cleanup for `EntitySystem`s (#25941)
* Small obsolete Logger cleanup

* Fixed three EntitySystem logs that weren't doing it right.

(cherry picked from commit aafe81512258b5a80776ada1f471b58e7507ca2d)
2024-03-17 14:46:35 +01:00
Menshin 38adf75d3e
Thermomachines now excite the gas mixture they add heat to (#25916)
Atmospherics thermomachines now properly invalidate tiles they add heat to.

(cherry picked from commit 1e62e445f0b5298c50dc0ab7ff20f88563a13d5f)
2024-03-17 14:42:59 +01:00
Menshin 37c7ac7931
Add space heaters (#25250)
(cherry picked from commit 98843511014e1b5fce34b7e1215179dd3d0f94c8)
2024-03-07 01:05:02 +01:00
MilenVolf cb0fdb47d1
LockVisualizer (#25224)
* LockVisualizer

* Fix state

* Clean some code

* Make it component, fix tests fail

* Fix for StateUnlocked

Now it is possible to manually set the unlocked state and it will work!

* Optimize LockVisualizer, add check for unlocked state

* No todo I guess

(cherry picked from commit c7870882f6f956eea07cbb4738ae45c8805c8ce6)
2024-02-18 23:27:28 +01:00
Menshin 7e6a8ef6e5
Allow thermomachines to exchange with air instead of inlet (#25247)
Add purely atmospheric heat exchange to the gas thermomachine component (in preparation for space heaters).

(cherry picked from commit ce4bd8568cba4d64fb19e80d3182e21f010a86c1)
2024-02-18 23:13:12 +01:00
metalgearsloth 9e366f3119
Predict two-way levers (#25043)
* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a

(cherry picked from commit 05a2ddff1cc415c3bdf1e15ef3a2c953bcb5384b)
2024-02-18 22:46:26 +01:00
Ed 25dbae8f9c
Lock Anomaly generator to research access (#24464)
* small patch

* fix

* remove garbage

* fix

* moved to shared events

* fix

* LocId

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 498ad2d5d714c73d9212bda9d3d89d53b2001e04)
2024-02-08 12:11:07 +01:00
Nemanja 7573dba496
Rip out remaining machine upgrades (#24413)
* Rip out remaining machine upgrades

* eek

(cherry picked from commit a9e89ab37221c4f5eff5a9e1d42e97c6f3e0753b)
2024-01-27 23:43:49 +01:00
Trevor Day 90c75efd9a
Add admin logs for thermomachines (#24056)
(cherry picked from commit 7a84f9e2038d4f0d9c776a4e1a91b83a4997a43e)
2024-01-26 22:37:18 +01:00
Nemanja 77bd303603
Hellfire Thermomachines (#23543)
* hellfire thermomachines

* slight nerf? idk

* ilya review

* Improve clarity

* Update Content.Server/Atmos/Piping/Unary/EntitySystems/GasThermoMachineSystem.cs

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>

---------

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
(cherry picked from commit a78e9a854ebb744ca82fcdbca4968f0197d05a84)
2024-01-26 22:07:36 +01:00
Kara 03b3e36d43
Examine prediction (#23565)
* Initial prediction

* new group handling

* groups for all examines that use multiple rn

* compile

* why was it doing this??

* handle newlines with sorting properly

(cherry picked from commit 0ae3858b69b695697ea9300609460f8ddb70ebbf)
2024-01-26 21:48:02 +01:00
themias 3ddb612545
Fix a few cyborg interactions (#23391)
Fix cyborg interactions

(cherry picked from commit e7d1302357957cff8c2cc32cdef86d0c57e9033c)
2024-01-26 21:27:31 +01:00
TemporalOroboros ce27944275
Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19e56a582b6b12f832bd318efbdac7c7)
2024-01-23 23:00:42 +01:00
Kara 7decaa29e7 Convert atmos device events to ref events (#22843) 2023-12-22 23:25:05 +01:00
Kara bb57cfb2b4 Change gas canisters to use ItemSlots (#22561) 2023-12-16 20:37:41 +01:00
Leon Friedrich b065a0a817 Atmos scaling cvar changes (#22501) 2023-12-16 20:31:51 +01:00
Nemanja 58bc3430f5 Gas Condensers (#22436)
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-12-16 20:19:56 +01:00
Kevin Zheng b4802757c2 Add atmos time compression (#21954)
Add atmos.speedup which is effectively a atmos-only time compression
CVar. This adjusts heat capacities and transfer rates to effectively
globally speed up the time constants of atmos.

This allows faster response to heating/cooling changes and faster
cleanups (by buffing scrubbers, pumps, and everything else) that is
tunable through one global time compression CVar.

It also achieves this without any thermodynamic unsoundness.
2023-12-16 19:56:01 +01:00
Kevin Zheng ce2a7222d6 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-16 19:40:19 +01:00
Leon Friedrich 99f9583a3e Adds a new `AtmosphereSystem.GetTileMixture()` override (#21804) 2023-12-02 20:26:02 +01:00
metalgearsloth b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
Leon Friedrich 1465c02a77 Move ActorComponent to shared (#21293) 2023-10-31 19:12:44 +01:00