Invests /tg/station Foundation funds into NVIDIA stocks (Adds a particle weather toggle) (#96510)

## About The Pull Request

Due to a BYOND bug, large amounts of particles will cause immense lag
and framedrops on AMD GPUs, no matter how good the GPU itself is.
Unfortunately this is most noticeable with new particle weather, to the
point where storms reduce framerate to single digits for players who
haven't invested into NVIDIA before the AI market boom.

By rendering overlays twice and only enabling one of the planes, we can
allow players to toggle between new particle weather (semi-transparent
overlays + particles) and old (fully opaque overlays)
Unfortunately we don't have a way to check the player's GPU (at least
not easily) so players will have to change it themselves


https://github.com/user-attachments/assets/0c36fca4-c8a4-42ed-895f-42e853b10f44

(Particle weather is a bit more dense without ghost vision but i'm too
lazy to re-record)

Closes #96460 (Sort of)

## Changelog
🆑
qol: Particle weather can now be disabled in favor of old weather. !!!
AMD GPU USERS NEED TO SWITCH TO OLD WEATHER TO FIX THE LAG!!!
/🆑
This commit is contained in:
SmArtKar
2026-06-15 21:57:30 +02:00
committed by GitHub
parent 1c0b875f34
commit a4dcdebf39
10 changed files with 96 additions and 20 deletions
@@ -0,0 +1,15 @@
/// Whether or not to toggle ambient occlusion, the shadows around people
/datum/preference/toggle/particle_weather
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_key = "particle_weather"
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/toggle/particle_weather/apply_to_client(client/client, value)
for(var/atom/movable/screen/plane_master/rendering_plate/particle_weather/plane_master as anything in client.mob?.hud_used?.get_true_plane_masters(RENDER_PLANE_PARTICLE_WEATHER))
plane_master.update_state(client.mob)
for(var/atom/movable/screen/plane_master/weather/plane_master as anything in client.mob?.hud_used?.get_true_plane_masters(WEATHER_PLANE))
plane_master.update_state(client.mob)
for(var/atom/movable/screen/plane_master/weather/plane_master as anything in client.mob?.hud_used?.get_true_plane_masters(PARTICLE_WEATHER_PLANE))
plane_master.update_state(client.mob)