mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-31 01:36:51 +01:00
483674ac59
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
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.