* add support for GAGS to design asset list generation (#60366)
* Add support for GAGS to design asset list generation
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* Tidy HTML folder (#58761)
This PR aims to make the HTML folder a little more organized, as well as remove a few unused files.
Why It's Good For The Game
Doesn't change anything for the player, however makes the files more organized.
* Tidy HTML folder
Co-authored-by: Celotajs <81999976+celotajstg@users.noreply.github.com>
This pull request converts the changelog to TGUI.
Note: Old unused changelog files will be automatically removed on the next changelog run
Why It's Good For The Game
More consistent UI, ability to view all historic logs.
Changelog
cl Celotajs
refactor: Converted the changelog popup to TGUI
/cl
Co-authored-by: Celotajs <81999976+celotajstg@users.noreply.github.com>
* tgui strip panel + strippable element (#57889)
Completely removes show_inv and replaces it with /datum/element/strippable. It takes a list of instantiated /datum/strippable_item which communicate which slots are available and how to interact with them. This element has been added to humans, alien humanoids, parrots, and corgis.
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* tgui strip panel + strippable element
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* Fixes that painting asset runtime that happens every time. (#56746)
Painting titles are not guaranteed to be unique, especially between categories.
* Fixes that painting asset runtime that happens every time.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Revives old Mafia PR adding security, a mind bogglingly large amount of refactors, some documentation, and other niceities (#56199)
* Revives old Mafia PR adding security, a mind bogglingly large amount of refactors, some documentation, and other niceities
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* No more magical transformation of condiment containers on reagent change (#54102)
* Removal of magical transformation of condiment containers on reagent change.
Instead allows to set specific style for condiment bottle when creating via CondiMaster.
* Codestyle fixes
* DMDOC comments.
Also removed var/useramount and proc/isgoodnumber from /chem_master
* Recompiled tgui.bundle.js after rebase
* No more magical transformation of condiment containers on reagent change
Co-authored-by: MIK517 <jetpack11@gmail.com>
* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!. (#53655)
* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!.
Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
* Fix bicon, fix asset hashes being incorrect. (#53441)
icon2html will now always show the south direction unless passed a specific direction to show. Null can be explicitly passed with an atom to use the atom's direction. This is to work around icon() returning a blank icon if passed a direction that the icon doesn't define, instead of defaulting to south like the client does. This should also cut down on the number of assets generated by shift clicks
If icon2html is given an atom with an invalid icon state, it will use the atom's compile time icon_state, so smoothed icons can show their mapper's helper icon instead of the entire dmi.
Asset cache will now copy files to disk before md5ing them, to deal with byond not always returning the correct md5 for rsc references.
* Fix bicon(icon2html) showing full dmis, fix asset cache hashes being incorrect.
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Font awesome is no longer a legacy asset (#53370)
old goonchat was the only thing that needed this.
* Font awesome is no longer a legacy asset
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Add a new achievement (#53282)
This achievement can be gained by slapping bubblegum with a tongue.
For science!
Sprite by Arcane
* Add a new achievement
Co-authored-by: oranges <email@oranges.net.nz>
* tgui: Yarn Berry (#53026)
This pull request upgrades Yarn to version 2 (also known as Yarn Berry).
* Update build validator
* Provide inferno in the root level package
* Remove type module from package.json
* Powershell build script
* tgui: Yarn Berry
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* tgchat (#52426)
Replaces goonchat with a tgui based chat panel
Fixes#52898Fixes#52663
It is as fast as goonchat was (if not faster in certain circumstances), and is very extensible. It has all the necessary code for sorting messages into categories, which means that one of the next features will be multiple tab support.
Additional features that you will get with tgchat right now:
Massively faster server-side performance compared to goonchat, especially if batching multiple messages to one client.
Message persistence across rounds and reconnects. (All messages are stored client-side in IndexedDB)
More robust scroll tracking. If you scroll up, it will not change the scroll position on new messages like goonchat did.
Multiple message combining. (Currently set to combine up to 5 messages over last 5 seconds).
If using the highlighting feature, it highlights the whole message as well as the matching word.
"Now playing" widget, with preview of the song title, a knob for adjusting the volume and a stop button.
Architecture is as following:
```
to_chat() -+
|
SSchat
(queue, batching)
|
window.send_message()
|
v
+-------------+
| tgui-panel |
|+-----------+|
|| tgchat ||
|+-----------+|
+-------------+
```
Subsystem is basically goonchat, but without all the garbage that slows the servers down (string concatenation, double urlencoding, sanitizing, etc). Now, instead of all that, it's being slowed down by json_encode in /datum/tgui_window/proc/send_message, which IMO is completely worth it, and allows sending various templates and widgets to tgchat.
/datum/tgui_window abstracts the whole window away from you, establishes a nice message-passing interface between DM and JS, with two message queues on each side, automatically loads js/css assets for you, basically does everything. You as a developer only have to worry about sending/receiving messages and write javascript.
tgui-panel is a slimmed down version of tgui, and functions as a container for various widgets, and tgchat is one of them. It of course can be expanded with more stuff.
It's also a separate entry point and a JS bundle, so it's not bloating the main tgui bundle, and is currently sitting at about 230kB.
* tgchat
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* [Ready] CDN browser assets! (#52681)
Rewrites the asset_cache system to handle sending assets to a CDN via a webroot.
see https://github.com/MrStonedOne/tgstation/blob/asset-cdn/code/modules/asset_cache/readme.md
Fixed a lot of bugs with assets, removed some dead code.
Changes:
Moved asset cache code to transport datums, the currently loaded one is located at SSassets.transport, asset cache calls made before the config is loaded use the simple browse_rsc transport.
Added subsystem call for when the config loads or reloads.
Added a webroot CDN asset transport. assets are saved to a file in a format based on the file's hash (currently md5).
Assets that don't use get_asset_url or get_url_mappings (such as browser assets referred to by static html files like changelog.html or static css files) can be saved to browse_rsc even when in cdn asset mode by setting legacy to TRUE on the datum returned by register_assets
Added a system for saving assets on a cdn in a hash based namespace (folder), assets within the same namespace will always be able to refer to each other by relative names. (used to allow cdn'ing font awesome without having to make something that regenerates it's css files.).
The simple/namespaced asset cache datum helper will handle generating a namespace composed of the combined md5 of everything in the same datum, as well as registering them properly.
Moved external resource from a snowflake loaded file to a config entry, added it to resources.txt
To ensure the system breaks in local testing in any situation that wouldn't work in cdn mode, the simple transport will mutate the filenames of non-legacy and non-namespaced assets and return this with get_asset_url.
Simple transport's passive send of all roundstart assets to all clients is now a config that defaults to off. this is to break race conditions during local testings from devs accidentally relying on this instead of using send() properly.
cl
refactor: Interface assets (js/css/images) can now be managed using an external webserver instead of byond's one at a time file transfer queue.
admin: Adds admin verb toggle-cdn that allows admins to disable the external webserver asset transport and revert to the old system. Useful if the webserver backing this goes down (thanks cloudflare).
config: New config file, resources.txt, (must be loaded by an $include statement from the main config)
server: The external_rsc_urls.txt config has been moved to the main config system.
/cl
Porting notes:
Interface webpages must refer to their assets (css/js/image/etc) by a generated url, or the asset must register itself as a legacy asset. The system is designed to break in localtest (on simple/legacy mode) in most situations that would break in cdn mode.
Requires latest tgui.
The webserver must set the proper CORS headers for font files or font awesome (and other fonts) won't load.
/tg/'s webserver config: https://gist.github.com/MrStonedOne/523388b2f161af832292d98a8aad0eae
* [Ready] CDN browser assets!
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* First draft
* tgui interface bluescreen guards
* Preparing for cyborg module sub-categories
* The rest of the owl
* Stop duplicate say messgaes
* Implement interface handling for obstructed exits
* Pocket lint
* Documentation and misc. code cleanup
* Implement searching in interface
* tgui pocket lint and build
* Coding style consistency and changes. Rebuild tgui.
* Update default bitflags
* Address potential edge case bluescreen.
* orange man good
* Remove emag_act with obsolete functionality
* Standardise variable naming conventions
* tgui 4.0 update
* tgui 4.0 update
* Port a couple of usability improvements from concept branch.
* Fix new ui_act input.
* Actually fix new ui_act input
* Port some small improvements from concept branch.
* Rebuild tgui
* Made department of redundancy department redundant.
* Rebuild tgui.
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger