CatStation/Content.Server/Corvax/TTS/VoiceMaskSystem.TTS.cs
2025-04-05 07:36:30 +03:00

31 lines
1,017 B
C#

using Content.Shared.Corvax.TTS;
using Content.Shared.Inventory;
using Content.Shared.VoiceMask;
namespace Content.Server.VoiceMask;
public partial class VoiceMaskSystem
{
private void InitializeTTS()
{
SubscribeLocalEvent<VoiceMaskComponent, InventoryRelayedEvent<TransformSpeakerVoiceEvent>>(OnSpeakerVoiceTransform);
SubscribeLocalEvent<VoiceMaskComponent, VoiceMaskChangeVoiceMessage>(OnChangeVoice);
}
private void OnSpeakerVoiceTransform(EntityUid uid, VoiceMaskComponent component, InventoryRelayedEvent<TransformSpeakerVoiceEvent> args)
{
args.Args.VoiceId = component.VoiceId;
}
private void OnChangeVoice(Entity<VoiceMaskComponent> entity, ref VoiceMaskChangeVoiceMessage msg)
{
if (msg.Voice is { } id && !_proto.HasIndex<TTSVoicePrototype>(id))
return;
entity.Comp.VoiceId = msg.Voice;
_popupSystem.PopupEntity(Loc.GetString("voice-mask-voice-popup-success"), entity);
UpdateUI(entity);
}
}