using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
namespace Content.Shared.Language.Components.Translators;
public abstract partial class BaseTranslatorComponent : Component
{
///
/// The list of additional languages this translator allows the wielder to speak.
///
[DataField("spoken", customTypeSerializer: typeof(PrototypeIdListSerializer))]
public List SpokenLanguages = new();
///
/// The list of additional languages this translator allows the wielder to understand.
///
[DataField("understood", customTypeSerializer: typeof(PrototypeIdListSerializer))]
public List UnderstoodLanguages = new();
///
/// The languages the wielding MUST know in order for this translator to have effect.
/// The field [RequiresAllLanguages] indicates whether all of them are required, or just one.
///
[DataField("requires", customTypeSerializer: typeof(PrototypeIdListSerializer))]
public List RequiredLanguages = new();
///
/// If true, the wielder must understand all languages in [RequiredLanguages] to speak [SpokenLanguages],
/// and understand all languages in [RequiredLanguages] to understand [UnderstoodLanguages].
///
/// Otherwise, at least one language must be known (or the list must be empty).
///
[DataField("requiresAll")]
[ViewVariables(VVAccess.ReadWrite)]
public bool RequiresAllLanguages = false;
[DataField("enabled"), ViewVariables(VVAccess.ReadWrite)]
public bool Enabled = true;
}