970 Commits

Author SHA1 Message Date
Ed
3409e0f752 Merge remote-tracking branch 'upstream/stable' into ed-15-09-2025-upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/Overlays/StencilOverlay.cs
#	Content.Server/Chemistry/EntitySystems/InjectorSystem.cs
#	Content.Server/GameTicking/Commands/SetGamePresetCommand.cs
#	Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs
#	Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs
#	Content.Shared/Clothing/Components/ClothingComponent.cs
#	Content.Shared/Humanoid/HumanoidCharacterAppearance.cs
#	Content.Shared/Humanoid/SkinColor.cs
#	Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml
2025-09-15 13:50:49 +03:00
slarticodefast
a38c6c1aca Revert "Add heat distortion shader for hot gases" (#40352) 2025-09-14 20:48:24 +02:00
Ed
5f7600b6a2 Merge remote-tracking branch 'upstream/stable' into ed-08-09-2025-upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Content.IntegrationTests/Tests/CargoTest.cs
#	Content.Server/Chat/Systems/ChatSystem.cs
#	Content.Shared/Chat/SharedChatSystem.cs
#	Content.Shared/Lock/LockSystem.cs
#	Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs
#	Content.Shared/Storage/Components/EntityStorageComponent.cs
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
#	Resources/Prototypes/game_presets.yml
2025-09-08 13:12:50 +03:00
ArtisticRoomba
a93f6b8cdf Atmos dP Guidebook Entry (#40194)
* Add Atmos dP guidebook

* Update Resources/ServerInfo/Guidebook/Engineering/DeltaPressure.xml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-09-07 17:10:39 +02:00
ArtisticRoomba
1db8496dd7 Fix DeltaPressure damage not capping beyond a certain pressure (#40125) 2025-09-05 00:09:54 -07:00
Nemanja
7dbe1b219c Improve Gas Yaml Serialization (#40070)
* Make yaml gas serialization cleaner

* fix exception

* fix validation code

* rudimentary test & permissive loading

* change it a bit

* Test fixes and adjustments
2025-09-04 20:48:46 +02:00
Quantum-cross
70ffc1eb5d Add heat distortion shader for hot gases (#39107) 2025-09-03 20:17:39 -07:00
ArtisticRoomba
20f2cb920b Atmos Delta-Pressure Window Shattering (#39238)
This PR adds delta-pressure damage. In short, airtight structures can now take damage proportional to the difference in pressures between the sides of the structure.
2025-09-03 16:58:48 -07:00
Ed
b8b17f7b8a Merge remote-tracking branch 'upstream/stable' into ed-25-08-2025-upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs
#	Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs
#	Content.Server/Chat/Systems/ChatSystem.cs
#	Content.Server/Explosion/EntitySystems/TriggerSystem.cs
#	Content.Server/Nutrition/EntitySystems/SliceableFoodSystem.cs
#	Content.Shared/Lock/LockSystem.cs
#	Content.Shared/Nutrition/Components/FoodComponent.cs
#	Content.Shared/Speech/ListenEvent.cs
#	Resources/Prototypes/Entities/Effects/admin_triggers.yml
2025-08-25 16:22:32 +03:00
M4rchy-S
6c154fb79e Moving FlammableComponent to Shared (#39870) 2025-08-24 13:46:23 -07:00
ArtisticRoomba
e996fb62f1 Revert "Fix bug with pipe color" (#39135) 2025-08-04 13:10:54 -07:00
Ed
f2d9608a62 Merge remote-tracking branch 'upstream/stable' into ed-04-08-2025-upstream-sync
# Conflicts:
#	Content.Server/Chat/Managers/ChatSanitizationManager.cs
#	Content.Shared/Damage/Systems/SharedStaminaSystem.cs
#	Content.Shared/Eye/VisibilityFlags.cs
#	Content.Shared/Lock/LockSystem.cs
#	Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs
#	Resources/Prototypes/Recipes/Reactions/chemicals.yml
#	Tools/actions_changelogs_since_last_run.py
2025-08-04 12:44:29 +03:00
Pieter-Jan Briers
444180c20d Optimizations from server profile (#38290)
* Properly cache regexes in chat sanitization/accents

Wow I wonder if `new Regex()` has a cost to it *looks at server profile*.

* Avoid lag caused by Tippy command completions

CompletionHelper.PrototypeIDs explicitly says *not* to use it with EntityPrototype. Unsurprisingly, reporting a completion result for every entity prototype in the game is a *bad idea*.

* Add active count metrics to some high-load systems

Mover & NPCs

I suspect the thing that caused the Leviathan round to shit itself on performance is NPC spam in space or something. So let's verify that.

* Enable parallel processing on pow3r again

Originally disabled due to a theory of it causing bugs, it was re-enabled on Vulture, and I'm not aware of it having caused any issues there.

* Replace hashset with bitflags for AtmosMonitor alert types.

Allocating these hashsets was like 20% of the CPU of atmos, somehow.

* Cache HashSet used for space movement collider checks

Turns out this was a ton of server allocations. Huh.
2025-07-26 11:44:34 +02:00
Perry Fraser
002afe8056 Properly dispose of stale pipedata chunks for the atmos monitor (#38974) 2025-07-23 17:18:19 +02:00
Princess Cheeseballs
e85bc1bb8c Stunnable New Status and Cleanup (#38618)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-07-21 19:22:11 +02:00
Ed
f59de85047 Merge remote-tracking branch 'upstream/stable' into ed-21-07-2025-upstream-sync
# Conflicts:
#	Content.Client/Overlays/StencilOverlay.Weather.cs
#	Content.IntegrationTests/Tests/Atmos/AlarmThresholdTest.cs
#	Content.IntegrationTests/Tests/VendingMachineRestockTest.cs
#	Content.Server/Chat/Systems/ChatSystem.cs
#	Content.Server/Fluids/EntitySystems/PuddleSystem.cs
#	Content.Shared/Damage/Systems/SharedStaminaSystem.cs
#	Content.Shared/Fluids/Components/EvaporationComponent.cs
#	Content.Shared/GameTicking/SharedGameTicker.cs
2025-07-21 11:27:53 +03:00
IgorAnt028
41a175636b Fix bug with pipe color (#30645)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-07-19 15:10:38 -07:00
ArtisticRoomba
76a7b31c1e Fix firelocks failing to drop fast enough (#38918) 2025-07-15 20:18:55 -07:00
Łukasz Lindert
377c9bfcea PressureEvent removed (dead code) (#39004)
yep
2025-07-16 00:06:48 +02:00
Ed
7a8326d41e Merge remote-tracking branch 'upstream/stable' into ed-08-07-2025-upstream
# Conflicts:
#	Content.Server/Audio/ContentAudioSystem.cs
#	Content.Server/Medical/HealthAnalyzerSystem.cs
#	Content.Server/Shuttles/Systems/ShuttleSystem.cs
#	Resources/Locale/en-US/navmap-beacons/station-beacons.ftl
2025-07-08 00:40:30 +03:00
ArtisticRoomba
f874459092 Pressure Relief Valve (#36708)
* initial system (this math is probably WRONG)

* General code cleanup and OnExamined support
(holy moly this code sucks)

* UICode and related events foundation
TODO:
- Actually write the XAML UI and the underlying system
- Un-shitcode the entire thing
- Actually test everything...

* Working UI code
TODO: Make predicted, as this certainly isn't predicted. Even though I said it was. It isn't.

* Remove one TODO for unshitcoding the examine code

* Add reminder
yea

* Make predicted (defenitely isn't)
(also defenitely isn't a copypaste from pressure pump code)

* It's predicted!
TODO:
- Give it snazzy predicted visuals!
- Have a different field for pressure entry, lest it gets bulldozed every UI update.

* Improve gas pressure relief valve UI
TODO: Reminder to reduce amount of dirties using deltafields

* Implement DirtyField prediction

* Entity<T> cleanup
A lot of Entity<T> conversions and lukewarm cleanup.

Also got caught copy pasting code in 4K UHD but it's not like you couldn't tell.

* More cleanup and comments

* Remove TODO comment on bulldozing window title

* """refactoring"""
- Move appearance out of shared and finally fix it. Pointless to predict appearance in this instance.
- More Entity<T> conversions because I like them.
- Move UI creation handling over entirely to the ActivatableUI system.
- Fix a hardcoded locale string (why????).

* Add visuals

* Revert debugging variable replacememt
yea

* Revert skissue

* Remove unused using directives and remove TODO

* Localize, cleanup, document

* Fix adminlogging discrepancy

* Add ability to construct, add guidebook entry

* Clear up comment

* Add guidebook tooltip to valve

* Convert GasPressureReliefValveBoundUserInterface declaration into primary constructor

* Adds more input handling and adds autofill on open

* Un-deepfry input validator shitcode
Genuinely what was I smoking

* improve visuals logic

* Refactor again
- Update math to the correct implementation
- Moved code that could be re-used in the future into a helper method under AtmosphereSystem.Gases.cs

* I'm sorry but I hate warnings

* Remove unused using directive in AtmosphereSystem.Gases.cs

* Review and cleanup

* Lukewarm UI glossup

* Maintainer for the upstream project btw

* Remove redundant state sets and messy logic

* Unduplicate valve updater code

* Redo UI (im sorry Slarti)

* run tests

* Test refactored UI messaging

* Second round of UI improvements
- God please find a way to improve this system. Feels bad.

* Update loop implementation

* Further predict UI

* Clear up SetToCurrentThreshold

* cleanup

* Update to master + pipe layers and bug fixes
want to run tests

* fixes

* Deploy rename pipebomb

* Documentation and requested changes

* Rename the method that wiggled away

* Undo rounding changes

* Fix comment

* Rename and cleanup

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-07-03 18:00:34 +02:00
slarticodefast
38232d2255 Predict healing and bloodstream (#38690)
* initial commit

* reapply 38126

* fix rootable

* someone missed an important minus sign here

* try this

* fix

* fix

* reenable crit hits

* cleanup

* fix status time dirtying

* fix

* camelCase
2025-07-02 19:20:31 -04:00
Tayrtahn
75db49f9c0 Clean up all missing EntitySystem proxy method uses (#38353) 2025-06-26 16:50:49 -07:00
Ed
b581f5d132 Merge remote-tracking branch 'upstream/stable' into ed-23-06-2025-upstream-sync
# Conflicts:
#	.github/workflows/check-trailing-whitespace.yml
#	Content.IntegrationTests/Tests/Access/AccessReaderTest.cs
#	Content.IntegrationTests/Tests/Chameleon/ChameleonJobLoadoutTest.cs
#	Content.IntegrationTests/Tests/GameRules/NukeOpsTest.cs
#	Content.IntegrationTests/Tests/PostMapInitTest.cs
#	Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs
#	Content.Shared/Light/Components/SunShadowCycleComponent.cs
#	Resources/Prototypes/Damage/modifier_sets.yml
#	Resources/Prototypes/Maps/Pools/default.yml
2025-06-23 16:37:22 +03:00
Tayrtahn
d61704df33 Convert AtmosphereSystem sound path strings to SoundSpecifiers (#38403)
* Convert AtmosphereSystem sound path strings to SoundSpecifiers

* Convert to SoundCollections
2025-06-17 22:52:11 +02:00
themias
19271e6bc9 Fix gas analyzer and anom scanner wrong state (#38285)
* Fix gas analyzer and anomaly scanner UI activation issue

* save

* fix comment

* milkalyzer
2025-06-12 14:16:07 -07:00
Perry Fraser
e09b7debe2 Fix some popup issues with pipe layer changes (#38244)
* fix: only show pipe layer popups to the user changing them

* fix: don't show pipe layer subfloor popup when not using a screwdriver

* fix: properly pass down user and used for serverside pipe layer changes

Technically this doesn't matter as the Shared codepath for this method
doesn't actually use these on the server: only the user is used for a
clientside popup. Still, will be good to have these for future changes
that might need them.
2025-06-11 22:31:48 -07:00
Ed
42d39a7c67 Merge remote-tracking branch 'upstream/stable' into ed-10-06-2025-upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Content.IntegrationTests/Tests/Atmos/ConstantsTest.cs
#	Content.Server/Chat/Managers/ChatManager.cs
#	Content.Server/Connection/ConnectionManager.cs
#	Content.Shared/Actions/SharedActionsSystem.cs
#	Content.Shared/Lock/LockSystem.cs
2025-06-10 11:33:34 +03:00
chromiumboy
45012cbe1d Layering for atmospheric pipes (#36124)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2025-06-01 22:01:43 -07:00
Centronias
9053c9692f Decouple Lights from Toggleable Visuals (and headphone music notes bugfix) (#35341)
* - Combine enum keys `ToggleableLightVisuals` and `ToggleVisuals` into `ToggleableVisuals`
- Rename `ToggleableLightVisualsComponent` to `ToggleableVisualsComponent` and `ToggleableLightVisualsSystem` to `ToggleableVisualsSystem`
  - (The `SpriteLayer` field on the component is now required because the old default of `light` doesn't make sense anymore)
- Make it so that `ToggleableVisualsComponent` works even when there's not a light attached to the entity
  - (Amazingly this seems to have only applied to  Headphones, but I can only imagine there are many other things people would like to do with simple toggleable visuals)
- Explicitly make `ItemTogglePointLightComponent`'s purpose to make `ToggleVisualsComponent` apply to `PointLightComponent`s on the same entity.
  - Add field `ToggleableVisualsColorModulatesLights`, which makes the `Color` appearance value of `ToggleableVisuals` modulate the color of lights on the same entity
  - Lots of prototype updates to uptake the above

* fix bad merge

* unbork robust

* blindly letting rider reformat stuff

* I guess I never cleaned up these imports at all
2025-05-30 19:53:56 -04:00
TemporalOroboros
f99d00cf5f Fix for obsolete method warning in AtmosphericsSystem (#37897)
* Make PryTile use Entity<T>
Converts the old parameters into an obsolete overload

* Make HandleDecompressionFloorRip use Entity<T>
Converts the old parameters into an obsolete overload

* Convert the one use to use Entity<T>

* Delete obsolete private methods
2025-05-28 11:16:54 +02:00
Ed
d5fbdbdec0 Merge remote-tracking branch 'upstream/stable' into ed-27-05-2025-upstream-sync
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/Guidebook/Controls/GuideReagentReaction.xaml.cs
#	Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs
#	Content.Server/Procedural/DungeonJob/DungeonJob.OreDunGen.cs
#	Resources/Prototypes/Entities/Effects/chemistry_effects.yml
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
#	Resources/Prototypes/GameRules/meteorswarms.yml
#	Resources/Prototypes/Procedural/dungeon_configs.yml
2025-05-27 12:21:14 +03:00
Tayrtahn
50fb48de2e Cleanup all instances of IMapManager.GetMapEntityId (#37814)
* Cleanup all instances of IMapManager.GetMapEntityId

* Dependencies

* LocalizedEntityCommands
2025-05-25 19:09:47 +02:00
Tayrtahn
821b4b738a Cleanup warnings in TileAtmosCollectionSerializer (#37798)
Cleanup warning in TileAtmosCollectionSerializer
2025-05-25 14:18:06 +10:00
slarticodefast
fef4187995 Move PriceCalculationEvent and EstimatedPriceCalculationEvent to shared (#37782)
* moce PriceCalculationEvent to shared

* Update Content.Shared/Cargo/PriceCalculationEvent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-05-24 19:36:38 +02:00
Tayrtahn
6f89c2c455 Cleanup warnings in AtmosPipeAppearanceSystem (#37706)
* Cleanup 2 warnings in AtmosPipeAppearanceSystem

* Let's use the Entity<T> version

* todo comment
2025-05-21 21:06:06 -04:00
Krunklehorn
abec27737e AutomaticAtmosSystem uses MassDataChangedEvent, clarifies TileMassMultiplier (#37548)
* Initial commit, no tile changes, just mass

* Rename TileMassMultiplier to TileDensityMultiplier
2025-05-17 21:57:50 -04:00
metalgearsloth
fca7337bcf Fix tile-events returns (#37502)
* Fix tile-events returns

Should really be continues.

* More

* More optimisations
2025-05-16 14:22:20 +02:00
Tayrtahn
4dc1c4c3d6 Content changes for SetTiles change (#37229)
* Content changes for SetTiles change

* Retest with new engine changes

* Derp

* Update for new engine PR changes
2025-05-15 20:26:47 +10:00
qwerltaz
b374d2468a air alarm panic wire snipping forces panic mode (#36439)
* air alarm panic wire snipping forces panic mode

* document

* ForcedMode is datafield

* switch to bool flag

* lock button when panic wire cut

* prevent manually individually changing scrubbers from siphon when panic wire is cut

* failure alert when wire snipped

* is Control

* remove double horizontalExpand

* Update Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs

* Update Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-14 22:39:47 +02:00
metalgearsloth
c09aa6039c Predict gas valves (#33836)
* Predict gas valves

* wawawewa

* Fix imports before I get yelled at

* soff
2025-05-14 20:06:37 +02:00
metalgearsloth
df2257cd92 Predict gasthermomachines (#33837)
* Predict gasthermomachines

* despawn

* smellby
2025-05-13 21:49:43 +10:00
Ed
59e6435fe2 Merge remote-tracking branch 'upstream/stable' into ed-12-05-2025-upstream
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/Construction/UI/ConstructionMenuPresenter.cs
#	Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
#	Content.Shared/Damage/Systems/SharedStaminaSystem.cs
#	Content.Shared/Lock/LockSystem.cs
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
#	Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
#	Resources/Prototypes/Procedural/vgroid.yml
2025-05-12 14:25:42 +03:00
Nemanja
942b2b4dcb Change atmos plaques to yaml (#37318)
* Change atmos plaques to yaml

* remove locale strings
2025-05-10 02:24:07 +02:00
ArtisticRoomba
ee201c6eb7 fix atmos grid markers (#37142)
* fix atmos grid markers

* 1984 CL
2025-05-03 09:11:31 +02:00
metalgearsloth
bd69fc612a Predicted internals (#33800)
* Predicted gas pumps

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

* a

* Atmos device prediction

- Canisters
- Tanks
- Internals

AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.

* Remove details range

* Gas tank prediction

* Even more sweeping changes

* Alerts

* rehg

* Popup fix

* Fix merge conflicts

* Fix

* Review
2025-05-02 18:22:29 +10:00
K-Dynamic
ea64d4d106 Atmos air (6500 kPa) marker (#37061)
* air GM atmosphere

* atmos fix air miner
2025-05-01 18:03:47 -04:00
Ed
ef6d973301 Merge remote-tracking branch 'upstream/stable' into ed-30-04-2025-upstream-sync
# Conflicts:
#	Content.Client/Parallax/ParallaxControl.cs
#	Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs
#	Content.IntegrationTests/Tests/PostMapInitTest.cs
#	Content.Server/Chat/Managers/ChatManager.cs
#	Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs
#	Content.Server/Labels/Label/LabelSystem.cs
#	Content.Shared/Actions/SharedActionsSystem.cs
#	Content.Shared/Fluids/Components/EvaporationComponent.cs
#	Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs
#	README.md
#	Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
#	Resources/Prototypes/Maps/Pools/deathmatch.yml
#	Resources/Prototypes/Maps/arenas.yml
2025-04-30 20:31:50 +03:00
chromiumboy
ed5c7aa942 Releasing an under-pressure lockout is now a verb (#36910)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-25 00:21:00 -07:00
Leon Friedrich
e1c70882ef Fix NRE in GasTileOverlaySystem (#36793) 2025-04-21 15:06:54 +10:00