## About The Pull Request Interior decor at its finest & fastest available in engineering Proto lathe after research - Left click on a tile to infer its type. If the tile is supported by the RTD then a balloon alert will be displayed showing "Tile changed to XXX". If not supported, it will tell you that - Right click on tile to convert it back to plating. It can only deconstruct floor types which are supported - Left click on plating to place your floor tile - Only iron & glass floor types are supported because you can only feed iron & glass to the RTD to keep it consistent Also, this is my first time ever making sprites so expect less. https://user-images.githubusercontent.com/110812394/209545438-6a51e7bf-163a-4a18-9102-7b77107eb1b7.mp4 Cleaned up some code in the RCD file as a bonus some notables ones are - moved `update_overlays()` from rcd to `obj/item/construction `so any class extending from this can use it - removed `do_after()` when changing turf types cause its unessassary & doesn't play well with the RTD ## Why It's Good For The Game - Replace damaged or dirty tiles without the need of a janitor, crowbar & removes manual labour by hand - Give your room some style quickly maybe replace the whole station floor with glass tiles I don't know you decide - Maybe lay floor tiles quickly in maintenance to stop rats from chewing on those cables ## Changelog 🆑 add: RTD Rapid Tiling Device imageadd: Sprite for RTD code: moved update_overlays() from rcd to obj/item/construction so anyone can use it del: cooldown of 3 seconds when changing turf type qol: Faster Turf decoration /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Jeremiah <42397676+jlsnow301@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.