Files
Bubberstation/code/datums/components
Ghom 38f65b2c14 Burned mess from culinary disasters is once again toxic. (#92394)
## About The Pull Request
When an item is cooked, reagents are generally cleared from the
resulting object and the reagents of the source object are transferred
to it instead. This means burned mess won't have its toxins when cooked,
locking you out of one or two chemistry recipes that require it while
also making the item generally not toxic at all.
So to fix it, we simply have to replace all or most of the consumable
reagents inside the burned mess with bad food, via component signals.

## Why It's Good For The Game
Fixing an issue with food and chemistry.

## Changelog

🆑
fix: burned mess made with a microwave, oven or griddle once again
toxins.
/🆑

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2025-08-11 20:30:47 +02:00
..
2025-05-12 20:37:17 -07:00
2025-04-05 22:27:05 +02:00
2025-02-22 13:24:53 +00:00
2025-07-11 07:21:02 +00:00
2025-05-08 07:26:01 +02: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