Minecraft world importer for Gamecraft.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

34 lines
1.1KB

  1. using System;
  2. using System.Diagnostics;
  3. using Newtonsoft.Json.Serialization;
  4. using uREPL;
  5. namespace GCMC
  6. {
  7. public class JsonTraceWriter : ITraceWriter
  8. {
  9. private long lastpercent;
  10. public void Trace(TraceLevel level, string message, Exception ex)
  11. {
  12. //Log.Output(message + "\n" + ex, lvl, new StackFrame(1, true));
  13. int i = message.IndexOf("position ", StringComparison.Ordinal);
  14. int j = message.IndexOf(".", i + 1, StringComparison.Ordinal);
  15. if (i > -1 && j > -1)
  16. {
  17. i += "position ".Length;
  18. string str = message.Substring(i, j - i);
  19. long pos = long.Parse(str);
  20. byte percent = (byte) (pos / (double) FileLength * 100);
  21. if (lastpercent / 10 == percent / 10) return;
  22. Log.Output("Deserialization " + percent + "% complete");
  23. lastpercent = percent;
  24. }
  25. //Console.WriteLine(message + "\n" + ex);
  26. }
  27. public TraceLevel LevelFilter { get; } = TraceLevel.Info;
  28. public long FileLength { get; set; }
  29. }
  30. }