mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-06 04:43:10 +01:00
199c250975
## About The Pull Request Gym equipment are currently ported from Goon code, and I didn't like how it currently worked as it was buggy and the code was a mess. I decided to just rework how they worked entirely. I left the parts that weren't Goon code (like tooltips & deconstruction) alone because it's not goon code and I think it's fine that way. - Now you buckle yourself to it (like a chair, I didn't like how it didn't work like one) and can work out with an action button you get on buckle, you can do as many sets as you want, then unbuckle & go. - You aren't hardstunned for 8 seconds for clicking on it anymore, you aren't flying around because the stun doesn't even last the duration of the animation anymore. Video demonstration https://github.com/tgstation/tgstation/assets/53777086/f5ae86f1-65fb-46c6-8a5f-8f9d9f0548b3 ## Why It's Good For The Game Reworks old code Removes un-documented Goon code Makes gym equipment less broken than it currently is. ## Changelog 🆑 qol: Gym equipment was reworked. You now buckle yourself to weight machines to use them, rather than clicking on it and getting stunned for a few seconds. It also means it works like a chair now. qol: Gym equipment no longer breaks a sweat in no gravity. /🆑 --------- Co-authored-by: san7890 <the@san7890.com>
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.