Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. using System.Drawing;
  2. using Artemis.Managers;
  3. using Artemis.Models;
  4. using Artemis.Models.Profiles;
  5. using Artemis.Utilities.GameState;
  6. using Newtonsoft.Json;
  7. using Brush = System.Windows.Media.Brush;
  8.  
  9. namespace Artemis.Modules.Games.Dota2
  10. {
  11. internal class Dota2Model : GameModel
  12. {
  13. public Dota2Model(MainManager mainManager, Dota2Settings settings)
  14. : base(mainManager, settings, new Dota2DataModel())
  15. {
  16. Name = "Dota2";
  17. ProcessName = "dota2";
  18. Settings = settings;
  19. Enabled = Settings.Enabled;
  20. Initialized = false;
  21. Scale = 4;
  22. }
  23.  
  24. public int Scale { get; set; }
  25. public new Dota2Settings Settings { get; set; }
  26.  
  27. public override void Dispose()
  28. {
  29. Initialized = false;
  30. MainManager.GameStateWebServer.GameDataReceived -= HandleGameData;
  31. }
  32.  
  33. public override void Enable()
  34. {
  35. Initialized = false;
  36.  
  37. MainManager.GameStateWebServer.GameDataReceived += HandleGameData;
  38. Initialized = true;
  39. }
  40.  
  41. public override void Update()
  42. {
  43. UpdateDay();
  44. }
  45.  
  46. private void UpdateDay()
  47. {
  48. var dataModel = GameDataModel as Dota2DataModel;
  49. if (dataModel?.map?.daytime == null)
  50. return;
  51.  
  52. var timeLeft = 240 - dataModel.map.clock_time%240;
  53. dataModel.DayCyclePercentage = 100.00 / 240 * timeLeft;
  54. }
  55.  
  56.  
  57. public override Bitmap GenerateBitmap()
  58. {
  59. if (Profile == null || GameDataModel == null)
  60. return null;
  61.  
  62. var keyboardRect = MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(Scale);
  63. return Profile.GenerateBitmap<Dota2DataModel>(keyboardRect, GameDataModel, false, true);
  64. }
  65.  
  66. public override Brush GenerateMouseBrush()
  67. {
  68. return Profile.GenerateBrush<Dota2DataModel>(GameDataModel, LayerType.Mouse, false, true);
  69. }
  70.  
  71. public override Brush GenerateHeadsetBrush()
  72. {
  73. return Profile.GenerateBrush<Dota2DataModel>(GameDataModel, LayerType.Headset, false, true);
  74. }
  75.  
  76. public void HandleGameData(object sender, GameDataReceivedEventArgs e)
  77. {
  78. var jsonString = e.Json.ToString();
  79.  
  80. // Ensure it's Dota 2 JSON
  81. if (!jsonString.Contains("Dota 2"))
  82. return;
  83.  
  84. // Parse the JSON
  85. GameDataModel = JsonConvert.DeserializeObject<Dota2DataModel>(jsonString);
  86. }
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement