bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.
canSmoothWith list turned into a bitflag list.
smoothing_groups list added to substitute the type path list.
smoothing procs turned into atom procs, refactored and optimized a bit.
smooth directions redefined in order to fit in 8 bits for a future smoothing system
some variable names changed, foreseeing a second smoothing system
SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.
SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.
Does very minor code cleanup.
Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.
Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.
Could be tested a bit to see if I missed any icons not properly smoothing.
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
Adds an immobilized trait.
Adds procs for several variable changes so we can respond to their events.
Adds some signals for said variables changing.
Need to turn the variation in number of usable legs and arms (get_num_legs() and get_num_arms()) into events we can respond to, but they are pretty annoying to do so. Probably for a different PR.
* Station pets!
* Makes Lia and Sgt Araneus actual subtypes.
* Fixes some vars.
* Turns on AI for Cayenne and Lia, makes Lia neutral faction.
* Gives Lamarr a description.
* Pettable status and emotes for HoS and syndicate pet..
* Tom the mouse consistency.
* Comment correction.
-bitfielded a bunch of bools on /area, I left some untouched cus they get called a lot
-Unused vars
-Fixed a var pretending to be a fake bool
-Probably more
* adds directional window setting for normal grille window mode
adds furnishing upgrading to the rcd for chairs, stools, tables, and glass tables
both of these new introductions have their direction based on where you are facing when the timer for the build finishes
* adds the luxary rcd cargo pack with a loaded rcd, all 4 upgrade disks, and 3 extra compressed matter cartridges
* adds the furnishing upgrade to the techwebs
allows cyborgs to install rcd upgrades except silos
allows loading of metal and matter into the rcd by simply clicking on the thing you want to insert
lowers price of the cargo pack and removes the silo upgrade
adds banned upgrades var to the rcd
* you can now create windoors and deconstruct them as well
you can now deconstruct tables
doubles the price of the cargo pack for rcds
* removed cargo pack
* changes define to bitshift flags
moves matter addition to rcds to a proc on sheets
* matter amount is now a stack variable
Defined all the existing light_color values.
Moved their definitions to colors.dm
Made white the default color. It was so already, but that was very obscured.
Moved the atom light-related variables to the atom definition.
Wrapped changes to variables such as light_color into procs that report the event through signals.
Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
Cleaned up a little bit of code in where new variables were defined before redefinitions.
This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.
There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
* Don't initialize the atom_colours list on atoms until it's actually needed
* Moved bloody_hands var to mob/living/carbon/human instead
* Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti
The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc
* Cleaned up carbon washing, renamed washed to wash
* The wash proc now doesn't take the washer as first arg because that wasn't used anywhere
* The wash strength is no longer optional
* Carbons now overrides the wash proc instead of using the signal
* Properly check for obscuredness before washing any equipped items
* Properly wash all items and bloody hands etc
* Added clean_lips proc for humans for cleaning any lipstick
* Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly
* Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic.
* Properly utilize the is_cleanable define
* Added wash override for turfs where they also wash any mopables on the same tile
* Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items
* Non-component washables now simply override wash instead of registering for the clean signal
* Fixed some left over clean signal registers not returning true
* Added clean_strength var to space cleaner
* Moved human wash proc next to the other washing procs
* Also wash glasses and mask if not obscured when washing face
* Fixed attempting to "scoop up" cleanable decals using a rag
* Fixed plasmaman spacehelm icon not updating when washed
Also removed a duplicated worn_overlays proc
* Fixed head icon not updating when washing lipstick
* Moved radioactive clean signal register to where it should be
* Added atom radiate VV verb for debugging
* Redesigned the CLEAN constants into a more sensible flags setup
This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength.
* CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease
* CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean
* Fixed broken rad removal logic in showers
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Removed unneccesary bool from sink code
* Fixed wrongly named variable in turf wash
* Renamed bloody_hands to blood_in_hands
Co-authored-by: Rohesie <rohesie@gmail.com>
* Simple skills framework.
* Map changes.
* Adds skillchips to vendor
* Adds skill stations to the map.
* Circuitboards
* Fix typo
* Some minimal instability
* Fixes,tweaks etc
* Suggest better names or we'll end up with these.
* sharpness thing
* tgui build
* Makes wine from booze synthetizer show to wine tasters.
* Makes wine from dispenser have taste for wine tasters.
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Swaps to carbon var.
* wordy helper proc
* While i'm at it, other relaymoves
Co-authored-by: Rohesie <rohesie@gmail.com>
* INVOKE_ASYNC
Replaces a zero-delay timer with INVOKE_ASYNC
* More timers
Switches out some more zero-delay timers for `INVOKE_ASYNC`
* lib_codex_gigas
One last switch
* Converts everything to use setAnchored() + other fixes
* Fixed singulo debug
* singulo again
* forgot to move the vv_edit proc
* caught that this time :)
* changes
* Update code/game/atoms_movable.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Fixes sheets of glass / other materials that don't have a valid false wall type being consumed without doing anything when you try to construct a false wall with them
* Add tests for outfits, fixes families outfits and Syndicate Ship Captain
* Switch out captain uniform from tacticool to combat
* Consistent styling
* My weakness is I'm a pedant
* Check left and right pockets, and fix armored bounty hunter
Please check out this EPIC OFFICIAL PR TRAILER before reading (very important)
https://youtu.be/4RckVdx20oQ
the video is kinda autistic
dont forget to upvote
About The Pull Request
All sprites and epic meme videos made with love by yours truly
Except for the 2 missile sprites. Those were taken and modified from NSV13 who in turn ported them from TGMC
nupod_all_decals
Anyways, this adds:
New pod, reverse-pod, and target indicator sprites
Pod-ground collision effects (impact craters basically)
Cool looking vapor trails a la the half-life 2 headcrab shells
And also:
Fixes seethrough pods not actually working
Makes reverse-mode a bit more predictable
Has some minor code improvements with how supplypod-reverse-mode works
* BLOCK_Z_FALL separate
Separate BLOCK_Z_FALL flag to BLOCK_Z_OUT_DOWN, BLOCK_Z_OUT_UP, BLOCK_Z_IN_DOWN, BLOCK_Z_IN_UP
* Propertly Z blocking for catwalk
Catwalk block z falling and uplifting from below
* Walkable lattice
Now lattice can support spaceman
* Replace BLOCK_Z_FALL flag
* Update _open.dm
* Update openspace.dm
* Update ladders.dm
* Update away_props.dm
WIP overlays
icon upd8
more
need to figure out whats going on with extractionpods
compile
the icon update
more!!
why are skillcapes broken
boat lmao
seethrough fix
Second drive-by
Code cleanup and improvements
Specifically surrounding contractor pods and reverse mode working properly
accidently left in an extra dmi whups
do the impossible see the invisible
new effect booster pack
MFW MRW Linter fail
* Initial commit, updates trays into 2020
* Adds vend-a-trays as a service machine, without it being a machine.
* Replaced the mapped vend-a-trays with service unique versions.
* "YoUr BuIlD DiFfErS fRoM mAsTeR"
* Removes {}s from img, workin on the other part
* All my homies recompile on merge conflict
* Fixes end of line because honestly there must be no god on this green earth
* hopefully this isn't too excessive.
* How's this?
* Applies Anturk's Confirm suggestion.
* Shipped, workshopped with style a bit
* Alright that's probably enough fiddling for now
* Rebuilds.