Update radio prefix parsing (#13777)
This commit is contained in:
38
Content.Shared/Radio/EntitySystems/SharedHeadsetSystem.cs
Normal file
38
Content.Shared/Radio/EntitySystems/SharedHeadsetSystem.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Inventory.Events;
|
||||
using Content.Shared.Radio.Components;
|
||||
|
||||
namespace Content.Shared.Radio.EntitySystems;
|
||||
|
||||
public abstract class SharedHeadsetSystem : EntitySystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<HeadsetComponent, InventoryRelayedEvent<GetDefaultRadioChannelEvent>>(OnGetDefault);
|
||||
SubscribeLocalEvent<HeadsetComponent, GotEquippedEvent>(OnGotEquipped);
|
||||
SubscribeLocalEvent<HeadsetComponent, GotUnequippedEvent>(OnGotUnequipped);
|
||||
}
|
||||
|
||||
private void OnGetDefault(EntityUid uid, HeadsetComponent component, InventoryRelayedEvent<GetDefaultRadioChannelEvent> args)
|
||||
{
|
||||
if (!component.Enabled || !component.IsEquipped)
|
||||
{
|
||||
// don't provide default channels from pocket slots.
|
||||
return;
|
||||
}
|
||||
|
||||
if (TryComp(uid, out EncryptionKeyHolderComponent? keyHolder))
|
||||
args.Args.Channel ??= keyHolder.DefaultChannel;
|
||||
}
|
||||
|
||||
protected virtual void OnGotEquipped(EntityUid uid, HeadsetComponent component, GotEquippedEvent args)
|
||||
{
|
||||
component.IsEquipped = args.SlotFlags.HasFlag(component.RequiredSlot);
|
||||
}
|
||||
|
||||
protected virtual void OnGotUnequipped(EntityUid uid, HeadsetComponent component, GotUnequippedEvent args)
|
||||
{
|
||||
component.IsEquipped = false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user