Files
Bubberstation/code/datums/components
SkyratBot 21907289f2 [MIRROR] Reworks the brand intelligence event with AI controller datums (#2545)
* Reworks the brand intelligence event with AI controller datums (#55778)

These felt like another good test-case for ai controllers that someone could easily grasp, this makes it so that we can use the actual vending machine instead of a fake mimic mob. In theory you could even still use the vending machine, if you like living on the edge ofcourse.

The vendors now try to move towards you, and try to dive on top of you to squish you.

* Reworks the brand intelligence event with AI controller datums

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2021-01-07 23:17:16 +01:00
..
2020-12-31 01:41:23 +00:00
2020-09-07 03:52:59 +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 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