mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-02-15 00:54:51 +01:00
* apply negate accents system * add toggle to voice mask ui * roll negateaccents into voice mask system, delete negate accents comp&system, update yml entries * convert button to ToggleButton and some cleanup * retry for heisenfail * accent toggle * update names and add mask active check for accent hiding
78 lines
2.3 KiB
C#
78 lines
2.3 KiB
C#
using Content.Shared.Inventory;
|
|
using Content.Shared.Radio;
|
|
using Content.Shared.Speech;
|
|
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Shared.Chat;
|
|
|
|
/// <summary>
|
|
/// This event should be sent everytime an entity talks (Radio, local chat, etc...).
|
|
/// The event is sent to both the entity itself, and all clothing (For stuff like voice masks).
|
|
/// </summary>
|
|
public sealed class TransformSpeakerNameEvent : EntityEventArgs, IInventoryRelayEvent
|
|
{
|
|
public SlotFlags TargetSlots { get; } = SlotFlags.WITHOUT_POCKET;
|
|
public EntityUid Sender;
|
|
public string VoiceName;
|
|
public ProtoId<SpeechVerbPrototype>? SpeechVerb;
|
|
|
|
public TransformSpeakerNameEvent(EntityUid sender, string name)
|
|
{
|
|
Sender = sender;
|
|
VoiceName = name;
|
|
SpeechVerb = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Raised broadcast in order to transform speech.transmit
|
|
/// </summary>
|
|
public sealed class TransformSpeechEvent : CancellableEntityEventArgs, IInventoryRelayEvent
|
|
{
|
|
public SlotFlags TargetSlots { get; } = SlotFlags.WITHOUT_POCKET;
|
|
public EntityUid Sender;
|
|
public string Message;
|
|
|
|
public TransformSpeechEvent(EntityUid sender, string message)
|
|
{
|
|
Sender = sender;
|
|
Message = message;
|
|
}
|
|
}
|
|
|
|
public sealed class CheckIgnoreSpeechBlockerEvent : EntityEventArgs
|
|
{
|
|
public EntityUid Sender;
|
|
public bool IgnoreBlocker;
|
|
|
|
public CheckIgnoreSpeechBlockerEvent(EntityUid sender, bool ignoreBlocker)
|
|
{
|
|
Sender = sender;
|
|
IgnoreBlocker = ignoreBlocker;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Raised on an entity when it speaks, either through 'say' or 'whisper'.
|
|
/// </summary>
|
|
public sealed class EntitySpokeEvent : EntityEventArgs
|
|
{
|
|
public readonly EntityUid Source;
|
|
public readonly string Message;
|
|
public readonly string? ObfuscatedMessage; // not null if this was a whisper
|
|
|
|
/// <summary>
|
|
/// If the entity was trying to speak into a radio, this was the channel they were trying to access. If a radio
|
|
/// message gets sent on this channel, this should be set to null to prevent duplicate messages.
|
|
/// </summary>
|
|
public RadioChannelPrototype? Channel;
|
|
|
|
public EntitySpokeEvent(EntityUid source, string message, RadioChannelPrototype? channel, string? obfuscatedMessage)
|
|
{
|
|
Source = source;
|
|
Message = message;
|
|
Channel = channel;
|
|
ObfuscatedMessage = obfuscatedMessage;
|
|
}
|
|
}
|