* fleshed out engi and asteroid * command work * more department fleshing out: sec * sec work * perma work * Update EmeraldStation.dmm * Update EmeraldStation.dmm * Update EmeraldStation.dmm * Update EmeraldStation.dmm * med and dorms fleshing out * sci and service fleshing out * Update EmeraldStation.dmm * APCs done + detailing * Update EmeraldStation.dmm * wire work * more wire work * wires and LIGHTS * ATMOS DONE now onto DECOR * AI/status monitors * intercoms and newscasters * Wall items and cameras! * Update EmeraldStation.dmm * Update EmeraldStation.dmm * Update EmeraldStation.dmm * Update EmeraldStation.dmm * Update EmeraldStation.dmm * moved the file to the correct area * bugfixes, starting up the map * refining the asteroid * merge fixes * logs of bugstomping * more bugfixing * bugfixing * bugfixin * trying to make the stupid lava work * adds plasma vent for test * more testing * swapped file places * vents work now! * Update paradise.dme * vent sprite update * file corrections * Asteroid MILLA changes * adds a new MILLA atmos type * Build MILLA * oopsie * fixes * removed testing code * reverts map start * reverts the atmos change * respriting geyser * comments * Update code/__DEFINES/atmospherics_defines.dm Co-authored-by: Charlie Nolan <funnyman3595@gmail.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update geyser.dmi * Update paradise.dme * fixing past merges * adds some missing items from merges * reverting * reverts changes again * deleted unused file * oops forgot nearspace areas * Update code/game/objects/structures/plasma_geyser.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/turfs/simulated/floor/lava.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/area/ss13_areas/engineering_areas.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/objects/structures/plasma_geyser.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/turfs/simulated/floor/lava.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/objects/structures/plasma_geyser.dm Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Lots of map fixes * Update EmeraldStation.dmm * trying to unfuck the milla merge * removed station from dme * fixes/small tweaks/suggested changes * removed errant turret * redid telecomms * Update EmeraldStation.dmm * rebuilding everything * redoing security * more sec work * perma shaped up + more items * renamed properly this time * resetting atmos code * more secwork and move papers off varedits * more secwork + dorms + funeral services * added new areas + pipe/wires/floors * security electrified windows/wires/alarms/lights * cameras, dorms pipes/ires/alarms/apcs * merged * disposals * lots of wall things + added map datum for testing * pipe fix for linter * fiddled with maints * minor maint edits * fixes + maint work * more bugfix * even more bugfixing * MORE nearspace fixing * dumb nearspace fix * Update code/game/objects/structures/plasma_geyser.dm Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * a LOT of fixes + door access * disposal pipe update script * oops linter fixes * fixed viro button runtime * finished maints + space decor * removed hall light switches * fixed solars areas * removed errant lattice * remove agent B from asteroid * wall bump placement refining * apc fix * bugfixing * minor maint change * bugfixing * burn tile on node fix * changed official name * bugfixing * added genetics locker+figures * bug hunting (buttons mostly) * added firelocks. oops * added temp webmap + bugfix * Update emeraldstation.dmm * new webmap. again * added the perma tools * nanomaps * bug fixes, fixes, and more fixes * more tweaks * cable fix * more bugfixing * Update emeraldstation.dmm * tiny fix * fix AI sat turrets * more bugfixing * MORE bugfixing * bugfix + ruins soundfile * pipe bugfix * fixed toxins pipes. junctions bad? * swimwear :) * remove errant QM gps * rnd shutter button missing * potato layering fix * add bridge request console * fix window tint in interrogation * added some clothes * nanomaps2, asset boogaloo * modified an empty hall, added some perma cams, minor fixed * forgot to save before push oops * widens sci maint hall + bugfix * gives theatre its autodrobe back! * moved borg spawns * moves nuke op default spot * new asteroid mix + botany tweak * adds cremator button * new sign + moved pod + bugfixing * cable fix * engine, sci chem, and surgery tweaks * more bugfixes and tweaks * more tweaks * adds a few windows back to robotics * bar was missing pun pun! * corrected misplaced atmos machines * re-added the bathroom * fixes atmos waste disposal injector * modified mr potato * changed bathroom area * minor toxins tweak * small wall decor tweaks * removes errant lights * removes errant opier * LOTS of fixes/tweaks + adds CO2 to asteroid * gave maint some boxes + cable fix * duped brig lock * adds masks to medbay storage * adds missing gues passes * cleanup from kitchen rework * gives solars enough glass to complete it * adds another defib to cryo pods * makes asteroid sign fireproof * perma maint now opens with virus + bugfixs * bugfixing + adds missing holopads * more holopads + bugfix * adds some smoke vendors * kitchen area tweak * fixed errant rack * rearranged/spread out cig vendors * moved a cig machine again * added RD tint button * undid a brig area change * removed errant posters * added filing cabinets + bugfix * maint morgue tray fix * adjusted chapel + bugfix * fixed palms + minor sec floor tweak * adds forgotten magi and clown starts * gave engi a shower * reworked robotics + atmos bugfix * geysers now work at 1/10 capacity when overpressure * bugfixing + tweaked overrides/variables * rework warden office * bugfixes + adds some holopads * added missing bio shutter * more small tweaks * adds RnD rework + gives mag some things * fixed fabricators * tweaked robo + added rnd server board * added rnd backup circuit * bugfixing * bugfixing again * bugfixing * fabricator fix --------- Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> Co-authored-by: paradisess13[bot] <165046124+paradisess13[bot]@users.noreply.github.com> Co-authored-by: Charlie Nolan <funnyman3595@gmail.com> Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
Asset cache system
Framework for managing browser assets (javascript,css,images,etc)
This manages getting the asset to the client without doing unneeded re-sends, as well as utilizing any configured cdns.
There are two frameworks for using this system:
Asset datum:
Make a datum in asset_list_items.dm with your browser assets for your thing.
Checkout asset_list.dm for the helper subclasses
The simple subclass will most likely be of use for most cases.
Call get_asset_datum() with the type of the datum you created to get your asset cache datum
Call .send(client|usr) on that datum to send the asset to the client. Depending on the asset transport this may or may not block.
Call .get_url_mappings() to get an associated list with the urls your assets can be found at.
Manual backend:
See the documentation for /datum/asset_transport for the backend api the asset datums utilize.
The global variable SSassets.transport contains the currently configured transport.
Notes:
Because byond browse() calls use non-blocking queues, if your code uses output() (which bypasses all of these queues) to invoke javascript functions you will need to first have the javascript announce to the server it has loaded before trying to invoke js functions.
To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by get_url_mappings() or by asset_transport's get_asset_url(). (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details.
CSS files that use url() can be made to use the CDN without needing to rewrite all url() calls in code by using the namespaced helper datum. See the documentation for /datum/asset/simple/namespaced for details.