Files
Aurora.3/code/datums/components
lew 483674ac59 Animates the disappearance of the lower half of the body when north-side leaning (#22568)
fixes #22249 

- bugfix: "Leaning on the north side of a wall now correctly hides your
lower body behind the wall instead of drawing you on top of it."
- code_imp: "Adds a COMSIG_MOB_LYING_DOWN signal, sent when a mob
transitions into lying down."

Cutout was previously only cutting out the base because KEEP_TOGETHER
wasn't being applied. Adds the flag on lean, removes it on stop_lean.

Animated the cutout while here. Applies a mask to the whole sprite, then
animates it upwards in step with the lean itself, so the feet
progressively disappear as they should.


https://github.com/user-attachments/assets/fec0a852-247a-4570-a6d1-60dda6fe6a3c
2026-06-01 00:10:15 +00:00
..
2026-05-21 15:01:06 +00:00
2026-05-27 15:38:57 +00:00
2026-05-29 20:37:57 +00:00
2026-05-15 16:49:58 +00:00
2026-04-11 14:24:24 +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 it's arguments with a SendSignal() call. Now every component that want's to can also know about this happening.

See this thread for an introduction to the system as a whole.

See/Define signals and their arguments in __DEFINES\components.dm