<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
the `/datum/component/hat_stabilizer` component, which is the thing on
the magnate MODsuit(and apparently on other spacesuits(and wigs)) that
allows you to attach an additional piece of headwear on top of the helm,
was `istype()`ed to only allowing `/obj/item/clothing`. This prevented
many non- `/clothing` items from being attached, despite being
equippable to the head, the only one of which I care about being
flowers.
This pr changes the `istype()` check to checking for the head slot flag,
and modifies surrounding logic to account for this. The only items I can
think of that are non-clothing and are equippable to the head are
various flowers and `mob_holder`s for various animals.
Also fixes an unrelated bug where updating the appearance of the holding
item would change the offset of any loose-hat holders over and over
again, causing it to move around over your head if you, for example,
toggled a MOD flashlight on and off repeatedly.
Also fixes an unrelated bug where the hat taken off would never be put
in your hands when it was seemingly intended to, due to always returning
the hat rather than `put_in_active_hand()` (unless the parent isn't
clothing, but there's no non-clothing items with the component attached)
## Why It's Good For The Game
I want to put flowers on my helmet, and I don't see any possible
negative ramifications.
## Changelog
🆑
qol: Flowers can now be attached to space helmets.
qol: Taking hats off of helmets will now put them in your hand.
fix: MOD flashlights won't move hats on them when toggling.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Because we didn't pass layer into sub-overlays they ended up layering
ontop of other sub-overlays. This didn't break main layering because
BYOND's overlay rendering is actually acting like an ordered tree when
layered overlays are concerned, and blood decals (other user of separate
overlays) also used FLOAT_LAYER (-1).
And hat stabilizers also just assigned an absolute value to theirs,
which also made them not work properly.
Closes#90388
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
fix: Fixed hat stabilizer overlays rendering behind hats
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
## About The Pull Request
516 requires float layered overlays to be using pixel_w and pixel_z
instead of pixel_x and pixel_y respectively, unless we want
visual/layering errors. This makes sense, as w,z are for visual effects
only. Sadly seems we were not entirely consistent in this, and many
things seem to have been using x,y incorrectly.
This hopefully fixes that, and thus also fixes layering issues. Complete
1:1 compatibility not guaranteed.
I did the lazy way suggested to me by SmArtKar to speed it up (Runtiming
inside apply_overlays), and this is still included in the PR to flash
out possible issues in a TM (Plus I will need someone to grep the
runtimes for me after the TM period to make sure nothing was missed).
After this is done I'll remove all these extra checks.
Lints will probably be failing for a bit, got to wait for [this
update](https://github.com/SpaceManiac/SpacemanDMM/commit/4b77cd487d0a7b6a069df20356b701af5b20489d)
to them to make it into release. Or just unlint the lines, though that's
probably gonna produce code debt
## Why It's Good For The Game
Fixes this massive 516 mess, hopefully.
closes#90281
## Changelog
🆑
refactor: Changed many of our use cases for pixel_x and pixel_y
correctly into pixel_w and pixel_z, fixing layering issues in the
process.
/🆑
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: SmArtKar <master.of.bagets@gmail.com>
## About The Pull Request
This trainwreck of a PR is (hopefully) a final solution to all rendering
jank stemming from the new filter-based coloring system. I went over
every single instance of RESET_COLOR, either adding KEEP_APART or
rewriting them entirely so they render properly. I've also fixed blood
rendering issues by utilizing alpha filters and adding an abstract
"holder" appearance for worn items, which holds blood overlays on worn
clothing as to avoid coloring it. I've also fixed horrible
inconsistencies with atmos pipe coloring as a result (of getting sucked
down that rabbit hole) and converted all uses of COLOR_VERY_LIGHT_GRAY
in atmos code to ATMOS_COLOR_OMNI to avoid confusion.
MODsuit modules still get colored into MOD unit's color, need to
refactor their rendering for this.
Closes#88989Closes#87526Closes#89837
## Changelog
🆑
refactor: Audited all remaining coloring code - among noticeable
changes, blood should no longer get colored or "leak out" of item
bounds, atmos pipes no longer color weirdly and repairbots are white
again.
/🆑
## About The Pull Request
Fixes the Afro (Huge) layering wrong with your head over it.
Fixes plasmeme hats

Fixes borg hats, and presumably most potential worn icon issues.

Also I did go through use cases for build_worn_icon. All of them seem to
use float layering (That meaning, negative layers), which is what we're
trying to fix. There might be edge cases for this, but I didn't
encounter any.
Ill do an actual full parse through the pixel_x and pixel_y uses once I
get home in a separate PR, these are the biggest issues I know of yet.
## Why It's Good For The Game
fixes#89889
## Changelog
🆑
fix: Afro (Huge) layers correctly now
fix: Plasmaman helmet hats layer correctly now, as does everything else
with the hat stabilizer component
fix: Cyborg hats should now layer correctly, among other worn items
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Closes#89782
## Changelog
🆑
fix: Fixed hat stabilizers not detaching clothing traits, turning any
helmet with a pacifism bud attached into one.
/🆑
## About The Pull Request
You can now wear a hat on any modsuit, even w/o the stabilizing module.
However:
- It will always sit slightly askew, at an angle.
- Involuntarily falling to the ground for any reason will cause the hat
to fall to the ground.
- Being thrown, slapped, or slipped will send it flying off.
Added the Atrocinator, Hat Stabilizer, and Tanning modules to the black
market.
Added the loose hat component to bio/bomb/rad hoods and space helmets.
## Why It's Good For The Game
> You can now wear a hat on any modsuit, even w/o the stabilizing
module.
I think the notion of, say, the Head of Security putting his cap on his
modsuit and then being slipped by the clown, who then steals the cap, is
really funny.
https://github.com/user-attachments/assets/3ad8a74d-0cb8-4118-8beb-d2ce9c76b358
The module is fairly rare and sometimes I just want to wear a silly hat
alongside the modsuit without badgering the captain for his hat module.
The downsides are rather plentiful so it's not like the hat module is
made irrelevant - if anything it makes it more notable.
This will add a bunch of enjoyable silliness to rounds, so I think it's
worth it.
> Added the Atrocinator, Hat Stabilizer, and Tanning modules to the
black market.
> Added the loose hat component to bio/bomb/rad hoods and space helmets.
It sucks losing your iconic drip when you need to venture out to space
for whichever reason - this lets you keep it without taking up space in
your bag, while having the throw downside.
They just feel perfect for the vibes of the black market. More
miscellaneous completely useless fancy stuff that has exorbitant prices
please!
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: You can now wear a hat on any modsuit, even w/o the stabilizing
module. But it may easily fall off...
add: Added the Atrocinator, Hat Stabilizer, and Tanning modules to the
black market.
add: Added the loose hat component to bio/bomb/rad hoods and space
helmets.
/🆑
~~I'm having a bit of an issue. Somewhere I fugged up and now the worn
overlay on the mod helmet sprite doesn't work properly...~~ Turns out
that code was never used and nonfunctional to begin with so I removed it
entirely yay
## About The Pull Request
Initially this was added in:
- #87285
And then removed in:
- #87305
Not sure if @SmArtKar was aware that screentips can be added to
components.
## Why It's Good For The Game
Consistency.
## Changelog
🆑
fix: Fix missing screentips plasmaman helmets and MOD suit hat
stabilizer helmets.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Outfit was directly assigning the attached hat and i forgor to remove
the var which is how it compiled in the first place
## Changelog
🆑
fix: Fixed deathsquad commandos not getting their berets
/🆑
## About The Pull Request
Hat stabilization is now a component shared between MODsuits and
plasmaman helmets, only change this results in is attached helmets
applying their visor flags to plasmaman helmets (like it was with
MODsuits), but that should not have any impact envirohelms already cover
your face
## Why It's Good For The Game
Less copypasted code and maybe some day we can get hat stands.
## Changelog
🆑
refactor: Refactored hat stabilizers into a component shared with
plasmaman helmets
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>