* Power Supply and Load Stuff (#2505)
# Description
Changes how `ApcPowerReceiverComponent` works a bit.
Separated the `Load` variable into main and side power loads.
If main power demand is not met, the machine is considered unpowered.
Side power demand is "optional", as can be met only partially (or not at
all) and the device will continue to operate.
Depending on the device, this may have different negative effects on its
operaton. such as lights dimming and weapon rechargers not charging at
full speed.
This was first intended to fix an annoying bug with `ChargerComponent`
and `ApcPowerReceiverBatteryComponent`, that made the powernet spaz out
for a while if their power demand was too high.
This is now fixed.
---
<details><summary><h1>Media</h1></summary>
<p>
<details><summary>Before (heavy flashing lights)</summary>
<p>
https://github.com/user-attachments/assets/de7fb84f-54d0-4c8a-ba9e-7a97e8489980
</p>
</details>
<details><summary>After</summary>
<p>
https://github.com/user-attachments/assets/9cece608-24f7-4ec9-95cd-0c719c7beddb
</p>
</details>
</p>
</details>
---
# Changelog
🆑
- fix: Chargers and energy turrets no longer make the lights flash
rapidly if their power draw is too high
- add: Lights dim if the powernet they're connected to is overloaded
* больно много жрёт
---------
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
* glowy lights - makes light fixtures actually physically glow when active
* serviced the lights
* ya sure
(cherry picked from commit 1a531342c5c8b2860054f79479b02c8083f3b5d0)
* refactor: Removes FlashLightVisualizer (based on obsolete code) in favor or merging its functionality with HandheldLightComponent
fix: Low power lighting radius animations for lanterns, floodlights and flashlights now properly restore the original light radius when going back to full power
* refactor: Use the LightBehaviour component to animate HandheldLights
refactor: Remove unneeded HandheldLight definitions in some yaml files (already inherited by parents)
fix: Properly change the server side PointLightComponent Enabled property when turning HandheldLights on/off
feat: ReverseWhenFinished property on Fade light behaviours
* Empty commit to rerun CI with the new engine PR
* fix: Restore the correct HandheldLight addPrefix property, whoops
* refactor: blinkingBehaviourID -> blinkingBehaviourId, radiatingBehaviourID -> radiatingBehaviourId
* Brrrr ECS
* Create lit on powered system
* Light bulb ECS
* Finishing porting to ECS
* Minor touches
* Removed events
* Removed old comments
* Fixed test
* To popup system
* PoweredLight uses PointLights for appearance
Previously this just set PointLightComponent data via the visualizer which lead to desyncs in the data between client and server. If the server pointlight was dirtied at any point then the pointlight data set via appearance visualizers was bulldozed.
* Address review
* Moved ghost boo to ecs
* Fixed small light exception
* No need to inject EM
* Moved cooldown and time to fields
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>