3591 individual conflicts
Update build.js
Update install_node.sh
Update byond.js
oh my fucking god
hat
slow
huh
holy shit
we all fall down
2 more I missed
2900 individual conflicts
2700 Individual conflicts
replaces yarn file with tg version, bumping us down to 2200-ish
Down to 2000 individual conflicts
140 down
mmm
aaaaaaaaaaaaaaaaaaa
not yt
575
soon
900 individual conflicts
600 individual conflicts, 121 file conflicts
im not okay
160 across 19 files
29 in 4 files
0 conflicts, compiletime fix time
some minor incap stuff
missed ticks
weird dupe definition stuff
missed ticks 2
incap fixes
undefs and pie fix
Radio update and some extra minor stuff
returns a single override
no more dupe definitions, 175 compiletime errors
Unticked file fix
sound and emote stuff
honk and more radio stuff
## About The Pull Request
In my effort to make the /icons/ folder cleaner and more intuitive
instead of having to rely on recalling names of stuff and looking them
up in code to find them for poor sods such as myself, plus in spurt of
complusion to organize stuff, here goes. I've tracked all changes in
commit descriptions. A lot still to be done, but I know these waves go
over dozens of files making things slow, so went lighter on it.
Destroyed useless impostor files taking up space and cleaned a stray
pixel on my way.
## Why It's Good For The Game
Cleaner /icons/ file means saner spriters, less time spent. Stray pixels
and impostor files (ones which are copies of actually used ones
elsewhere) are not good.
## Changelog
🆑
image: Cleaned a single stray pixel in a single frame of a bite
telegraphing accidentaly found while re-organizing the files.
/🆑
This uses a browser skin element to spy on the command bar and report
back to the server what verb is currently in it and how many characters
it has. it skips reporting if the text hasn't changed since the last
report.
im intentionally not providing the full text in the command bar to the
server, while designing the system so new verbs can be given typing
indicators by editing DM code, not html code.
The report rate is once a second but this could be lowered or tweaked.
Both the tgui say window being open and this system being active because
the command bar starts with `say "` is undefined behavior, mostly the
first one to end the indicator will just freeze indicators for the other
one until it too ends its current indicator session.
The system waits until something besides the `"` is in the argument to
say.
It is enabled for verbs `say`, `me`, and `whisper`.
I don't actually know if this is the case for tgui say. this is a one
line tweak anyways so let me know if this should be changed.
[(This pr closes a
bounty)](https://tgstation13.org/phpBB/viewtopic.php?p=726634#p726634)
🆑 MrStonedOne & Lilah Novi
add: Say commands typed in the command bar now trigger typing indicators
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
This uses a browser skin element to spy on the command bar and report
back to the server what verb is currently in it and how many characters
it has. it skips reporting if the text hasn't changed since the last
report.
im intentionally not providing the full text in the command bar to the
server, while designing the system so new verbs can be given typing
indicators by editing DM code, not html code.
The report rate is once a second but this could be lowered or tweaked.
Both the tgui say window being open and this system being active because
the command bar starts with `say "` is undefined behavior, mostly the
first one to end the indicator will just freeze indicators for the other
one until it too ends its current indicator session.
The system waits until something besides the `"` is in the argument to
say.
It is enabled for verbs `say`, `me`, and `whisper`.
I don't actually know if this is the case for tgui say. this is a one
line tweak anyways so let me know if this should be changed.
[(This pr closes a
bounty)](https://tgstation13.org/phpBB/viewtopic.php?p=726634#p726634)
🆑 MrStonedOne & Lilah Novi
add: Say commands typed in the command bar now trigger typing indicators
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Admin Verb Datums MkIII | Now with functional command bar (#82511)
* Modular stuffs
* Put some admin jump verbs back into the context menu | sorts area jump list again (#82647)
## About The Pull Request
See title.
## Why It's Good For The Game
Some admins wanted all the jump verbs back, aswell as making them not
AGhost you.
Also make the Jump To Area verb use a sorted list again
* Hey what if admins were allowed to use the player panel (#82682)
Re-adds the player panel verb to the verb panel.
* Controller Overview UI (#82739)
* Fixes a minor spelling mistake on the admin panel/verb list (#82747)
## About The Pull Request
Corrects `inisimin` to `invisimin`. This addresses #82728, but only
fixes one of the two issues mentioned
## Why It's Good For The Game
-1 spelling mistake
## Changelog
🆑
spellcheck: 'inisimin' verb corrected to 'invisimin'
/🆑
* Player Panel-age (#82757)
* Admin Forced Mob Rename and Preference Update (#82715)
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com>
* Feeds OOC messages back to client if blocked in validate_client() (#81769)
## About The Pull Request
Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.
In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.
There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑
* Feeds OOC messages back to client if blocked in validate_client()
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.
In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.
There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑
* Prettifies Adminwho into an Examine Block (#79137)
## About The Pull Request
Same vein of #71170 (2d3e7f2383) / #69845
(61d49cb11a) in an attempt to lessen the
number of cruddy "system messages" that just print straight text to
chat.
This could be improved CSS wise but I think a standard examine block
helps a lot while maintaing clarity, see below:

I also heavily refactored adminwho code to not have so much copypasta
while using more `jointext()` and keeping everything a bit more readable
than what it previously was. User-facing stuff should all be the same
(with the addition of an examine block) except in two spots
* Custom header message when no admins are online. I think this is a far
clearer message than having `Current Admins:` and then the message about
adminhelps being relayed to Discord
* There's no tabs per each entry. This was replaced by a bullet point. I
think it's better to read.
## Why It's Good For The Game
As time goes on, I'm more and more peeved by these pretty critical
messages constantly blending in with output from the rest of the game.
This is why balloon_alerts and whatever became so popular to my eyes,
there's just constant junk. I figure that we may as well just keep the
systematic stuff that _must_ live in the chat box looking as neat as
possible.
## Changelog
🆑
qol: Adminwho messages are now in an examine block for heightened
clarity.
/🆑
* Prettifies Adminwho into an Examine Block
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Same vein of #71170 (2d3e7f2383) / #69845
(61d49cb11a) in an attempt to lessen the
number of cruddy "system messages" that just print straight text to
chat.
This could be improved CSS wise but I think a standard examine block
helps a lot while maintaing clarity, see below:

I also heavily refactored adminwho code to not have so much copypasta
while using more `jointext()` and keeping everything a bit more readable
than what it previously was. User-facing stuff should all be the same
(with the addition of an examine block) except in two spots
* Custom header message when no admins are online. I think this is a far
clearer message than having `Current Admins:` and then the message about
adminhelps being relayed to Discord
* There's no tabs per each entry. This was replaced by a bullet point. I
think it's better to read.
## Why It's Good For The Game
As time goes on, I'm more and more peeved by these pretty critical
messages constantly blending in with output from the rest of the game.
This is why balloon_alerts and whatever became so popular to my eyes,
there's just constant junk. I figure that we may as well just keep the
systematic stuff that _must_ live in the chat box looking as neat as
possible.
## Changelog
🆑
qol: Adminwho messages are now in an examine block for heightened
clarity.
/🆑
* Adds sanity checking to prefs checks, fixing a bug that can cause emotes to stop displaying intermittently
* Update vox_procs.dm
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request
This PR adds a bunch of sanity checking to the `prefs.chat_toggles` var
accesses.
Prefs can be null when client is creating/deleting and this causes a
runtime where you might not be able to use emotes.

EDIT: as per suggestion I stopped masking the issue and added stack
traces instead. And made them into helper procs to avoid code
duplication.
For some of these procs it is important that we are able to continue
running to get to the end. **A ghost having null prefs should not stop
everyone else from hearing/seeing the emote.**
So now they will put the stack trace and keep on trucking if that issue
occurs. This is the main 'point' of the PR, which has seemingly gotten
bogged down in the creation of the two helper procs--apologies.
See https://github.com/tgstation/tgstation/pull/70404 for essentially
the same issue but applied to chat messages. I have gone back and
replaced the duplicated code from that to use the new helper procs
instead.
## Why It's Good For The Game
Anything chat related is a bad place to runtime. Some messages can take
a while to type out and to have it not display is frustrating at worst,
possibly detrimental if you have to communicate something urgently.
## Changelog
🆑
fix: fixes a bug that can cause emotes to stop working if a client is
being created or deleted
/🆑
* Allows Export of your Preferences JSON File (#75014)
## About The Pull Request
Hey there,
This was spoken about in #70492 (specifically
https://github.com/tgstation/tgstation/pull/70492#issuecomment-1278069607),
and I have been waiting for this to be implemented for some time. It
never got implemented, so I decided to code it myself.
Basically, **if the server host doesn't disable it**, you are free to
export your JSONs as a player, right from the stat-panel. It's a pretty
JSON on 515 versions, too!
It's right here:

Here's what the prettified JSON looks like on 515.

There's a cooldown (default to 10 seconds) between exporting your
preferences.
#### Why is this config?
It's because in the past, a server host could always just file-share the
.sav or .json or whatever to the player, but they would have to do the
explicit option of actually bothering to make the files accessible to
the player. In that same line of logic, the server operator will have to
explicitly make the files accessible. This is mostly because I'm not
sure how good `ftp()` is at being a player function and wanted to have
some sort of cap/control somehow in case an exploit vector is detected
or it's just plain spammed by bots, so we'll just leave it up to the
direct providers of this data to elect if they wish to provide the data
or not.
## Why It's Good For The Game
Players don't have to log into Server A to remember what hairstyle they
loved using when they want to swap to Server B! That's amazing actually.
I always forget what ponytail my character has, and it'll be nice to
have the hairstyle in a readily accessible place (after I prettify the
JSON for myself).
It's also more convenient for server hosts to make player data like this
accessible if they really want to, too.
If we ever add an _import_ feature in the future (which would have to be
done with a LOT of care), this will also be useful. I wouldn't advise it
though having taken a precursory look at how much goes into it while
trying to ascertain the scope of this PR.
## Changelog
🆑
qol: The game now supports export of your preferences into a JSON file!
The verb (export-preferences) should now be available in the OOC tab of
your stat-panel if enabled by server operators.
server: Exporting player preferences is controlled by a configuration
option, 'FORBID_PREFERENCES_EXPORT'. If you do not wish to let clients
access the ftp() function to their own preferences file (probably for
bandwidth reasons?) you should uncomment this or add it to your config
somehow.
config: Server operators are also able to set the cooldown between
requests to download the JSON Preferences file via the
'SECONDS_COOLDOWN_FOR_PREFERENCES_EXPORT' config option.
/🆑
* Allows Export of your Preferences JSON File
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Hey there,
This was spoken about in #70492 (specifically
https://github.com/tgstation/tgstation/pull/70492#issuecomment-1278069607),
and I have been waiting for this to be implemented for some time. It
never got implemented, so I decided to code it myself.
Basically, **if the server host doesn't disable it**, you are free to
export your JSONs as a player, right from the stat-panel. It's a pretty
JSON on 515 versions, too!
It's right here:

Here's what the prettified JSON looks like on 515.

There's a cooldown (default to 10 seconds) between exporting your
preferences.
#### Why is this config?
It's because in the past, a server host could always just file-share the
.sav or .json or whatever to the player, but they would have to do the
explicit option of actually bothering to make the files accessible to
the player. In that same line of logic, the server operator will have to
explicitly make the files accessible. This is mostly because I'm not
sure how good `ftp()` is at being a player function and wanted to have
some sort of cap/control somehow in case an exploit vector is detected
or it's just plain spammed by bots, so we'll just leave it up to the
direct providers of this data to elect if they wish to provide the data
or not.
## Why It's Good For The Game
Players don't have to log into Server A to remember what hairstyle they
loved using when they want to swap to Server B! That's amazing actually.
I always forget what ponytail my character has, and it'll be nice to
have the hairstyle in a readily accessible place (after I prettify the
JSON for myself).
It's also more convenient for server hosts to make player data like this
accessible if they really want to, too.
If we ever add an _import_ feature in the future (which would have to be
done with a LOT of care), this will also be useful. I wouldn't advise it
though having taken a precursory look at how much goes into it while
trying to ascertain the scope of this PR.
## Changelog
🆑
qol: The game now supports export of your preferences into a JSON file!
The verb (export-preferences) should now be available in the OOC tab of
your stat-panel if enabled by server operators.
server: Exporting player preferences is controlled by a configuration
option, 'FORBID_PREFERENCES_EXPORT'. If you do not wish to let clients
access the ftp() function to their own preferences file (probably for
bandwidth reasons?) you should uncomment this or add it to your config
somehow.
config: Server operators are also able to set the cooldown between
requests to download the JSON Preferences file via the
'SECONDS_COOLDOWN_FOR_PREFERENCES_EXPORT' config option.
/🆑
* Adds VERB_REF and derivative (#74500)
## About The Pull Request
Apparently in (one) place in the codebase, we were still using stuff
like `.verb/example_verb` for stuff like `INVOKE_ASYNC()` and
`CALLBACK()`s, and I'm pretty sure this is one of those things that are
being phased out in 515 (like we had to deal with in
4d6a8bc537), so let's give it the same
treatment as we did `PROC_REF` in November 2022.
In order to make this work, I created a generic backend of define
macros, and then moved two things: `PROC_REF` and `VERB_REF` to just
leverage that backend as needed. This was done just so we didn't have to
copy-paste code in case we needed to update these macros in the future,
let me know if I should approach this a different way.
## Why It's Good For The Game
code don't break (or at least the compile-time assertions won't break)
when we inevitably fully shift to 515. whoopie!
## Changelog
Nothing players should be concerned about.
* Adds VERB_REF and derivative
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Apparently in (one) place in the codebase, we were still using stuff
like `.verb/example_verb` for stuff like `INVOKE_ASYNC()` and
`CALLBACK()`s, and I'm pretty sure this is one of those things that are
being phased out in 515 (like we had to deal with in
4d6a8bc537), so let's give it the same
treatment as we did `PROC_REF` in November 2022.
In order to make this work, I created a generic backend of define
macros, and then moved two things: `PROC_REF` and `VERB_REF` to just
leverage that backend as needed. This was done just so we didn't have to
copy-paste code in case we needed to update these macros in the future,
let me know if I should approach this a different way.
## Why It's Good For The Game
code don't break (or at least the compile-time assertions won't break)
when we inevitably fully shift to 515. whoopie!
## Changelog
Nothing players should be concerned about.
* Clients can't OOC until they have fully gone through `New()` (#74493)
People are able to send OOC messages before `client/New()` is able to
fully set itself up. Let's guard against this by re-using the variable
we set at the end of New() and blocking any usage of the OOC verb if
they aren't set up. I made it a define so we can use it in other spots
as well if the occasion should call for it.
Define included in this PR can be (and probably should be when someone
has time) replicated in other spots where we need it.
* Clients can't OOC until they have fully gone through `New()`
---------
Co-authored-by: san7890 <the@san7890.com>
People are able to send OOC messages before `client/New()` is able to
fully set itself up. Let's guard against this by re-using the variable
we set at the end of New() and blocking any usage of the OOC verb if
they aren't set up. I made it a define so we can use it in other spots
as well if the occasion should call for it.
Define included in this PR can be (and probably should be when someone
has time) replicated in other spots where we need it.
## About The Pull Request
Firstly, this var was on `/mob`, even though only `/mob/living` and
`/mob/dead` could have ever used it, so who knows how much needless
memory it was consuming on stuff such as `oranges_ear` that would never
ever ever use something like this.
Edit: okay instead of memory it just polluted variable edit windows for
all /mob when it didn't need to. I like having a slim VV window
Secondly, it's a technical improvement over the previous system as we
are able to "track" where a suicide originates from, and how we can
track that from mob-to-mob-to-mob. Previously, the boolean `suiciding`
would only inform us if they had ever been connected to a mob that had
ever committed suicide, but now we are able to precisely determine which
mob gave them the trait that they must now apparently bear until the
round restarts.
## Why It's Good For The Game
Less memory usage, more indepth ability to track suicides in case you
really need that dexterity. Currently no implemented code could benefit
from using it, but it would be pretty neat if someone could figure out a
way to have someone be guilt-tripped whenever they look into a mirror
and seeing the reflection of their past life? This PR won't actually
help you code that and it'll probably require a bit more work, but it's
a possibility of some cool interactions you can do when you have this
information available to you.

## Changelog
🆑
refactor: Some aspects of how we track suicides from your living mob to
your observer have changed- please do let us know if anything has broken
via a GitHub Issue Report.
/🆑
There's probably some technical improvements that can be made in some
parts of the code I reworked to accommodate this change, do let me know
if you spot any easy ones (or fuckups). a lot of excess comes from the
fact that any step in the TRAIT framework trusts that you are passing in
a valid datum (or subtype) so that's a thing
## About The Pull Request
Damn that's a long title.
Admin Verbs can be used in the verb bar with hyphens instead of spaces
again.
## Why It's Good For The Game
Admin muscle memory
## Changelog
## About The Pull Request
Basically all of the heavy lifting was done in #72919, but we do a few
key things here that I wasn't able to do then because it was just
fucking massive.
Player Facing Changes:
* hear_blind arg is now a default state and must be specifically
overridden. Pretty much every mob that wasn't a pAI or alien was lacking
this, so let's toss it in as a default now. Let me know if the generic
message I put in for /mob/living sucks and we can go from there.
Code Side Changes:
* suicide.dm now only contains code pertinent to the suicide verb, and
all subtype proc-overrides have been moved to an appropriate file
pertinent to that subtype.
* suicide.dm has also been organized a bit more to aid the previous
change.
* There is only one suicide verb now, implemented on /mob/living. All
the verb does is invoke the handle_suicide() proc, which does all of the
lifting.
* Leaning into *mumble mumble* object-oriented philosophy, the message
we send to the world on suicide is handled on subtype procs, rather than
be in the huge fuck-off message tree I implemented in the earlier PR. It
definitely makes the visible_message() proc not hard to read IMO. This
also means that we can take up a less footprint when we re-use certain
suicide messages (i.e. Silicon), which is nifty too.
i'm probably forgetting something but that's all of the big ones
## Why It's Good For The Game
There is now a very, very common framework for how suicide works across
all living mobs, and it's much easier to override how suicide is
handled. Certain subtypes do their own bullshit thing, but it's quite
easy to account for this on that case-by-case basis. The overall code
takes up a much less footprint that just makes it look nicer.
## Changelog
🆑
qol: Some mob suicides now have a message that shows to blind people or
people that didn't actually witness the suicide, pretty cool.
/🆑
## About The Pull Request
On the tin. There was a lot of needless copy-paste and a lot of
single-letter vars and weird indentation and... well just all of it was
at least eight years old. So, I decided to "abstract" as much as I could
of it out instead of piling onto the big copypaste clusterfuck for
implementing basic mob suicide.
## Why It's Good For The Game
Fixes#72903
Having more procs that can be easily repeatably called to the same
results is much better than having to transplant the same exact three
lines everywhere. It's also a good first step to further in-depth
behavior by allowing sub-type overrides of certain procs (which is quite
nice). Just feels more extensible overall for the next guy who wants to
add funny suicide behavior whenever they might come around.
There's probably a few better ways to do what I did, but I wrote code
comments explaining why I did what I did. I think there's a few ways to
make it more agnostic, but I think that'll be another can of worms that
will bloat out an already quite large PR. Let's just get the framework
set.
(this refactor should also make it quite easy to unit test suicide
actions 👀)
## Changelog
🆑
fix: All Mobs (including Basic mobs) are now able to suicide. (warning:
some exclusions remain)
/🆑
* minor refactor to suicide code (#70960)
## About The Pull Request
Removes a redundant if statement and moves the code up an indentation
## Why It's Good For The Game
Makes the code look better
## Changelog
🆑
refactor: suicide code doesnt check damagetype multiple times
/🆑
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
* minor refactor to suicide code
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
## About The Pull Request
Removes a redundant if statement and moves the code up an indentation
## Why It's Good For The Game
Makes the code look better
## Changelog
🆑
refactor: suicide code doesnt check damagetype multiple times
/🆑
Co-authored-by: etherware-novice <candy@notarealaddr.com>
* Replaces the mood component with a mood datum
* Fixes merge conflicts and updates all of our mood events to use the new mood datums
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
About The Pull Request
Mood was abusing signals and get component pretty badly, so I redid it as a datum to stop this.
Why It's Good For The CODEBASE
Better code pratices, also gives admins easier tools to manage mood
Changelog
cl
admin: Added two new procs into the VV dropdown menu to add and remove mood events from living mobs.
/cl
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fuck you (refactors ur tails)
* Errors
* Wow. Pain.
* Fixes up probably everything
* finish up here
* Fixes hard del maybe
* original owner hard del
* garbage collection runtime
* suck my peen byond
* Mapped tails
* motherfucker.
* motherrfucker. again.
* Whooopppppsie
* yeah bad idea
* Turns out external organs literally just sat in nullspace forever if their parent was deleted, and didnt Remove() themselves, causing harddels.
* So anyways I repathed all organs
* Fixes
* really.
* unit test... test
* unit test-test but it passes linters this time because im a moh-ron
* I've lost track of what im doing at this point
* Hopefully fixes hard del?
* meh
* Update code/datums/dna.dm
* things n stuff
* repath from master pull
* Fit Viewport cleanup (#65225)
* Fit Viewport cleanup
Changes how Fit Viewport works slightly.
From what I understand, the verb was created with the goal of
eliminating the pixel hunting required to get rid of letterboxing.
This works fine for stretch to fit, but ever since the command bar got
nuked it's ended up creating a lot of blackspace for targeted zoom
modes.
I've changed how it decides on its optimal width slightly, if the client
has a non stretch to fit zoom mode, we use it, the world icon size and
the clients view size to figure out the exact width we want.
The bars on the left and right have been bugging me forever. Want them
gone.
In light of this, I'm also making changing your zoom amount attempt to
fit the viewport, if you have the pref enabled.
Oh and I'm trying something with auto fit viewport stuff.
It currently waits a second between view change and fitting. The comment
implies this is to avoid winget strangeness from Login calls. When I
blamed it, I found a commit from antruk talking about client dropping,
and this being a potential fix.
Unfortunately none wrote down what dropping means, and anturk's
forgotten.
I'm making the assumption that it's related to attempting the related
winsets before an inital login is over.
I might be wrong about this, if I am we'll know what went wrong I
suppose.
* Whoops, this needs to be invoke async
* Ensures client safety, autodocs code, adds proper cleanup
* Fit Viewport cleanup
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fit Viewport cleanup
Changes how Fit Viewport works slightly.
From what I understand, the verb was created with the goal of
eliminating the pixel hunting required to get rid of letterboxing.
This works fine for stretch to fit, but ever since the command bar got
nuked it's ended up creating a lot of blackspace for targeted zoom
modes.
I've changed how it decides on its optimal width slightly, if the client
has a non stretch to fit zoom mode, we use it, the world icon size and
the clients view size to figure out the exact width we want.
The bars on the left and right have been bugging me forever. Want them
gone.
In light of this, I'm also making changing your zoom amount attempt to
fit the viewport, if you have the pref enabled.
Oh and I'm trying something with auto fit viewport stuff.
It currently waits a second between view change and fitting. The comment
implies this is to avoid winget strangeness from Login calls. When I
blamed it, I found a commit from antruk talking about client dropping,
and this being a potential fix.
Unfortunately none wrote down what dropping means, and anturk's
forgotten.
I'm making the assumption that it's related to attempting the related
winsets before an inital login is over.
I might be wrong about this, if I am we'll know what went wrong I
suppose.
* Whoops, this needs to be invoke async
* Ensures client safety, autodocs code, adds proper cleanup