* Fix Welding Tool Not Updating
- Added in the ISolutionChange interface so that it dirties the entity any time the amount of welding fuel changes. This applies whether it's lit or unlit.
- I also removed some redundant code.
* Update Content.Server/GameObjects/Components/Interactable/WelderComponent.cs
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* Flash component, overlay and shader
Add BeginDraw method to Overlay.cs
* Add flash icons, sounds
* Progress
* Multiple overlays without enums
* This is probably the worst way to do this IDK
* Remove nullable reference type
* Add AttackEventArgs as parameter to OnHitEntities
MeleeWeaponComponent.Attack now continues when OnHitEntities returns true (it hit something)
Add OverlayType enum so client and server can agree on overlay ids
Move IConfigurable to its own file
Add AoE flash with shorter duration
Flashing someone slows them down
* Add arc to flash
Set item size to something reasonable
Remove chat log message when flash burns out
* Remove unused interface
* Remove Unnecessary AnchorUpdate() call
* NodeGroupManager
* NodeGroupManager issues NodeGroup remake attempts
* Code cleanup
* NodeGroupManager only stores dirty groups, handles them on next frame
* Removes unused NodeGroupManager dependency
* Prevents OnRemoveNode from iterating over every connector after the first time
* Revert "Prevents OnRemoveNode from iterating over every connector after the first time"
This reverts commit c72af4b18d55192af789514f74bef893cf076fbc.
* Dependancy warning fix
Co-authored-by: py01 <pyronetics01@gmail.com>
* ConstructionSystem now detects when a tool is used on an arbitrary entity.
* Refactored building logic from ConstructionComponent to ConstructionSystem.
* Add OnDeconstruct events so that deconstruction can be blocked if prerequisites are not met.
* Multi-step deconstruction works.
Windows can be deconstructed using a screwdriver.
* In-hand construction and deconstruction works.
* Intermediate entities now have a better name assigned to them when created.
* Removed a question mark to appease Jenkins.
* Instead of running ExposeData on the existing ItemComponent of an intermediateFrame, the system will now replace the existing ItemComponent with a new one, and run ExposeData on the new one.