[MIRROR] ports the chat panel and backend updates [NO GBP] (#12221)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2026-01-06 12:26:36 +01:00
committed by GitHub
co-authored by Kashargul
parent 44fe9e1904
commit 75c5e6adb8
176 changed files with 4179 additions and 4443 deletions
+11 -3
View File
@@ -18,15 +18,15 @@ GLOBAL_LIST_EMPTY(asset_datums)
var/cached_serialized_url_mappings
var/cached_serialized_url_mappings_transport_type
/// Whether or not this asset should be loaded in the "early assets" SS
var/early = FALSE
/// Whether or not this asset can be cached across rounds of the same commit under the `CACHE_ASSETS` config.
/// This is not a *guarantee* the asset will be cached. Not all asset subtypes respect this field, and the
/// config can, of course, be disabled.
/// Disable this if your asset can change between rounds on the same exact version of the code.
var/cross_round_cachable = FALSE
/// Whether or not this asset should be loaded in the "early assets" SS
var/early = FALSE
/datum/asset/New()
GLOB.asset_datums[type] = src
register()
@@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(asset_datums)
for (var/asset_name in assets)
.[asset_name] = SSassets.transport.get_asset_url(asset_name, assets[asset_name])
/datum/asset/simple/unregister()
for (var/asset_name in assets)
SSassets.transport.unregister_asset(asset_name)
// For registering or sending multiple others at once
/datum/asset/group
@@ -546,6 +549,11 @@ GLOBAL_LIST_EMPTY(asset_datums)
return
. = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename))
/datum/asset/changelog_item/unregister()
if (!item_filename)
return
SSassets.transport.unregister_asset(item_filename)
//Generates assets based on iconstates of a single icon
/datum/asset/simple/icon_states
_abstract = /datum/asset/simple/icon_states
@@ -90,9 +90,9 @@
#endif
if (!istype(client))
if (ismob(client))
var/mob/M = client
if (M.client)
client = M.client
var/mob/our_mob = client
if (our_mob.client)
client = our_mob.client
else //no stacktrace because this will mainly happen because the client went away
return
else