* refactor: extracted notify-on-non-functioning feature from emitter component
* refactor: revert server side PowerStateSystem usage of SubscribeLocalEvent - it is not calling base Initialize, skip SetWorkingState raising event on init
* refactor: ensureAPC is now conditional for powerstate
* refactor: fix double notifiation on destruction and on un-powering for emitter
* refactor: added LocTurnedOff for NotifyOnNonFunctioningComponent, fix double alert on destruction, removed emitter-deconstructed-broadcast as it is unused (cannot deconstruct withou unanchor)
* refactor: modernize server PowerStateSystem subscription
* refactor: update and modernize PowerStatePrototypeTest
* refactor: give APE specific radio message upon unlocking
* refactor: extracted PowerStateSystem.SetPowerLoad to split init from triggering is-working change event
* Update Content.Server/Power/EntitySystems/PowerStateSystem.cs
---------
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* update math
* target finder system
* ports
* guns with projectiles
* make sure
* custom sprites for the laser
* add auto link
* add module
* sprite for the missile
* update animation speed
* ops
* make it glow
* overlay sprite
* stuff that doesn't work
* update launcher
* fix it
* make it see from far
* make it work
* sprite for the module
* 30 seconds is too much
* sprite for the range finder
* why was that here?
* update sprite of the missile
* update module icon
* ops
* update missile and missile launcher
* make it look like the launcher item
* remove ammo counter from range finder
* increase to 15 seconds
* no longer show the battery percentage
* use comp
* change summary
* ops
* new line
* make it last longer
* commentary
* acme moment
* fix bug when shooter was also the target and the projectile wouldn't move
* empty commit
* fix test fail
* replace with global behavior
* forgot to remove from the yml
* important
* check to see if the target exists
* fix autorefill bug
* remove unused system
* make it reload a tad slower
---------
Co-authored-by: beck-thompson <beck314159@hotmail.com>
* Dirty ApcPowerReceiver if state doesn't match defs
* surely this will work and isn't massive hubris
* SPACE
* docs & comments
* voltage, not charge
* no space
* jfc
* cleanup
* fix fixtures
* this belongs into the next PR
* review
* misc
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* Initial commit
* Removed mention of StationAiTurretComponent (for now)
* Prep for moving out of draft
* Fixing merge conflict
* Re-added new net frequencies to AI turrets
* Removed turret control content
* Removed unintended change
* Final tweaks
* Fixed incorrect file name
* Improvement to fire mode handling
* Addressed review comments
* Updated how turret wire panel auto-closing is handled
* Ranged NPCs no longer waste shots on stunned targets
* Fixed bug in tracking broken state
* Addressed review comments
* Bug fix
* Removed unnecessary event call
* 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
* Try syncing powered state to client
For some reason the client is not receiving the ApcPowerReceiverComponentState, so it's not working.
* Fix powered state not syncing to client
The client PowerReceiverSystem was abstract, which prevented it from
running initialize.
* Flip check so that it runs bigger checks first
PowerDisabled skips the others.
NeedsPower skips the receiving check.
* Disallow changing Powered manually
* Move Powered update to PowerReceiverSystem
* Move appearance to event subscription
* Move metadata component to AllEntityQuery
* Cleanup
* Move Powered update back to PowerNetSystem
It's easier to use the EntityQueries and it dosen't need to be updated
anywhere else.
* Put appearance updating back
* Move IsPowered to shared
* Simplify IsPowered
* Cleanup
* Remove duplicate PowerChangedEvent
PowerChangedEvent on ProviderChanged doesn't seem to be needed
PowerChangedEvent gets raised by in update if the power state changes
after a new provider is connected