* update_icon() improvements
Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().
The rest of obj/item fuck it
* Suggested fixes, also passes the linter
* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON
* Actually this is better
* Signilzes datum/action to update its icon when its connected item does.
* Adds a new element, Self-Knockback.
* Squashes a potential edgecase runtime in projectile_selfknockback before it can even happen.
* Allows item_selfknockback to interact with dense turfs now.
* Made self-knockback utilize the Element Bespoke flag to allow custom force and speed values on attachment.
* fixes newline issue, adds a usage comment.
* fixes the newline issue in self-knockback for real this time, thanks TortoiseGit.
* i swear on god almighty if this doesn't fix the newline issue, i'll eat a shoe.
* Testing newline lint
* BSA beam delams the SM via a new signal
Adds a BSA beam blocker element that blocks bluespace artillery beams. SM and singulo have it.
* Shut up Travis
* Destroy the singularity when it's BSA'd
* No shooting nar-nar with BSA
* Removed an incorrect and unhelpful comment
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)
this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.
also applies materials to everything, with fixes, which can close#46299
* Turns digital camo into an element
* Removes commented out code.
* Keep forgetting this
* Update code/datums/elements/digitalcamo.dm
Co-Authored-By: Rob Bailey <actioninja@gmail.com>
If you came here thinking this was some game feature then you are in the wrong place. Here is where I ramble about code.
This adds /datum/element as a sort of sibling to components. Only one of each type gets instanced and they do not get tied directly to any particular thing like a component does. Basically they're a very lightweight component for doing simple functionality that doesn't have much state.
Originally this concept came about as a kind of component that could be shared between many parents to reduce some resource costs. Doing this would allow us to componentize more behaviors that are a part of too many things to be viable to have a whole component for every single one. For example a component on every space turf would be entirely unviable. With elements it's much more reasonable.
This implements a prety bare framework and a couple components are migrated to it. It's ready to be used but I fully expect I'm going to need to refine how it works for all the usecases we'll want it for.
Also: this fixes the qdeleted signal. This signal isn't even possible because after qdel is done there's nothing to receive a signal anyway. I've changed it to a qdeling signal instead. I need it to work for some elements to know when to clean themselves up.