Files
Bubberstation/code/datums/components
GhomandGitHub 2bb7e05c16 You no longer need to reach the very edge of the game screen to reach the maximum zoom range when scoped (#84544)
## About The Pull Request
This PR multiplies, by 1.1, and caps the x and y offset coords of the
zoom cursor catcher to make it humanly beareable to reach the maximum
zoom range without slipping the cursor out of the game screen.

## Why It's Good For The Game
The scope component is nice but it can be annoying at times.

## Changelog

🆑
qol: You no longer need to reach the very edge of the game screen to
reach the maximum zoom range when scoped.
/🆑
2024-07-03 11:42:25 -04:00
..
2023-10-16 16:14:31 +02:00
2024-04-09 03:21:51 -05:00
2023-10-11 16:58:29 -06:00
2024-05-16 19:54:00 -07:00
2024-02-11 03:17:55 +01:00
2024-06-05 10:17:34 -04:00
2023-12-04 14:42:43 -08:00
2024-05-16 19:54:00 -07:00
2024-06-13 13:29:45 -07:00
2024-04-20 01:39:50 -06:00
2024-04-16 17:48:03 -06:00
2024-05-16 19:54:00 -07:00
2024-05-16 19:54:00 -07:00
2023-10-21 23:36:48 +00:00
2023-10-08 03:04:35 +01:00
2023-12-04 14:42:43 -08:00
2024-03-29 22:26:35 -06:00
2023-10-05 13:20:16 -06:00
2024-03-27 16:49:46 -06:00
2024-03-21 20:30:56 -06:00
2023-08-14 12:39:30 -06:00
2024-05-16 19:54:00 -07: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