* Making it compileable
* Adds Tracy & Fixed missing compat in sorting code
* CI workflow using "Stable" beta version
* Tracy define
* Fixes
* Update GC from TGStation
* fixes
* Appease linter
* begone custom_items.txt
* Making it compileable
* Adds Tracy & Fixed missing compat in sorting code
* CI workflow using "Stable" beta version
* Tracy define
* Fixes
* Build dependencies at 514
* Asset delivery/GC/515 megapatch
* fix runtime
* Appease integration tests
* More runtime fixes
* Attempting to resolve runtime
* Update spacemanDMM
* icon2html revolution
* icon2html part 2
* fixes
* Attempt to appease linter
* More fixes
* Final fixes (hopefully)
* operator keyword moment
* minor fixes and additions
* undo extra tgui files
* switch to QDEL_IN_STOPPABLE where necessary
* Pain
* GPS runtime
* dropped(null) fix, + chompedit the fixes just incase.
* Fix chat tags
* Update _build_dependencies.sh
* runtime in orebag, duplicate in computer/ship/proc/look, runtime in zoom
* tweak zoom change
* another registersignal override runtime
* 1
* Revert "1"
This reverts commit 43f619ca6c216c2bc41b8f7a346069f99591261b.
* various qdel ref fixes
* newplayer and observer harddels
* disposalholder logging remove, gargoyle hard del + typo
* retouch atom/movable destroy to be TG-like
* potential edge case ref in manualfollow
* extra following potential ref
* global list refs tweak, new_player undo a thing
* /mob/new_player qdel fixes
* undo some things
* revert atoms/movable/destroy
* revert mind and new_player panel changes
* atoms and atom/movable reversions
* bring back datum/mind and panel fixes
* projectile optimisation
* Reverts useless edits, clothing hood runtime, projectile runtime
I tried a lot of things which do not help, and i reverted a lot of it here.
* a few more reversions of useless changes
* Begin getting rid of CHOMPedit comments
* Nuke remaining chompedit comments
* Revert "undo extra tgui files"
This reverts commit f3bdcde8cb.
* fixing oops
* line ending shenanigans
* More GC cleanup
* Optimisations to test/trace projectile, turrets. Tweaks.
Turrets now only trace when they are absolutely sure they want to shoot. disposalholder, effect master and artefact qdel refs changes.
* bad usage of the check_trajectory proc
check_trajectory returns a list of objects hit along it's path to it's target, not a boolean of the target being hittable. a couple places in code assume this, so here they are fixed.
* puts legacy globals into GLOB datum for debug use
* fix upport oopsie
* fix
* Move recursive listening to component
* Minor fixes and cleanup
* undo my temp solution
* tweaks + a missed thing
* recursive_move sanity checks and safety cases
* Catch null initialisation cases + fix borg creation
VV edit spawns the object in nullspace then directly sets it's loc, which means the movement is unregistered. The spawn(0) delay should hopefully mean that setup_parents happens AFTER any unregistered movement.
* circular inventory check, make checks better
* better handling of safety reset cases
* Add logging to safety checks
---------
Co-authored-by: Selis <selis@xynolabs.com>
Co-authored-by: Selis <sirlionfur@hotmail.de>
Co-authored-by: Raeschen <rycoop29@gmail.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.