mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 20:11:56 +00:00
* The Failsafe can now recover from an deleted MC Its also more reliable and can handle a situation where its main Loop runtimes and the MC is stuck * Reset defcon level correctly Oops left that in from debugging the levels * Correctly recover SSasset * Only decrease defcon if MC creation failed Also add some sort sleep between emergency loops * Makes the last two emergency actions manual procs Since they are kinda unstantable its probalby best if only admins call these manually Its also more reliable and can handle a situation where its main Loop runtimes and the MC is stuck You can also now debug Master/New() While there will most likely never be any situation where the MC is just gone its still good to know that the game can recover from such a situation For example maybe someone messed up a SDQL query or maybe someone wanted to delete the MC to create a new one hoping the Failsafe would do so for him Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
38 lines
924 B
Plaintext
38 lines
924 B
Plaintext
SUBSYSTEM_DEF(assets)
|
|
name = "Assets"
|
|
init_order = INIT_ORDER_ASSETS
|
|
flags = SS_NO_FIRE
|
|
var/list/cache = list()
|
|
var/list/preload = list()
|
|
var/datum/asset_transport/transport = new()
|
|
|
|
/datum/controller/subsystem/assets/OnConfigLoad()
|
|
var/newtransporttype = /datum/asset_transport
|
|
switch (CONFIG_GET(string/asset_transport))
|
|
if ("webroot")
|
|
newtransporttype = /datum/asset_transport/webroot
|
|
|
|
if (newtransporttype == transport.type)
|
|
return
|
|
|
|
var/datum/asset_transport/newtransport = new newtransporttype ()
|
|
if (newtransport.validate_config())
|
|
transport = newtransport
|
|
transport.Load()
|
|
|
|
|
|
|
|
/datum/controller/subsystem/assets/Initialize(timeofday)
|
|
for(var/type in typesof(/datum/asset))
|
|
var/datum/asset/A = type
|
|
if (type != initial(A._abstract))
|
|
get_asset_datum(type)
|
|
|
|
transport.Initialize(cache)
|
|
|
|
..()
|
|
|
|
/datum/controller/subsystem/assets/Recover()
|
|
cache = SSassets.cache
|
|
preload = SSassets.preload
|