Commit Graph

165 Commits

Author SHA1 Message Date
slarticodefast 5a5efa11cf
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.
2024-04-17 09:42:24 -08: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 ec761114ea
Run `fixgridatmos` for cargo & emergency shuttle (#26382)
Fix cargo & emergency shuttle
2024-03-25 03:17:56 +11:00
Leon Friedrich 18a35e7e83
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
2024-03-24 03:34:56 +11:00
Pieter-Jan Briers b5138b245e Fix barotrauma calculations
The math for our pressure damage (barotrauma) system is directly taken from TG. The constants are the same and the math is almost the same. However there are two errors.

1. Pressure damage started being applied within the WARNING bounds, rather than the HAZARD bounds. This means you started taking low pressure damage at 50 kPa instead of the intended 20 kPa, and also the HUD icon didn't show "danger" like it should even if you were already taking damage.

2. The calculations for high pressure damage were wrong. These are supposed to be linearly scaled, but the function was wrong so the scaling didn't actually work properly (especially when considering the fixed bounds above). This appears to be the case because the function was taken from an incorrect comment in the original source, rather than the real math.

Both of these issues are now fixed to match the TG behavior. Note that this somewhat nerfs pressure damage in non-extreme circumstances. e.g. a room at 40 kPa now gives NO pressure damage, whereas previously it would do full space damage.

The description of the pressure alerts is wrong for "low" severity, but I can't be arsed to fix that right now. Alerts don't have a way to change the description depending on severity...
2024-03-17 22:37:28 +01:00
Menshin 9884351101
Add space heaters (#25250) 2024-02-28 10:27:29 -08:00
Pieter-Jan Briers e00f74505c
Use new ComponentPauseGenerator (#25183)
Also includes some (non critical) changes to the solution file to re-organize the Roslyn components.
2024-02-26 14:36:19 +11:00
MilenVolf c7870882f6
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
2024-02-16 16:52:31 -07:00
metalgearsloth a6ea8b210d
Firestarter fixes (#24647)
* Firestarter fixes

- Actually networks the action.
- Namespace fixes.

* No networky for you
2024-02-01 00:01:52 +11:00
Kara 1a74311c9f
Improve rotting examine text (#24689) 2024-01-28 23:50:17 -08:00
router 4bb670a59c
Change Tmax for fixed floating point epsilon limit (#24370)
This is the largest number that an epsilon of 1/64 = 0.015625K supports
2024-01-21 16:33:06 -06:00
DrSmugleaf 8902701271
Move rotting stages and examine to shared (#24183) 2024-01-17 01:49:21 -08:00
themias fd7ff690b1
Grave digging and decomposition (#23646)
* Grave digging and decomposition

* fix

* update based on review comments

* code review

* remove unused field
2024-01-14 11:47:31 -05:00
Pieter-Jan Briers fa56750d30
Fix exception with gas overlay rendering (#24001)
I had to rewrite this code for #23745 and forgot to test it. Damnit.
2024-01-13 00:22:10 +01:00
Pieter-Jan Briers a6c9c36b68
Dependency update / fixes / skrungle bungle (#23745)
* Give .props files 2-space indents.

* Move to Central Package Management.

Allows us to store NuGet package versions all in one place. Yay!

* Update NuGet packages and fix code for changes.

Notable:

Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.

* Remove dotnet-eng NuGet package source.

I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.

* Remove Robust.Physics project.

Never used.

* Remove erroneous NVorbis reference.

Should be VorbisPizza and otherwise wasn't used.

* Sandbox fixes

* Remove unused unit test package references.

Castle.Core and NUnit.ConsoleRunner.

* Update NUnit to 4.0.1

This requires replacing all the old assertion methods because they removed them 🥲

* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.

* Add Robust.Analyzers.Test

* Update submodule

* commit to re-run CI
2024-01-12 23:22:01 +01:00
Kot e97fd47a87
Powered stasis bed prevents body decay (#23520)
* Powered stasis bed prevents body decay

* Update following CR comments

* Remove unused import

* Simplify if-statements

* Change implementation following CR suggestions

* Add comment & remove explicit get/set
2024-01-09 01:40:52 -05:00
metalgearsloth 8659a21916
Use IComponentState for compstates (#21905) 2024-01-04 13:50:48 +11:00
Kara ba88a9a022
Revert "Add YAML gas reactions (#22803)" (#22939)
This reverts commit 054321d2c2.

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-12-24 23:50:42 -07:00
Kevin Zheng 2c3f3e5686
Add maximum atmos temperature limit (#22882)
* Add Tmax

* Increase Tmax
2023-12-24 10:05:42 -05:00
router f2cb05bc61
Fix accidental plasma burn nerf (#22894) 2023-12-23 11:35:22 -08:00
Kevin Zheng 054321d2c2
Add YAML gas reactions (#22803)
* Add YAML gas reactions

* Convert more reactions

* Use enum names

* Convert more names

* Add migration for MiasmaCanister

* Prevent reactants from going negative

* Fix energy conservation, lift energy calculation

* Fix comment

* Comment

* Add rate multiplier
2023-12-22 00:30:56 -07:00
Kara ad97580727
Rename Miasma to Ammonia (#22791)
* Rename Miasma to Ammonia

* Namespace changes

* Map change????? why
2023-12-20 21:19:50 -07:00
username c514af0366
Add nitrous oxide decomposition reaction (#22738)
Co-authored-by: whateverusername0 <whateveremail>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-12-20 17:33:08 -08:00
username 5a4e04ea14
Add nitrous oxide synthesis reaction (#22774)
Co-authored-by: whateverusername0 <whateveremail>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-12-20 16:14:59 -08:00
Kevin Zheng 76aae115a9
Reduce absolute temperature tolerance (#22782)
MinimumTemperatureDeltaToConsider sets the minimum temperature
difference for a heat capacity calculation to be run. The problem is
that when heating up large quantities of gas (e.g. with a heater), a
small dT becomes an even smaller dT when running DivideInto(). This
means that small changes in temperature are completely ignored.
2023-12-20 16:42:23 -07:00
Leon Friedrich 68765a4753
Improve atmos debug overlay (#22520) 2023-12-15 14:18:00 -08:00
Kevin Zheng f1665ee5b0
Better plasma and tritium fires (#22468) 2023-12-13 21:39:38 -05:00
Ed aa713ea7e6
Candles (#21087)
Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-11-03 22:53:51 -07:00
DrSmugleaf 2d58d19b07
Make all prototype types partial (#21374) 2023-11-01 19:56:23 -07:00
daerSeebaer 0bb8c222bd
Added blocked visuals to volumetric pump (#20610) 2023-09-29 19:35:23 -08:00
deltanedas dfc2d8a80b
Change min temp delta to 0.1 (#20512)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-09-26 09:41:34 -08:00
Kevin Zheng a622844a5f
Make slow spacing variables CCVars (#19862) 2023-09-13 19:38:56 -08:00
metalgearsloth d5bd1c6f86
Predict StorageComponent (#19682) 2023-09-11 21:20:46 +10:00
metalgearsloth 5a0fc68be2
Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
DrSmugleaf a88e747a0b
Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Kevin Zheng bb7a19d32e
Make thermomachines more thermodynamically sound (#18984)
Co-authored-by: Ilya246 <ilyukarno@gmail.com>
2023-08-22 00:34:45 -07:00
Pieter-Jan Briers a242af506e
Adds the thermo-electric generator (#18840)
* Basic TEG start.

Connects via node group.

* Basic TEG test map

* Sensor monitoring basics, TEG circulator flow

* Basic power generation (it doesn't work)

* More sensor monitoring work

* Battery (SMES) monitoring system.

* Sensor monitoring fixes

Make it work properly when mapped.

* Test map improvements

* Revise TEG power output mechanism.

Now uses a fixed supplier with a custom ramping system.

* TEG test map fixes

* Make air alarms and pumps open UI on activate.

* Clean up thermo machines power switch.

Removed separate Enabled bool from the component that always matched the power receiver's state.

This enables adding a PowerSwitch component to give us alt click/verb menu.

* TEG but now fancy

* Make sensor monitoring console obviously WiP to mappers.

* Vending machine sound, because of course.

* Terrible, terrible graph background color

* Examine improvements for the TEG.

* Account for electrical power when equalizing gas mixtures.

* Get rid of the TegCirculatorArrow logic.

Use TimedDespawn instead. The "no show in right-click menuu" goes into a new general-purpose component.

Thanks Julian.

* Put big notice of "not ready, here's why" on the sensor monitoring console.

* TryGetComponent -> TryComp

* Lol there's a HideContextMenu tag

* Test fixes

* Guidebook for TEG

Fixed rotation on GuideEntityEmbed not working correctly.

Added Margin property to GuideEntityEmbed

* Make TEG power bar default to invisible.

So it doesn't appear in the guidebook and spawn menu.
2023-08-12 15:41:55 -05:00
Ilya246 d3244b6049
copy-settings-to-all-similar for scrubbers and vents in air alarms (#18363) 2023-08-09 14:20:19 -04:00
Leon Friedrich 6982f238e8
Add SaveLoadSavePrototype test (#18859) 2023-08-08 17:27:16 +10:00
Leon Friedrich 5cc5a8c82e
Validate that client prototypes are serializable (#18780) 2023-08-07 13:44:53 +10:00
deltanedas 37b02466ff
rotting meat (#18515)
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2023-08-06 13:05:43 +10:00
Errant 02b06cce39
Reduce gas and jetpack capacity (#18288)
Emergency tank: 4 minutes (down from 12)
Extended Etank: 9 minutes (down from 37)
Double Etank : 15 minutes (down from 62)
Full tank : 31 minutes (down from 94)

This will make it so EVA crews actually need to watch their pressure if they spend significant time outside the station, and/or have a canister in their general vicinity.

Emergency tanks can no longer be used on timescales that far exceed escaping an emergency situation, but will probably be insufficient in extended emergencies, where access to canisters will now be much more important. How well this works in practice will have to be carefully watched.
2023-08-04 14:40:41 -08:00
Nemanja 37e6d99e49
Gas analyzer compref removal (#17992)
* Gas analyzer compref removal

* don't question it
2023-07-12 13:47:45 -06:00
c4llv07e 6e66866567
Add 'auto mode' button to the air alarm ui (#17874)
Signed-off-by: c4llv07e <kseandi@gmail.com>
2023-07-09 13:22:41 -06:00
metalgearsloth 44a3db398b
Draw MapAtmosphere gasses (#17688) 2023-06-28 21:22:03 +10:00
Ilya246 c1644ccd48
Update Atmospherics.cs (#17125) 2023-06-04 18:57:45 -06:00
Tom Leys 28bec85d86
Space sections substantially slower (5-15 sec, exponential) with cooling (#16115)
* Space sections fractionally slower (1 sec, exponential)

- ExplosivelyDepressurize reduces air pressure by about 20% each pass, sets to vacuum below 20 kPa
- Causes some issues with AdjacentBits on airlock close

* Introduced constants for Spacing in atmospherics

* Limit space wind allowed during spacing to 1000 kPa per tile/sec

- Less tile ripping per tick
- Tiles rip based on wind
- Robustness checks

* Slowed down the spacing a bit

* Slowed down the spacing a bit more

* Better dynamics about high pressure air escaping,

- Reduce air temperature (due to decompression) during spacing
- Make some water vapor for flavor

* Limit temperature loss to >8 Deg.C. No Water vapor
2023-05-20 13:53:04 -06:00
Tom Leys e4ccd13845
Plasma still creates tritium down to 1 to 32 concentration (#16517)
- But it's less efficient
2023-05-17 13:22:56 -06:00
Sir Winters 68305ec5fb
5min to 10m (#16457)
Co-authored-by: Owai-Seek <>
2023-05-15 10:52:31 -05:00
Tom Leys d24e4a6631
Frezon reaction requires 50:1 Oxy:Trit ratio (#16295) 2023-05-09 20:27:23 -07:00