mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-10 06:43:11 +01:00
0b2279d696
## About The Pull Request Turns overlay lighting into fake-weighted additive lighting, making it look similar to our current tile lighting.  <details> <summary>More pictures</summary>  This also allows overlay light colors to blend together nicely   </details> Additionally, flashlights can now be spray-painted as blobs of darkness will no longer be a major issue. Non-overlay sources of blobby darkness haven't been affected. ## Why It's Good For The Game Our current overlay lights kinda suck, and there's no way to control how much color they contribute to total lighting.  Also, when two light overlays meet, whichever one is positioned higher on the y axis (due to sidemap), or has been dropped last if they're positioned equally, would completely remove the other one, which looks really bad. ## Changelog 🆑 refactor: Refactored how overlay lights work - having one in your pocket will no longer color air around you into piss qol: Painted flashlights once again emit colored light. /🆑
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 its arguments with a SendSignal() call. Now every component that want's to can also know about this happening.