* Update NanoUI to the latest version, ported from Baystation12
* Update the Air Alarm UI
* Make changes to subsystems and some machines to make the new NanoUI
work
Adds crew monitor to the asset cache system
Adds paper to the asset cache system
Added a way to send files to the client slowly without clogging up the queue. (This isn't technically "safe", but the client would only have issues if they didn't have that file already (rare), and only if they used a window that needed that asset (currently only nanoui windows) within the first 15 to 90 seconds of connecting (depending on ping))
Makes NanoUI use this slow send system to blindly send it's asset files. (Once bay's nanoui is ported, i'll improve this so that nanoui fully implements asset cache checking)
Makes asset cache use this system to send all registered asset files, so that ui windows don't have to wait for them if the client's been connected a while.
Replaces typesof(path) - path with subtypesof(path) in obvious places. I was a bit conservative, there's probably a few more places that could use this.
Why use replacetext with no arguments? I have no idea.
This wasn't runtiming because of the bygex stuff I guess.
Thanks octareroon91 for reporting this to me ingame.
For finding a spawn point, it will now use this logic to find a spawn point, stopping at the first one it finds
Empty job spawn point
Filled up job spawn point (spawning them on top of eachother if it can't find enough spawn points)
Late join spawn point
Random tile in the arrivals shuttle area.
If it hits either of those two final points it will pop a message in the runtime log.
This should enable more murder death kill at round end before the next round starts.
New servers will default to 90 seconds while old servers will default to the old 25 seconds until they import the config option to their server.
Previously, security officer scaling was between 5-12 no matter what was configured.
Now, security officers will have (spawn positions)-12 spawn and total position slots.
This can be set in jobs.txt or admin set through the jobs controller while in the lobby.
This is only used when officer scaling is set.
Also, the number of extra security equipment closets spawned is relative to the number of total job positions configured, with or without officer scaling. Previously if officer scaling was not set, no additional closets could spawn.
Adds myself to admins.txt after like 3 years of contributing
The jobs controller's list of occupations was reset during roundstart which completely undid that whole load from file thing. It also would have undone any admin edits done while sitting in the lobby.
Also fixed a couple instances where people thought that lists get copied with the = operator instead of passing by reference.
It would lock up the MC for 30 seconds while it was compiling, meanwhile ticks are queuing.
After the map was compiled, there would be 15 mob ticks, 15 object subsystem ticks, 15 mechinery ticks, 60 atmo ticks, etc all queued up and would attempt to fire all at once.
Beds (and chairs) now have buildstacktype and buildstackamount vars to handle how many sheets of what they should drop on deconstruction.
They also have a foldabletype var to handle folding into item (currently only used by roller beds) so that people can add foldable chairs in the future.
Fixes swivel chairs not dropping the correct amount of metal sheets.