* Predict some power PowerReceiver stuff
Need it for some atmos device prediction.
* Also this
(cherry picked from commit 75a7407e33f328c230ad7309b0d1571a4f7f8256)
A lot of BUIs aren't going to handle the state coming in cleanly but we can fix em as we find em.
(cherry picked from commit e4a5f2a1450d226bf281e46f1323f41213707bb6)
* 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>
* Use class instead of out variables
* Show battery level in power monitoring console
* Better color contrast for battery level + localized string
* Add visualization to battery percentage
* Reverts random ChatSystem.cs whitespace change
* Address review
* Show BatteryLevel stats in child view when selecting devices
---------
Co-authored-by: Crotalus <crotalus@users.noreply.github.com>
(cherry picked from commit 9de569d9730c0a6453caa07955a9cd9c7c030e9a)
* First clumsy implementation of guidebook protodata
* Support for Properties, format strings
* Better null
* Rename file
* Documentation and some cleanup
* Handle errors better
* Added note about client-side components
* A couple of examples
* DataFields
* Use attributes like a sane person
* Outdated doc
* string.Empty
* No IComponent?
* No casting
* Use EntityManager.ComponentFactory
* Use FrozenDictionary
* Cache tagged component fields
* Iterate components and check if they're tagged
(cherry picked from commit 320135347ffc01f078a89b10322d7952e3af92e4)
* Fixup playerspawn stuff
- Also removed arrivals forcing, this should just turn containerspawnpoint off.
* fix this one
* test fix
* really fix
(cherry picked from commit 1a6bd6f3f14ef1446801c90a3b78c84ab0398eb2)
* ItemToggle + slots stuff
- Add component for itemslot locks to match LockComponent (surprised this didn't exist).
- Add thing for pointlight to match itemtoggle. In future should be used for PDAs and stuff but need to fix some other stuff first.
* Also this
* grill
(cherry picked from commit d6b0b997c0b89a17409782198f80dc9cd95897e1)
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17985876d6d112b764b2144964a9f42e)
* added signal control to portable generators
* added documentation
* Discard changes to Content.Server/Radio/EntitySystems/HeadsetSystem.cs
* added DeviceNetworkComponent and WirelessNetworkConnectionComponent to generator prototype
* made GeneratorSignalControlComponent nicer
* implemented auto-revving
* added back necessary dependency
* can't send do-after event manually
* repeat now works with auto revving
* fixed
* removed vv
* stopping generating when it is revving now makes it stop revving
* Update Content.Shared/Power/Generator/ActiveGeneratorRevvingComponent.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* used resolve instead of TryComp
---------
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit 5d2ddc0d8b313d80fbcecd6719c5048ec2aea3e7)
* PACMAN generators show network load/supply.
This gives more feedback to players that their PACMAN is properly connected and what the network status is (i.e. you don't have enough generators).
* Buff JRPACMAN to 8 kW.
Shifted all power values up by +3 kW.
They're frequently too weak to power even single rooms so they deserve a buff.
* Change unit format helpers number format.
Always displays one digit of precision. This avoids jumping around when a value is changing live.
(cherry picked from commit f855cb2b0065083447128778c31c2a93bcd70a6a)
* upload all textures
finished easiest part - TeslaGenerator
* Added Tesla energy logic
* add lightning pulse priority
* work
* optimise lightning arc system
* now tesla moving to LightningTarget entity and consume it
* some audio work
add airlock and computers to the LightningTarget
* add nice visual and explosions
add crashing to game
* rsi meta fix
* disabling explosions (crashing server)
I'll get back to that problem later.
* adding important admin logging
* a little bit of cleaning and documentation
* Persistent attempts to fix the server crashing on explosions. Accidental cleaning of everything I see.
* now the tesla incinerates everything it touches except the containment field.
* colliders work
* fix falling tesla on ground after being exploded
* add consume sound, add spawn and collapses sound
* added TeslaGenerator to cargo trading console
* add all tesla part to cargo trading console
* Tesla coils: Turn on and off, get energy from lightning, give energy to the grid.
* tesla coil is ready
* tesla grounding rod is ready
* clean up
* clean up 2
* grounding rods now working without power
* add LightningResistance parameter for LightningTarget Component
* add chaotic teleport
* eletrocution remove?
* deltanedas fix pack
* more fixes
* FIXES
* FIIIXEEES
* The "Grounding Rod" component is removed, and replaced with "LightiningSparking", which is responsible for changing the visuals when hit by lightning. Duplicate code from the coil is removed.
* ops
* fix
* nah, is escaped anyway
* increase tesla collider size
* keron bb
* try fix test?
* fix
* bruh
* check turn off sus comp
* prototype cleaning
* FIIX
* return and fix sus component
* fix tesla eating lightnings, now mini tesla is electrocuted
* commented some issues
* remove linq sorting
fix jumping system
minor fixes
* fix second Linq
* fix tesla colliders! Yeah, it works
* fix componentregistration
* Just retests
* not fix
* FIX TESLA
* fixes
* store targets
* back
* make dictionary of hashsets
* some sloth fixes
* stump
* playtest balance energy generation, return to unpotimized (but working) lightning shoot
* parity
* work on
* some new fix, some new bug (chasingComponent not chasing)
* comment
* fix ChasingWalkSystem
* fix collider tesla problem
* revert old unoptimized shoot lightning
* new fix pack
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 88d7cfb4c035a5a5c2c3e7fc643b9a0d4ad18f5f)
* Prototyping whole station wire map
* More prototyping
* Added icons for the different power distributors and toggleable cable displays
* Power cable layouts are now only sent to the client when the power monitor is open
* UI prototyping
* Power monitors can now see the sprites of distant entities, long entity names are truncated
* Updated how network devices are added to the player's PVS
* More feature prototypes
* Added source / load symbols
* Final prototype! Time to actually code it properly...
* Start of code clean up
* Continuing code clean up
* Fixed UI appearance
* Code clean up complete
* Removed unnecessary changes
* Updated how power values are calculated, added UI warnings for power sinks and power net checks
* Updated how power values are calculated again, added support for portable generators
* Removed unnecessary files
* Map beacons start toggled off, console map now works outside the station, fixed substation icon
* Made some of Sloth's requested changes. Power distributors don't blink anymore, unless selected
* Moved a number of static variables in PowerMonitoringHelper to sensible places in the main files. Added a NavMapTrackableComponent so that you can specify how individual entities appear on the navmap
* Updated the colors/positions of HV cables and SMESes to improve contrast
* Fixed SMES color in map legend
* Partially fixed auto-scrolling on device selection, made sublists alphabetical
* Changed how auto-scroll is handled
* Changed the font color of the console warning messages
* Reduced the font size of beacon labels
* Added the station name to the console
* Organized references
* Removed unwanted changes to RobustToolbox
* Fix merge conflict
* Fix merge conflict, maybe
* Fix merge conflict
* Updated outdated reference
* Fixed portable_generator.yml
* Implemented a number of requested changes, move bit masks to a shared component
* Navigate listings via the navmap
* First attempt at improving efficiency
* Second attempt at optimization, entity grouping added for solar panels
* Finished solar panel entity joining
* Finished major revisions, code clean up needed
* Finializing optimizations
* Made requested changes
* Bug fix, removed obsolete code
* Bug fixes
* Bug fixes
* STarted revisions
* Further revisions
* More revision
* Finalizing revisions. Need to make RT PR
* Code tidying
* More code tidying
* Trying to avoid merge conflicts
* Trying to avoid merge conflicts
* Removed use of PVS
* Improving efficiency
* Addressed a bunch of outstanding issues
* Clear old data on console refresh
* UI adjustments
* Made node comparison more robust. More devices can be combined into one entry
* Added missing component 'dirty'
(cherry picked from commit 1de682e23fd3cb832fa3328a7e6c4bd4b1a858f7)
* Basic TEG start.
Connects via node group.
* Basic TEG test map
* Sensor monitoring basics, TEG circulator flow
* Basic power generation (it doesn't work)
* More sensor monitoring work
* Battery (SMES) monitoring system.
* Sensor monitoring fixes
Make it work properly when mapped.
* Test map improvements
* Revise TEG power output mechanism.
Now uses a fixed supplier with a custom ramping system.
* TEG test map fixes
* Make air alarms and pumps open UI on activate.
* Clean up thermo machines power switch.
Removed separate Enabled bool from the component that always matched the power receiver's state.
This enables adding a PowerSwitch component to give us alt click/verb menu.
* TEG but now fancy
* Make sensor monitoring console obviously WiP to mappers.
* Vending machine sound, because of course.
* Terrible, terrible graph background color
* Examine improvements for the TEG.
* Account for electrical power when equalizing gas mixtures.
* Get rid of the TegCirculatorArrow logic.
Use TimedDespawn instead. The "no show in right-click menuu" goes into a new general-purpose component.
Thanks Julian.
* Put big notice of "not ready, here's why" on the sensor monitoring console.
* TryGetComponent -> TryComp
* Lol there's a HideContextMenu tag
* Test fixes
* Guidebook for TEG
Fixed rotation on GuideEntityEmbed not working correctly.
Added Margin property to GuideEntityEmbed
* Make TEG power bar default to invisible.
So it doesn't appear in the guidebook and spawn menu.