Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. protected override void Update(GameTime gameTime)
  2. {
  3. var watch = new Stopwatch();
  4. if (!_written)
  5. {
  6. watch.Start();
  7. Console.Write("Writing json files...items...");
  8. DumpItems(ItemID.Count, _dumpPath);
  9. Console.Write("buffs...");
  10. DumpBuffs(BuffID.Count, _dumpPath);
  11. Console.Write("prefixes...");
  12. DumpPrefixes(PrefixID.Count, _dumpPath);
  13. Console.WriteLine("Done!");
  14. _written = true;
  15. watch.Stop();
  16. Console.WriteLine("Completed in {0} Seconds", watch.Elapsed.TotalSeconds);
  17. }
  18. else
  19. {
  20. Console.WriteLine("Press any key to exit");
  21. Process.Start(_dumpPath);
  22. Environment.Exit(0);
  23. }
  24. base.Update(gameTime);
  25. }
  26.  
  27. public void DumpItems(int count, string path)
  28. {
  29. var items = new Dictionary<int, Item>();
  30. var itm = new Item
  31. {
  32. ItemID = 0,
  33. ItemName = "(none)",
  34. Nick = "(none)"
  35. };
  36.  
  37. items.Add(0, itm);
  38. for (var i = 0; i < count; i++)
  39. {
  40. itm = GetItem(i);
  41. if (itm.ItemID != 0)
  42. items.Add(i, itm);
  43. }
  44. File.WriteAllText(path + @"\items.json",
  45. JsonConvert.SerializeObject(items, format,
  46. new JsonSerializerSettings
  47. {
  48. DefaultValueHandling = DefaultValueHandling.Ignore
  49. }));
  50. }
  51.  
  52. public void DumpBuffs(int count, string path)
  53. {
  54. var buffs = new Dictionary<int, Buff>();
  55. var buff = new Buff
  56. {
  57. BuffID = 0,
  58. BuffName = "(none)",
  59. BuffDescription = "(none)"
  60. };
  61. buffs.Add(0, buff);
  62. for (var i = 0; i < count; i++)
  63. {
  64. buff = GetBuff(i);
  65. if (buff.BuffID != 0)
  66. buffs.Add(i, buff);
  67. }
  68. File.WriteAllText(path + @"\buffs.json",
  69. JsonConvert.SerializeObject(buffs, format,
  70. new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }));
  71. }
  72.  
  73. public void DumpPrefixes(int count, string path)
  74. {
  75. var prefixes = new Dictionary<int, Prefix>();
  76. var prfx = new Prefix
  77. {
  78. ID = 0,
  79. Name = "(none)"
  80. };
  81. prefixes.Add(0, prfx);
  82. for (var i = 0; i < count; i++)
  83. {
  84. prfx.ID = (byte)i;
  85. prfx.Name = Language.GetTextValue(Lang.prefix[i].Value);
  86. if (prfx.ID != 0)
  87. prefixes.Add(i, prfx);
  88. }
  89. File.WriteAllText(path + @"\prefixes.json",
  90. JsonConvert.SerializeObject(prefixes, format,
  91. new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }));
  92. }
  93.  
  94. private static Buff GetBuff(int type)
  95. {
  96. var buff = new Buff
  97. {
  98. BuffID = type,
  99. BuffName = Language.GetTextValue(Lang.GetBuffName(type)),
  100. BuffDescription = Language.GetTextValue(Lang.GetBuffDescription(type))
  101. };
  102. return buff;
  103. }
  104.  
  105. private static Item GetItem(int type)
  106. {
  107. var terraItem = new Terraria.Item();
  108. terraItem.netDefaults(type);
  109. return new Item
  110. {
  111. ItemID = terraItem.netID,
  112. Nick = string.Empty,
  113. MaxStack = terraItem.maxStack,
  114. ItemName = Lang.GetItemName(terraItem.netID).ToNetworkText().ToString(),
  115. BackSlot = terraItem.backSlot,
  116. BalloonSlot = terraItem.balloonSlot,
  117. BodySlot = terraItem.bodySlot,
  118. FaceSlot = terraItem.faceSlot,
  119. FrontSlot = terraItem.frontSlot,
  120. HandOffSlot = terraItem.handOffSlot,
  121. HandOnSlot = terraItem.handOnSlot,
  122. HeadSlot = terraItem.headSlot,
  123. LegSlot = terraItem.legSlot,
  124. NeckSlot = terraItem.neckSlot,
  125. ShieldSlot = terraItem.shieldSlot,
  126. ShoeSlot = terraItem.shoeSlot,
  127. WaistSlot = terraItem.waistSlot,
  128. WingSlot = terraItem.wingSlot,
  129. Color = terraItem.color.PackedValue == 0
  130. ? null
  131. : new int[] { terraItem.color.A, terraItem.color.R, terraItem.color.G, terraItem.color.B }
  132. };
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement