Files
Bubberstation/code/datums/components
SmArtKar c06f2f9352 [NO GBP] Makes MODtethers quicker to cut, adds a rapid cut action to MODsuits and some examine hints (#86984)
## About The Pull Request
Tethers will now take only 1 second to cut, tether anchors have a line
about how to lengthen/shorten and cut tethers, and MODsuit tether module
now can quickly snap all tethers attached to you in case of an
emergency.

I'm not a fan of MOD tether quick cutting code but its the best we can
do to avoid GetComponent usage.

## Why It's Good For The Game
Tethers aren't very comfortable to use and a lot of people get confused
and stuck with them, this should help a ton.

## Changelog
🆑
qol: Added an explanation of how to change tether length and cut them to
tether anchors
qol: MODsuits can now quickly snap all tethers attached to you
balance: Tethers can now be cut significantly quicker
/🆑
2024-10-04 01:29:24 +02:00
..
2023-10-16 16:14:31 +02:00
2024-08-21 17:07:02 +12:00
2023-10-11 16:58:29 -06:00
2024-05-16 19:54:00 -07:00
2024-08-15 01:28:21 +01:00
2024-05-16 19:54:00 -07:00
2024-06-13 13:29:45 -07:00
2024-05-16 19:54:00 -07:00
2023-10-21 23:36:48 +00:00
2023-10-08 03:04:35 +01:00
2024-08-23 21:49:46 +02:00
2024-08-21 17:07:02 +12:00
2023-10-05 13:20:16 -06:00
2024-03-27 16:49:46 -06:00
2024-07-15 16:28:41 +01:00
2024-05-16 19:54:00 -07:00
2024-08-02 23:12:35 +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 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