using System;
using System.Collections.Generic;
#if TEXTMESHPRO_INSTALLED
using TMPro;
#endif
using UnityEngine;
namespace EasyTalk.Localization
{
///
/// This class is used to store information about the fonts to use for various languages.
///
[CreateAssetMenu(fileName = "Language Font Overrides", menuName = "EasyTalk/Localization/Language Font Overrides", order = 3)]
[Serializable]
public class LanguageFontOverrides : ScriptableObject
{
///
/// The List of language font overrides in this collection.
///
[SerializeField]
public List overrides = new List();
///
/// Checks the list of language font overrides for the specified language, and if found, returns the found language font override.
///
/// The language for the language font override to retrieve.
/// The language font override for the specified language, or null if one can't be found.
public LanguageFontOverride GetOverrideForLanguage(string language)
{
foreach(LanguageFontOverride fontOverride in overrides)
{
if(fontOverride.languageCode.ToLower().Equals(language.ToLower()) || fontOverride.languageName.ToLower().Equals(language.ToLower()))
{
return fontOverride;
}
}
return null;
}
}
///
/// A class used to map a language to a particular font.
///
[Serializable]
public class LanguageFontOverride
{
///
/// The name of the language.
///
[SerializeField]
public string languageName;
///
/// The ISO-639 language code for the language.
///
[SerializeField]
public string languageCode;
///
/// The regular font to use for the language.
///
[SerializeField]
public Font font;
#if TEXTMESHPRO_INSTALLED
///
/// The TextMeshPro font to use for the language.
///
[SerializeField]
public TMP_FontAsset tmpFont;
#endif
///
/// The minimum font size to use when displaying the language.
///
[SerializeField]
public float minFontSize = 12.0f;
///
/// The maximum font size to use when display the language.
///
[SerializeField]
public float maxFontSize = 32.0f;
}
}