Files
Bubberstation/code/datums/components
MrMelbert 4b77c6f7c0 Decouples "Is this affected by a mop" from layer var (#88465)
## About The Pull Request

Rather than checking for object layer if we can clean something, has a
trait which accomplishes this

This better allows us to pick and choose what objects we want to clean
when mopping

Note: I didn't apply the trait to everything it previously affected
Currently, it cleans stuff like pipes and plumbing, which I deemed not
necessary to carry over since they can't get dirty anyways
I can re-add this if desired though

Fixes #88445
Fixes #88150

## Changelog

🆑 Melbert
fix: Gibs get bulk cleaned if you clean the turf again
refactor: Changed how things determine "I can be bulk cleaned if I clean
the turf underneath me", let me know if you notice anything not getting
bulk cleaned or weird things getting bulk cleaned
/🆑
2024-12-18 00:50:08 +01:00
..
2023-10-16 16:14:31 +02:00
2024-05-16 19:54:00 -07:00
2024-10-09 02:03:50 +02:00
2024-08-15 01:28:21 +01:00
2024-05-16 19:54:00 -07:00
2024-05-16 19:54:00 -07:00
2023-10-08 03:04:35 +01:00
2024-12-14 00:13:12 +01:00
2024-08-21 17:07:02 +12:00
2023-10-05 13:20:16 -06:00
2024-07-15 16:28:41 +01:00
2024-10-09 02:03:50 +02:00
2024-10-07 13:34:36 +02:00
2024-05-16 19:54:00 -07: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 its 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