Skip to content

Conversation

ArtisticRoomba
Copy link
Member

About the PR

Adds atmospherics substepping, a debugging tool that allows you to easily pause grids and progress the atmospherics simulation on them by one atmostick.

Why / Balance

More Atmos debugging tools yay, but more importantly it'll be very useful for tests. We can simply pause processing on a grid and then execute a system run on that grid, instead of having to guess as to if we've ran a processing tick or not.

Technical details

Most of the code that runs the switch that progresses a GridAtmosphereComponent through the various processing stages of Atmospherics has been extracted to a method ProcessAtmosphere.

The contents of this method had multiple exits. Sometimes a grid finished processing and we'd like to move onto the next one, sometimes we need to delegate to the next tick to keep on our time budget, etc. An enum AtmosphereProcessingCompletionState was made to convey this information.

Media

Screencast_20250919_145521.mp4

Requirements

Breaking changes

The code that handles processing Atmospherics states has been extracted into a new ProcessAtmosphere method. If you've implemented custom processing states, you might need to migrate them over.

Changelog
n/a

@PJBot PJBot added S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. labels Sep 20, 2025
@ArtisticRoomba ArtisticRoomba added P3: Standard Priority: Default priority for repository items. T: New Feature Type: New feature or content, or extending existing content D1: High Difficulty: Extensive codebase knowledge required. A: Atmospherics Area: Atmospherics code and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Sep 20, 2025
@mirrorcult
Copy link
Contributor

blessed


if (gridAtmos.Simulated)
{
shell.WriteLine(Loc.GetString("info-implicitly-paused-simulation") + " " + EntityManager.ToPrettyString(grid));
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO do loc datafields properly lmfao

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Atmospherics Area: Atmospherics code D1: High Difficulty: Extensive codebase knowledge required. P3: Standard Priority: Default priority for repository items. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. size/M Denotes a PR that changes 100-999 lines. T: New Feature Type: New feature or content, or extending existing content
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants