Commit Graph

13 Commits

Author SHA1 Message Date
Leland Kemble 8f8bfb22ef Allows head-equippable items that are not /obj/item/clothing to be attached to /datum/component/hat_stabilizer (#93345)
<!-- 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. -->
2025-10-11 00:16:35 +02:00
SmArtKar d503292c8a Fixes hat stabilizer overlays rendering behind hats (#90407)
<!-- 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. -->
2025-04-05 19:43:22 +02:00
Waterpig d3d3a12540 The big fix for pixel_x and pixel_y use cases. (#90124)
## 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>
2025-03-28 14:18:45 +00:00
SmArtKar 431bf75d53 Color Code Audition: Human rendering hates me (#89702)
## 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 #88989
Closes #87526
Closes #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.
/🆑
2025-03-24 15:05:33 +01:00
Waterpig b787c37088 Fixes some layering issues because pixel_x, pixel_y needs to be changed pixel_w, pixel_z for some overlays (#90020)
## About The Pull Request

Fixes the Afro (Huge) layering wrong with your head over it.

Fixes plasmeme hats

![image](https://github.com/user-attachments/assets/69d76532-a5df-4fb7-82c2-66d7600bebb7)

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

![image](https://github.com/user-attachments/assets/b8e9ca45-aa5a-4c21-b022-34330f283346)

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>
2025-03-16 18:14:42 +01:00
SmArtKar 1f064fc7e6 Fixes hat stabilizers not detaching clothing traits (#89797)
## 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.
/🆑
2025-03-07 19:22:29 -08:00
MrMelbert 4f870bd639 Fix wig hat color shenanigans (#89834)
## About The Pull Request

Fixes #89832

Reset color moment

## Changelog

🆑 Melbert
fix: Wigs no longer color their hats
/🆑
2025-03-06 19:26:33 +01:00
carlarctg f198a55364 Added 'loose hat' functionality to the hat stabilizing component, used in modsuist (#88030)
## 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
2024-11-29 01:28:09 +01:00
Tim 62f0dcf25f Add screentips to hat stabilizer component (#87845)
## 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>
2024-11-12 17:18:04 +01:00
SmArtKar 2e19e1fedc [NO GBP] Fixes hat stabilizer ignoring clothing worn_y_offset (#87851)
## About The Pull Request

Closes #87487

![image](https://github.com/user-attachments/assets/d7b501e2-b026-4254-bbd5-919a3e18259b)

## Changelog
🆑
fix: Fixed hat stabilizer ignoring clothing worn_y_offset
/🆑
2024-11-12 17:12:57 +01:00
SmArtKar a633cde1ef [NO GBP] Fixes deathsquad commandos not getting their berets (#87494)
## 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
/🆑
2024-10-27 18:36:04 +01:00
SmArtKar 273b428ee9 [NO GBP] Fixes hat stabilizer component not cancelling the attack chain (#87455)
## About The Pull Request

Copypasta moment

## Changelog
🆑
fix: Fixed hat stabilizer component not cancelling the attack chain
/🆑
2024-10-26 13:37:56 +02:00
SmArtKar 592353088e Refactors hat stabilizers into a component shared with plasmamen helmets (#87305)
## 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>
2024-10-23 20:32:01 +02:00