예제 #1
0
 public void Extend(FormattedString[] pre, CommandPart p)
 {
     if (pre.Length > 0 && NextParts.Any(o => o.ThisPart == pre[0]))
     {
         NextParts.First(o => o.ThisPart.Equals(pre[0])).Extend(pre.Skip(1).ToArray(), p);
     }
     else if (CType == CommandType.StaticList)
     {
         _staticList.Add(p);
     }
 }
예제 #2
0
 public void Extend(params FormattedString[] p)
 {
     if (NextParts.Any(o => o.ThisPart == p[0]))
     {
         NextParts.First(o => o.ThisPart.Equals(p[0])).Extend(p.Skip(1).ToArray());
     }
     else if (CType == CommandType.StaticList)
     {
         _staticList.Add(FromArray(p));
     }
 }
예제 #3
0
        public FormattedString LevelString(bool showlevel = true, bool complete = true)
        {
            var b     = new FormattedString();
            var count = NextParts.Count();

            b.Append(ThisPart);
            if (count == 1)
            {
                b.Append(" ");
                b.Append(NextParts.First().LevelString(showlevel));
                return(b);
            }
            if (count != 0 && showlevel)
            {
                b.Append($"[ {FormattedString.Join("| ", NextParts.Select(o => o.LevelString(complete)))}] ");
            }
            else if (count != 0)
            {
                b.Append("...");
            }
            return(b);
        }