mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-06 06:52:39 +00:00
* Speeds up world init. * Armor is now new inited for obj and the first level of subpaths. * Actions is now lazyinited and deleted with empty. * Actiontypes is now only inited when actually used and deleted once it pre-fills actions with the action buttons. * Pipes now prefill their node list(s) in new() using new /list/ (count) syntax to speed up the list initaliztions and remove the init proc. * Pipes no longer store their item version, instead creating it on the fly when deconned * Walls no longer store their metal stacks, instead creating it on the fly when deconned. * obj, walls, floor, plating, item, machinery, structure, pipe, pipenet, atom, and movable no longer have an (init) proc. (along with a few other smaller examples) * Atmos can pass checking is now a var with the ability to have a proc be call in advance cases. * (as a side effect, I had to fix a few things that were calling atmosCanPass rather then using the pre-calculated list, this should speed up chemfoam and flame effects greatly) * Reverts upload limit (remind me one day to defuck this, it could easily be a config thats not editable by vv to make changes easier) * Makes apc update icon a bit faster. APC new is some what high on the profile of world init, still not sure why, but this stood out as a waste of cpu so i fixed it. * Fixes runtime with atmos backpack water tanks. * Makes smoothing faster (and fixes turfs smoothing twice at init) * Makes apcs init faster by replacing some spawns with addtimer * fix transit turfs.
36 lines
709 B
Plaintext
36 lines
709 B
Plaintext
var/datum/subsystem/icon_smooth/SSicon_smooth
|
|
|
|
/datum/subsystem/icon_smooth
|
|
name = "Icon Smoothing"
|
|
init_order = -5
|
|
wait = 1
|
|
priority = 35
|
|
flags = SS_TICKER
|
|
|
|
var/list/smooth_queue = list()
|
|
|
|
/datum/subsystem/icon_smooth/New()
|
|
NEW_SS_GLOBAL(SSicon_smooth)
|
|
|
|
/datum/subsystem/icon_smooth/fire()
|
|
while(smooth_queue.len)
|
|
var/atom/A = smooth_queue[smooth_queue.len]
|
|
smooth_queue.len--
|
|
smooth_icon(A)
|
|
if (MC_TICK_CHECK)
|
|
return
|
|
if (!smooth_queue.len)
|
|
can_fire = 0
|
|
|
|
/datum/subsystem/icon_smooth/Initialize()
|
|
smooth_zlevel(1,TRUE)
|
|
smooth_zlevel(2,TRUE)
|
|
var/queue = smooth_queue
|
|
smooth_queue = list()
|
|
for(var/V in queue)
|
|
var/atom/A = V
|
|
if(!A || A.z <= 2)
|
|
continue
|
|
smooth_icon(A)
|
|
|
|
..() |