Files
Bubberstation/code/datums/components
SmArtKar 5a7da7aeb8 Converts plasmaman limbs to bodypart effects instead of components (#91639)
## About The Pull Request

Removes self_ignition component and replaces it with a more performant
and cleaner bodypart effect system.
Additionally, fixes two issues where plasmamen would sometimes still be
set on fire/be affected by fire damage even when sealed, and where they
could have exposed hands but not get set ablaze.

- Closes #89277

## Why It's Good For The Game

self_ignition component is per-limb and thus causes plasmamen to tick
six times as much going through all of their equipment. This is plain
better.

## Changelog
🆑
fix: Plasmamen no longer should get perpetually stuck ablaze in rare
edge case scenarios
fix: Plasmamen need to wear gloves once again
code: Updated plasmamen limb tracking/effects to be more performant
/🆑
2025-06-15 09:57:27 +02:00
..
2024-10-09 02:03:50 +02:00
2025-05-12 20:37:17 -07:00
2025-06-08 14:41:18 +00:00
2025-04-05 22:27:05 +02:00
2025-02-22 13:24:53 +00:00
2025-01-22 20:50:07 -07:00
2025-01-28 03:12:59 +01: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