Files
Bubberstation/code/datums/components
ChungusGamer666 3ec8bd669e Food gets stink lines when about to go rotten (#76038)
## About The Pull Request

Title says it all, food that decomposes gets stink lines halfway
through.

![image](https://github.com/tgstation/tgstation/assets/82850673/ae90220c-4b27-49dd-873a-6f349055f891)

![image](https://github.com/tgstation/tgstation/assets/82850673/c982055d-ed69-4935-bda5-7851836fad2c)

Moldy messes always gets stink lines.

## Why It's Good For The Game

1. It's funny
2. It's a visual indicator for food going bad which is kinda nice

## Changelog

🆑
add: Food now gets stink lines when going bad. Uh oh, stinky.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-06-18 18:29:29 -06:00
..
2023-05-07 23:52:03 -07:00
2023-06-14 19:32:08 -07:00
2023-06-18 08:14:05 -04:00
2023-05-21 21:37:10 -06: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