## About The Pull Request
Changes some logic in underfloor object and atmos component rendering to
make them look nicer when visible, but not accessible under floors. Also
changes how catwalks get rendered to improve their visuals when opened.
Before:

After:

## Why It's Good For The Game
Makes pipes look less shit. The rendering curse reigns eternal.
## Changelog
🆑
fix: Fixed vents and pipes partially poking out from under glass and
catwalk floors
/🆑
## About The Pull Request
Vents/scrubbers look a bit weird as their pipes still go above
catwalks/glass floors but I need my stuff from #89702 and it should be
atomized from this PR.
Closes#87022Closes#88823
## Changelog
🆑
fix: Fixed spiderwebs, alien weeds, kudzu, and other stuff layering
below catwalks and glass floors
/🆑
## About The Pull Request
This box type has a maximum of 3 slots, and can be hidden beneath
floortiles. It can be crafted by *jump emoting ontop of a regular, empty
box.
https://github.com/user-attachments/assets/d7ab52ec-2b47-4ab4-b2af-05ce00b0ae4bhttps://github.com/user-attachments/assets/30dd5de3-1f4d-4cb4-8d9c-8625379e76bf
## Why It's Good For The Game
Hiding beneath tiles is a fun, yet not broken method of stowing
contraband. The toiletbasin or moisturizer trap remains a better option,
so I want to open up the space between the floorboards as quick
alternative for stowing or making cache drop-offs.
Smuggle satchels have a lot more going for them than their ability to be
hidden beneath tiles, so I don't feel like this is intruding on their
turf.
## About The Pull Request
Ok so like, side map right? It makes things higher up in the world
render above things lower down in the world.
Most of the time this is what we want, but it is NOT what we want for
floors.
Floors are allowed to be larger then 32x32, and if they are we want them
to render based off JUST their layer.
If we don't allow this grass turfs and others get cut off on their
bottom edge, which looks WEIRD.
In order to make this happen, we can add TOPDOWN_LAYER to every layer on
the floor plane and disable sidemap.
I've added documentation for this to VISUALS.md, and have also
implemented unit test errors to prevent mixing TOPDOWN layers with non
topdown planes (or vis versa).
This new test adds ~1 second to tests, which is I think a perfectly
scrumpulent number.
EDIT:
I nerd sniped myself and implemented sidemap layering and lighting for
cameras (also larger then 32x32 icon support for getflat)
The lighting isn't perfect, we don't handle things displaying in the
void all that well (I am convinced getflat blending is broken but I have
no debugger so I can't fix it properly), but it'll do.
This came up cause I had to fix another layering issue in cameras and
thought I might as well go all in.

## Why It's Good For The Game
Old:

New:

## Changelog
🆑
fix: Grass turfs will render properly now. Reworked how floors render,
please report any bugs!
fix: Cameras now properly capture lighting
fix: The layering seen in photos should better match the actual game
/🆑
This adds a tracker for sources of invisibility and a priority system. I
needed this for another thing so I'm doing this first since it touches a
lot of code. As for the bugs fixed in the changelog, it's only what I
noticed while going through everything and there's likely a few more
things fixed with this. This should be testmerged for a while, I'll
bring this out of draft when it feels safe.
🆑
admin: Invisimin can now be used on mobs that are already invisible,
whether through temporary or permanent effects.
fix: Monkeyize/Humanize mob transformations no longer permanently reveal
invisible mobs if they had effects making them invisible otherwise.
fix: Objects with the undertile element that have been made invisible
through other means are no longer revealed by being uncovered.
/🆑
## About The Pull Request
It was bugging me how catwalks would just be stuck rendering on the game
plane in order to be above the pipes and all the other underfloor
objects, because it meant that they stood out due to being affected by
ambient occlusion.
So I decided to change that, and the best change I could come up with,
was to refactor the logic of `/datum/element/undertile` in order to
actually allow us to do exactly what we wanted by having three different
states of underfloor visibility, which in turn allowed me to slap
everything that wasn't accessible on the floor plane rather than
whatever plane they were on, effectively making it so catwalk tiles
wouldn't need to be on the game plane anymore. :)
Also fixes https://github.com/tgstation/tgstation/issues/63590 while I'm
at it :)
## Why It's Good For The Game
Seeing ambient occlusion on catwalks make them stand out in a jarring
way, now that won't be the case anymore!
Now, instead, you get something like this, which _absolutely_ looks like
it fits in!

## Changelog
🆑 GoldenAlpharex
refactor: Refactored the way the undertile component works, to allow it
to have a bit more granularity as to when it's meant to be covered, but
still visible, like for catwalks!
fix: Catwalks no longer are affected by ambient occlusion, and now
properly feel like actual floor tiles.
/🆑
Makes the code compatible with 515.1594+
Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword
And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.
@tgstation/commit-access Since the .proc/stuff is pretty big change.
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This removes code/__DEFINES/misc.dm and moves all the defines to either:
another existing define file
new define file
local .dm file if the define was only used in one file
I also deleted defines that were not being used and added documentation to all of the ones that were moved out of misc.dm
Why was this needed? People were basically using the misc.dm file as a dumpster to toss all their defines into that was creating one giant mess. The defines have been organized into their proper groups and files now.
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm
We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.
There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.
Hi codeowners!
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.
Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.
This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.
To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.
Requested by @optimumtact.
Changelog
cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
* 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>
🆑
tweak: Ducts can now be hidden under tiles
code: tile hiding is now an element and way cooler and sexier
/🆑
Ducts can now be hidden under tiles
Plumbing machinery connects can now be hidden aswell
Plumbing can now also be properly mapped in without breaking anything
Plumbing component now uses the normal overlay systeem instead of being a weird exception
You can now add the /datum/element/undertile element to instantly make something hidable under tiles when appropriate.