Files
Bubberstation/code/datums/components
SkyratBot 9403181c02 [MIRROR] fixes cleaning animation disappearing if you clean something that's already being cleaned [MDB IGNORE] (#17944)
* fixes cleaning animation disappearing if you clean something that's already being cleaned (#71673)

## About The Pull Request
1: Start cleaning something.
2: Clean the same thing again before the original cleaning manages to
finish. This removes the cleaning bubbles animation early, before the
actual cleaning is done. You can also spam the start cleaning message
with this.

The cleaning overlay is removed after the do_after that makes you wait
the time it takes to clean. When you're already waiting and you clean it
a second time the do_after returns instantly and removes the overlay
while the first one is still waiting.

But it seems that we don't even need to bother with any of that code if
we're already cleaning the thing, so we can just return early and
prevent the issue.
## Why It's Good For The Game
Fixes a graphical bug.
## Changelog
🆑
fix: trying to clean something while it's already being cleaned will no
longer prematurely remove the cleaning animation
/🆑

* fixes cleaning animation disappearing if you clean something that's already being cleaned

Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
2022-12-09 03:54:56 +00:00
..
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00
2022-11-15 06:59:06 +00:00

Datum Component System (DCS)

Concept

Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a SendSignal() call. Now every component that want's to can also know about this happening.

HackMD page for an introduction to the system as a whole.

See/Define signals and their arguments in __DEFINES\components.dm