Fix All Exoplanet Atmosphere Lag (#22924)

Y'know, probably. It certainly seems to work locally!

changes:
- code_imp: "Exoplanets now cache their main outdoor atmospheric region
instead of trying to search their entire map once per second."
- code_imp: "Exoplanet atmospheric calculations now run only when
necessary using new update_revision counter."
- code_imp: "Exoplanet atmospheres now wait until all random ruins have
been placed before trying to resolve the air everywhere."
- admin: "Adds new admin debug verb, 'Toggle Non-Horizon Temperature
Graphics', which toggles all off-ship gas temp graphics to address lag
in a pinch, if still necessary, without removing actual environmental
hazard."
This commit is contained in:
Batrachophreno
2026-08-02 01:25:35 +00:00
committed by GitHub
parent 9eb7413a75
commit d2e5fbca75
7 changed files with 190 additions and 8 deletions
+1
View File
@@ -205,6 +205,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug, list(
/client/proc/cmd_admin_delete,
/client/proc/cmd_debug_del_all,
/client/proc/air_report,
/client/proc/toggle_nonhorizon_temperature_graphics,
/client/proc/reload_admins,
/client/proc/print_random_map,
/client/proc/create_random_map,
+18
View File
@@ -41,6 +41,24 @@
usr << browse(HTML_SKELETON(output), "window=airreport")
/client/proc/toggle_nonhorizon_temperature_graphics()
set category = "Debug"
set name = "Toggle Non-Horizon Temperature Graphics"
set desc = "Toggle gas temperature graphics on all non-Horizon z-levels."
if(!check_rights(R_DEBUG))
return
if(!SSair)
to_chat(src, SPAN_WARNING("The air subsystem is unavailable."))
return
var/suppress = !SSair.suppress_nonhorizon_temperature_graphics
to_chat(src, SPAN_NOTICE("[suppress ? "Disabling" : "Re-enabling"] non-Horizon temperature graphics. This may take several ticks."))
var/updated_graphics = SSair.set_nonhorizon_temperature_graphics_suppressed(suppress)
log_and_message_admins("has [suppress ? "disabled" : "enabled"] GAS_HEAT and GAS_COLD graphics on non-Horizon z-levels ([updated_graphics] graphic reference\s updated).")
feedback_add_details("admin_verb", "TNTG")
/client/proc/fix_next_move()
set category = "Debug"
set name = "Unfreeze Everyone"