Files
Bubberstation/code/datums/components
Lufferly df7f509185 Fixes crafting using tool implants eating the implant if the tool is part of the crafting recipe (#75813)
## About The Pull Request

Fixes an issue where crafting something that uses a tool as a part of
its recipe using an integrated arm implant would delete the cyborg tool
from the implant. Technically the flamethrower was not eating the
implant, but it was doing other weird stuff. The tools can still be used
if they are part of the needed tools to put together the item.

fixes: #74081

## Why It's Good For The Game

We don't want players losing their tool implants from crafting an item.

## Changelog

🆑 Seven
fix: Crafting recipes will not eat your implanted toolset if the recipe
calls for a tool
/🆑
2023-06-07 06:17:37 +00:00
..
2023-05-07 23:52:03 -07:00
2023-05-15 04:27:43 +00:00
2023-05-21 21:37:10 -06:00
2023-04-05 16:54:22 +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