示例#1
0
        /// <summary>
        /// Initializes a new FormattedText.
        /// </summary>
        /// <param name='text'>
        /// The clean line of text, without formatting codes.
        /// </param>
        /// <param name='emphases'>
        /// Emphases.
        /// </param>
        /// <param name='italic'>
        /// Italic.
        /// </param>
        /// <param name='position'>
        /// Position.
        /// </param>
        /// <param name='forceMenu'>
        /// Force menu.
        /// </param>
        /// <param name='pic'>
        /// The [pic] value, or <c>0</c> for unused.
        /// </param>
        /// <param name='picActor'>
        /// The [pica] value, or <c>0</c> for unused.
        /// </param>
        /// <param name='picConversant'>
        /// The [picc] value, or <c>0</c> for unused.
        /// </param>
        public FormattedText(string text = null, Emphasis[] emphases = null, bool italic = false, int position = NoAssignedPosition, bool forceMenu = true,
		                     int pic = NoPicOverride, int picActor = NoPicOverride, int picConversant = NoPicOverride, string variableInputPrompt = null)
        {
            this.text = text ?? string.Empty;
            this.emphases = emphases ?? noEmphases;
            this.italic = italic;
            this.position = position;
            this.forceMenu = forceMenu;
            this.pic = pic;
            this.picActor = picActor;
            this.picConversant = picConversant;
            this.variableInputPrompt = variableInputPrompt;
        }
示例#2
0
 /// <summary>
 /// Extracts the emphasis tags.
 /// </summary>
 /// <returns>
 /// An array of emphases.
 /// </returns>
 /// <param name='text'>
 /// Text (returned without the emphasis tags).
 /// </param>
 /// <param name='emphasisSettings'>
 /// Emphasis settings to use when parsing an emphasis tag.
 /// </param>
 /// @todo Apply emphasis to specified substring. Currently returns a max of one emphasis, which covers the whole text.
 private static Emphasis[] ExtractEmphasisTags(ref string text, EmphasisSetting[] emphasisSettings)
 {
     List<Emphasis> emphases = new List<Emphasis>();
     if (text.Contains("[em")) {
         Regex regex = new Regex(@"\[\/?em[1-4]\]");
         text = regex.Replace(text, delegate(Match match) {
             string numString = match.Value.Substring(match.Value.Length - 2, 1); // Get # from "[em#]"
             int num = 1;
             int.TryParse(numString, out num);
             num--;
             if ((emphasisSettings != null) && (0 <= num) && (num < emphasisSettings.Length)) {
                 Emphasis emphasis = new Emphasis(0, int.MaxValue, emphasisSettings[num].color, emphasisSettings[num].bold, emphasisSettings[num].italic, emphasisSettings[num].underline);
                 emphases.Clear();
                 emphases.Add(emphasis);
             }
             return string.Empty;
         });
     }
     return emphases.ToArray();
 }
示例#3
0
 /// <summary>
 /// Gets the Unity FonyStyle represented by an emphasis.
 /// </summary>
 /// <returns>
 /// The font style.
 /// </returns>
 /// <param name='emphasis'>
 /// Emphasis.
 /// </param>
 public static FontStyle GetFontStyle(Emphasis emphasis)
 {
     if (emphasis.bold && emphasis.italic) {
         return FontStyle.BoldAndItalic;
     } else if (emphasis.bold) {
         return FontStyle.Bold;
     } else if (emphasis.italic) {
         return FontStyle.Italic;
     } else {
         return FontStyle.Normal;
     }
 }