예제 #1
0
 static void PrintChain(StreamWriter sw, EventFormatter formatter, IEventNode e, int indent)
 {
     do
     {
         sw.Write($"{e.Id:000}");
         sw.Write("".PadRight(indent * 4));
         if (e is IBranchNode branch)
         {
             sw.WriteLine($"if (!{formatter.GetText(e)}) {{");
             if (branch.NextIfFalse != null)
             {
                 PrintChain(sw, formatter, branch.NextIfFalse, indent + 1);
             }
             sw.WriteLine("}".PadLeft(4 + indent * 4));
             sw.WriteLine("else...".PadLeft(10 + indent * 4));
         }
         else
         {
             sw.WriteLine(formatter.GetText(e));
         }
         e = e.Next;
     } while (e != null);
 }
예제 #2
0
        static void PrintEvent(StreamWriter sw, EventFormatter formatter, IEventNode e, int?chainId)
        {
            if (chainId.HasValue)
            {
                sw.Write('C');
                sw.Write(chainId.Value.ToString().PadRight(3));
            }
            else
            {
                sw.Write("    ");
            }

            sw.WriteLine(formatter.GetText(e));
        }
예제 #3
0
파일: Dump.cs 프로젝트: mrwillbarnz/ualbion
 static void PrintChain(EventFormatter formatter, IEventNode e, int indent)
 {
     do
     {
         Console.Write($"{e.Id:000}");
         Console.Write("".PadRight(indent * 4));
         if (e is IBranchNode branch)
         {
             Console.WriteLine($"if (!{formatter.GetText(e)}) {{");
             if (branch.NextEventWhenFalse != null)
             {
                 PrintChain(formatter, branch.NextEventWhenFalse, indent + 1);
             }
             Console.WriteLine("}".PadLeft(4 + indent * 4));
             Console.WriteLine("else...".PadLeft(10 + indent * 4));
         }
         else
         {
             Console.WriteLine(formatter.GetText(e));
         }
         e = e.NextEvent;
     } while (e != null);
 }