Files
Bubberstation/code/datums/components
3223d2a3fb Lemon fixes ci (#79384)
## About The Pull Request

Sets up moveloops to better catch issues with duplicated loops

Letting people modify the timer var AND have it track what bucket we're
in was a bad idea.
So instead let's store the queued time separate. Also makes
allowed_to_move return true/false instead of flags

This fixed? the null loop issue locally, I honestly have no damn idea
why. I'm gonna be working on the rest of ci here, left trackers so if it
pops up between now and merge I'll know what the issue is.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-11-12 09:25:59 +00:00
..
2023-10-16 16:14:31 +02:00
2023-09-19 19:07:51 +00:00
2023-10-11 16:58:29 -06:00
2023-11-12 09:25:59 +00:00
2023-10-21 23:36:48 +00:00
2023-10-08 03:04:35 +01:00
2023-08-16 13:04:41 -06:00
2023-10-05 13:20:16 -06:00
2023-11-12 09:25:59 +00:00
2023-11-03 22:39:33 +00:00
2023-10-16 16:14:31 +02:00
2023-08-14 12:39:30 -06:00
2023-10-14 15:53:28 -07:00
2023-09-07 20:25:52 +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