Audits wash/cleaning signals + refactors wash() to ensure no needless mob updates occur (#91259)

## About The Pull Request

This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.

This PR

1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary

## Why It's Good For The Game

Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.

## Changelog

Nothing really player facing
This commit is contained in:
Bloop
2025-06-02 14:54:53 -04:00
committed by GitHub
parent 300087a3aa
commit 2bae025bfe
48 changed files with 156 additions and 79 deletions
@@ -137,8 +137,10 @@
/// When you are cleaned, wash off the buff
/datum/status_effect/stacking/brimdust_coating/proc/on_cleaned()
SIGNAL_HANDLER
owner.remove_status_effect(/datum/status_effect/stacking/brimdust_coating)
return COMPONENT_CLEANED
. = NONE
if(owner.remove_status_effect(/datum/status_effect/stacking/brimdust_coating))
. |= COMPONENT_CLEANED
/// When you take brute damage, schedule an explosion
/datum/status_effect/stacking/brimdust_coating/proc/on_take_damage(datum/source, damage, damagetype, ...)