Files
Bubberstation/code/datums/components
SkyratBot ccf837ef8a [MIRROR] Makes the edible component not runtime due to connect_loc_behalf when applied to turfs [MDB IGNORE] (#9877)
* Makes the edible component not runtime due to connect_loc_behalf when applied to turfs (#63232)

This makes it so it stops trying to use connect_loc_behalf if the parent of the edible component is a turf, just registering the signal normally instead, which should hopefully be the same functionality.

Runtimes are bad, and even if there's not really any relevant use of that proc in most cases, this is to future-proof things anyway.

* Makes the edible component not runtime due to connect_loc_behalf when applied to turfs

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-12-05 09:59:33 -05:00
..
2021-09-25 04:17:06 +01:00
2021-06-09 10:44:59 +12:00
2021-09-30 19:54:11 -04:00
2021-03-07 02:29:00 +00:00
2021-09-19 22:24:40 +01: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