6
StarHorizon_Public/Content.Server/Sound/SpamEmitSoundRequirePowerSystem.cs
2025-08-05 10:00:54 +03:00

35 lines
1.1 KiB
C#

using Content.Server.Power.Components;
using Content.Server.Power.EntitySystems;
using Content.Shared.Power;
using Content.Shared.Sound;
using Content.Shared.Sound.Components;
namespace Content.Server.Sound;
public sealed partial class SpamEmitSoundRequirePowerSystem : SharedSpamEmitSoundRequirePowerSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<SpamEmitSoundRequirePowerComponent, PowerChangedEvent>(OnPowerChanged);
SubscribeLocalEvent<SpamEmitSoundRequirePowerComponent, PowerNetBatterySupplyEvent>(OnPowerSupply);
}
private void OnPowerChanged(Entity<SpamEmitSoundRequirePowerComponent> entity, ref PowerChangedEvent args)
{
if (TryComp<SpamEmitSoundComponent>(entity.Owner, out var comp))
{
EmitSound.SetEnabled((entity, comp), args.Powered);
}
}
private void OnPowerSupply(Entity<SpamEmitSoundRequirePowerComponent> entity, ref PowerNetBatterySupplyEvent args)
{
if (TryComp<SpamEmitSoundComponent>(entity.Owner, out var comp))
{
EmitSound.SetEnabled((entity, comp), args.Supply);
}
}
}