Skip to content

ΔP#1643

Open
AutumnalModding wants to merge 6 commits into
HardLightSector:masterfrom
AutumnalModding:ΔP

Hidden character warning

The head ref may contain hidden characters: "\u0394P"
Open

ΔP#1643
AutumnalModding wants to merge 6 commits into
HardLightSector:masterfrom
AutumnalModding:ΔP

Conversation

@AutumnalModding
Copy link
Copy Markdown
Collaborator

@AutumnalModding AutumnalModding commented May 5, 2026

About the PR

Ports Delta-P from space-wizards/space-station-14#39238

Why / Balance

Atmospherics can have a little suffering, as a treat.

On a more serious note, plasma/tritium fires and TEG/reactor meltdowns are nowhere near as scary as they should be, and are almost always localized to Engineering. This is.. pretty mediocre, and doesn't really invoke the sense of "oh fuck oh no" that such meltdowns or fires are supposed to invoke. Tritfires already aren't scary because you can just place 1 directional fan.

Technical details

From space-wizards/space-station-14#39238:

This is put up primarily for code review on the processing side - the constants are not tuned yet and other misc stuff like CVARs and AtmosTime modifications are not implemented yet (though easy to do, I just wanted to write this).

Entities that want to take pressure damage need to have a DeltaPressureComponent that defines the damage and at what pressure, as well as the scaling type.

A new processing mode has been added, DeltaPressure.

Atmospherics will process entities that need to be calculated via a queue.
Entities will automatically add and remove themselves from the hashset that stores these entities on the GridAtmosComponent for processing.

When an entity is dequeued for processing:

  • The entity's tile indices position is retrieved
  • This is used to get the TileAtmospheres around the entity
  • The pressures of these TileAtmospheres are split into anti-directional pairs and loaded into a span to do SIMD calculations using helper methods in NumericsHelpers
  • The delta-pressure is then computed from this and damage is done from the entity based on that

A good chunk of the slowdown is from the retrieval of elements from the dictionary, as well as retrieval of the actual pressure from the tile (as we have to call a GasMixture get method). I might take a crack at implementing a proper cache however my last attempt at this yielded no measurable performance improvement, though I might try again.

How to test

Place a tritium and O2 miner in an enclosed, windowed area.
Invoke your inner pyromaniac arsonist. Watch the windows shatter.

Media

image

Breaking changes

Changelog

🆑 Illumos

  • add: Ported ΔP from Wizden.

@Magniras
Copy link
Copy Markdown
Contributor

Magniras commented May 5, 2026

Haha, yes!

@R3v3l4t1on
Copy link
Copy Markdown
Contributor

Maps will need reviewing to see if the chamber won't instantly explode. However. I like

@Mauserati
Copy link
Copy Markdown

This will damage/destroy a lot of ships on load as well.

That should be taken into consideration before implementing this.

@AutumnalModding
Copy link
Copy Markdown
Collaborator Author

This will damage/destroy a lot of ships on load as well.

Not unless they save with hellish burns, which they shouldn't be doing.

@AutumnalModding
Copy link
Copy Markdown
Collaborator Author

Directional fan changes marked as "revisit later" pending planned rework by @NotLivyathan

@TeliaRS643
Copy link
Copy Markdown

This will damage/destroy a lot of ships on load as well.

Not unless they save with hellish burns, which they shouldn't be doing.

Ships save with on-tile atmos. Burns are not stopped, atmos pressures persist. And more importantly, things that are designed to hold its pressure until flow is reactivated (pumps need to be manually turned on every ship load) will also suffer.

@Ray3424
Copy link
Copy Markdown

Ray3424 commented May 6, 2026

Fires can ash a room full of people and kill somebody a room over in a very short amount of time if they aren't managed quickly as-is. It's one of the things that I had to deal with as Station AI, with a timely panic siphon being primarily what prevented more damage. Personally, I'm just not in favor of anything that makes the safe engines vastly less safe, or that makes atmospherics more brutal in general. Particularly in a way that will play nastily with ship saves from a standstill. It is OK for people to have things figured out and more time to tinker than do damage control; it's not necessary to increase complexity/difficulty whenever everybody becomes too used to a slice of gameplay.

@Magniras
Copy link
Copy Markdown
Contributor

Magniras commented May 6, 2026

Oh, I do notice. There's not a deltaP value attached to plastitanium windows, does that mean pressure won't break those windows?

@AutumnalModding
Copy link
Copy Markdown
Collaborator Author

Oh, I do notice. There's not a deltaP value attached to plastitanium windows, does that mean pressure won't break those windows?

Likely omitted given that plastiwindows are supposed to be uncraftable. However, it's not unwarranted - I may look into giving them absurdly high DP values or keep them unbreakable.

Mspaintwizard pushed a commit to Mspaintwizard/HardLight that referenced this pull request May 13, 2026
* Port Goob Contraband Detector HardLightSector#1643

* Port Goob #1919

* Port Goob Contraband Detector Refactor #2252
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants