Files
Bubberstation/code/datums/components
Jordan Brown bed37b7bb2 Fixes Intellitater crafting deleting AIs (#48451)
* Adds safety requirement checking to crafting

/datum/crafting_recipe now has check_requirements() which will be called once item instances that will be used are collected. If this fails, the crafting will be aborted.

* Prevent populated AI cards from use in crafting.

- Overrides check_requirements for the aitater crafting_recipe, failing it if there is an AI present in the candidate card.
2019-12-29 13:20:45 -05:00
..
2019-06-19 22:07:57 +02:00
2019-09-22 03:03:45 -07:00
2019-06-19 22:07:57 +02:00
2019-10-27 16:30:30 -04:00
2019-06-19 22:07:57 +02:00
2019-10-09 01:50:16 -07:00
2019-10-24 18:21:42 -07:00
2019-06-19 22:07:57 +02:00
2019-12-10 20:52:13 +13:00
2019-08-21 11:50:38 +12:00
2019-10-05 13:40:40 -04:00
2019-10-13 16:46:25 +13:00
2019-10-13 14:36:43 +03:00
2019-08-03 22:19:03 -07:00
2019-12-10 20:52:13 +13: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