Move ApcPowerReceiverComponent Powered state to shared (#28206)
* 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
This commit is contained in:
23
Content.Client/Power/EntitySystems/PowerReceiverSystem.cs
Normal file
23
Content.Client/Power/EntitySystems/PowerReceiverSystem.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Content.Client.Power.Components;
|
||||
using Content.Shared.Power.Components;
|
||||
using Content.Shared.Power.EntitySystems;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Client.Power.EntitySystems;
|
||||
|
||||
public sealed class PowerReceiverSystem : SharedPowerReceiverSystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<ApcPowerReceiverComponent, ComponentHandleState>(OnHandleState);
|
||||
}
|
||||
|
||||
private void OnHandleState(EntityUid uid, ApcPowerReceiverComponent component, ref ComponentHandleState args)
|
||||
{
|
||||
if (args.Current is not ApcPowerReceiverComponentState state)
|
||||
return;
|
||||
|
||||
component.Powered = state.Powered;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user