MyCard.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Runtime.CompilerServices;
  5. using System.Threading;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Shapes;
  12. using Microsoft.VisualBasic;
  13. using Microsoft.VisualBasic.CompilerServices;
  14. using Newtonsoft.Json.Linq;
  15. namespace PCL
  16. {
  17. // Token: 0x0200001C RID: 28
  18. public class MyCard : Grid
  19. {
  20. // Token: 0x060000A4 RID: 164 RVA: 0x00002798 File Offset: 0x00000998
  21. public UIElement GetParser()
  22. {
  23. return this.dic.Child;
  24. }
  25. // Token: 0x060000A5 RID: 165 RVA: 0x000027A5 File Offset: 0x000009A5
  26. public void FindParser(UIElement value)
  27. {
  28. this.dic.Child = value;
  29. }
  30. // Token: 0x060000A6 RID: 166 RVA: 0x000027B3 File Offset: 0x000009B3
  31. public TextBlock RestartParser()
  32. {
  33. this.Init();
  34. return this._Helper;
  35. }
  36. // Token: 0x060000A7 RID: 167 RVA: 0x000027C1 File Offset: 0x000009C1
  37. public void DisableParser(TextBlock value)
  38. {
  39. this._Helper = value;
  40. }
  41. // Token: 0x060000A8 RID: 168 RVA: 0x000027CA File Offset: 0x000009CA
  42. public Path SearchParser()
  43. {
  44. this.Init();
  45. return this.m_Issuer;
  46. }
  47. // Token: 0x060000A9 RID: 169 RVA: 0x000027D8 File Offset: 0x000009D8
  48. public void AddParser(Path value)
  49. {
  50. this.m_Issuer = value;
  51. }
  52. // Token: 0x17000011 RID: 17
  53. // (get) Token: 0x060000AA RID: 170 RVA: 0x000027E1 File Offset: 0x000009E1
  54. // (set) Token: 0x060000AB RID: 171 RVA: 0x000027F3 File Offset: 0x000009F3
  55. public string Title
  56. {
  57. get
  58. {
  59. return Conversions.ToString(base.GetValue(MyCard.interpreter));
  60. }
  61. set
  62. {
  63. base.SetValue(MyCard.interpreter, value);
  64. if (this._Helper != null)
  65. {
  66. this.RestartParser().Text = value;
  67. }
  68. }
  69. }
  70. // Token: 0x060000AC RID: 172 RVA: 0x0000EB74 File Offset: 0x0000CD74
  71. public MyCard()
  72. {
  73. base.Loaded += delegate(object sender, RoutedEventArgs e)
  74. {
  75. this.Init();
  76. };
  77. base.MouseEnter += this.MyCard_MouseEnter;
  78. base.MouseLeave += this.MyCard_MouseLeave;
  79. base.SizeChanged += this.MySizeChanged;
  80. base.MouseLeftButtonDown += this.MyCard_MouseLeftButtonDown;
  81. base.MouseLeftButtonUp += this.MyCard_MouseLeftButtonUp;
  82. base.MouseLeave += this.MyCard_MouseLeave_Swap;
  83. this.indexer = ModBase.GetUuid();
  84. this.serializer = false;
  85. this.HasMouseAnimation = true;
  86. this.UseAnimation = true;
  87. this._Tag = false;
  88. this.CanSwap = false;
  89. this.decorator = false;
  90. this.SwapLogoRight = false;
  91. this.callback = false;
  92. this.request = new SystemDropShadowChrome
  93. {
  94. Margin = new Thickness(-9.5, -9.0, 0.5, -0.5),
  95. Opacity = 0.1,
  96. CornerRadius = new CornerRadius(6.0)
  97. };
  98. this.request.SetResourceReference(SystemDropShadowChrome._ObserverTests, "ColorObject1");
  99. base.Children.Insert(0, this.request);
  100. this.dic = new Border
  101. {
  102. Background = new SolidColorBrush(Color.FromArgb(205, byte.MaxValue, byte.MaxValue, byte.MaxValue)),
  103. CornerRadius = new CornerRadius(6.0),
  104. IsHitTestVisible = false
  105. };
  106. base.Children.Insert(1, this.dic);
  107. this.mock = new Grid();
  108. base.Children.Add(this.mock);
  109. }
  110. // Token: 0x060000AD RID: 173 RVA: 0x0000ED48 File Offset: 0x0000CF48
  111. private void Init()
  112. {
  113. if (!this.serializer)
  114. {
  115. this.serializer = true;
  116. if (Operators.CompareString(this.Title, "", false) != 0 && this.RestartParser() == null)
  117. {
  118. this.DisableParser(new TextBlock
  119. {
  120. HorizontalAlignment = HorizontalAlignment.Left,
  121. VerticalAlignment = VerticalAlignment.Top,
  122. Margin = new Thickness(15.0, 12.0, 0.0, 0.0),
  123. FontWeight = FontWeights.Bold,
  124. FontSize = 13.0,
  125. IsHitTestVisible = false
  126. });
  127. this.RestartParser().SetResourceReference(TextBlock.ForegroundProperty, "ColorBrush1");
  128. this.RestartParser().SetBinding(TextBlock.TextProperty, new Binding("Title")
  129. {
  130. Source = this,
  131. Mode = BindingMode.OneWay
  132. });
  133. this.mock.Children.Add(this.RestartParser());
  134. }
  135. if (this.CanSwap || this._Stub != null)
  136. {
  137. if (this._Stub == null && base.Children.Count > 3)
  138. {
  139. this._Stub = base.Children[3];
  140. }
  141. this.AddParser(new Path
  142. {
  143. HorizontalAlignment = HorizontalAlignment.Right,
  144. Stretch = Stretch.Uniform,
  145. Height = 6.0,
  146. Width = 10.0,
  147. VerticalAlignment = VerticalAlignment.Top,
  148. Margin = new Thickness(0.0, 17.0, 16.0, 0.0),
  149. Data = (Geometry)new GeometryConverter().ConvertFromString("M2,4 l-2,2 10,10 10,-10 -2,-2 -8,8 -8,-8 z"),
  150. RenderTransform = new RotateTransform(180.0),
  151. RenderTransformOrigin = new Point(0.5, 0.5)
  152. });
  153. this.SearchParser().SetResourceReference(Shape.FillProperty, "ColorBrush1");
  154. this.mock.Children.Add(this.SearchParser());
  155. }
  156. if (this.IsSwaped && this._Stub != null)
  157. {
  158. this.SearchParser().RenderTransform = new RotateTransform((double)(this.SwapLogoRight ? 270 : 0));
  159. bool RawUseAnimation = this.UseAnimation;
  160. this.UseAnimation = false;
  161. base.Height = 40.0;
  162. ModAnimation.AniStop("MyCard Height " + Conversions.ToString(this.indexer));
  163. this._Tag = false;
  164. ModBase.RunInUi(delegate()
  165. {
  166. this.UseAnimation = RawUseAnimation;
  167. }, true);
  168. }
  169. }
  170. }
  171. // Token: 0x060000AE RID: 174 RVA: 0x0000EFFC File Offset: 0x0000D1FC
  172. public void StackInstall()
  173. {
  174. StackPanel stackPanel = (StackPanel)this._Stub;
  175. MyCard.StackInstall(ref stackPanel, this.CountParser(), this.Title);
  176. this._Stub = stackPanel;
  177. this.TriggerForceResize();
  178. }
  179. // Token: 0x060000AF RID: 175 RVA: 0x0000F034 File Offset: 0x0000D234
  180. public static void StackInstall(ref StackPanel Stack, int Type, string CardTitle = "")
  181. {
  182. if (!Information.IsNothing(RuntimeHelpers.GetObjectValue(Stack.Tag)))
  183. {
  184. switch (Type)
  185. {
  186. case 3:
  187. Stack.Tag = ((List<ModDownload.DlOptiFineListEntry>)Stack.Tag).Sort((MyCard._Closure$__.$I24-0 == null) ? (MyCard._Closure$__.$I24-0 = ((ModDownload.DlOptiFineListEntry a, ModDownload.DlOptiFineListEntry b) => ModMinecraft.VersionSortBoolean(a.m_SchemaTest, b.m_SchemaTest))) : MyCard._Closure$__.$I24-0);
  188. break;
  189. case 4:
  190. case 10:
  191. Stack.Tag = ((List<ModDownload.DlLiteLoaderListEntry>)Stack.Tag).Sort((MyCard._Closure$__.$I24-1 == null) ? (MyCard._Closure$__.$I24-1 = ((ModDownload.DlLiteLoaderListEntry a, ModDownload.DlLiteLoaderListEntry b) => ModMinecraft.VersionSortBoolean(a.Inherit, b.Inherit))) : MyCard._Closure$__.$I24-1);
  192. break;
  193. case 6:
  194. Stack.Tag = ((List<ModDownload.DlForgeVersionEntry>)Stack.Tag).Sort((MyCard._Closure$__.$I24-2 == null) ? (MyCard._Closure$__.$I24-2 = ((ModDownload.DlForgeVersionEntry a, ModDownload.DlForgeVersionEntry b) => a.clientMap > b.clientMap)) : MyCard._Closure$__.$I24-2);
  195. break;
  196. case 8:
  197. case 9:
  198. Stack.Tag = ((List<ModComp.CompFile>)Stack.Tag).Sort((MyCard._Closure$__.$I24-3 == null) ? (MyCard._Closure$__.$I24-3 = ((ModComp.CompFile a, ModComp.CompFile b) => DateTime.Compare(a._ListenerRepository, b._ListenerRepository) > 0)) : MyCard._Closure$__.$I24-3);
  199. break;
  200. }
  201. switch (Type)
  202. {
  203. case 5:
  204. {
  205. MyLoading myLoading = new MyLoading
  206. {
  207. Text = "正在获取版本列表",
  208. Margin = new Thickness(5.0)
  209. };
  210. ModLoader.LoaderTask<string, List<ModDownload.DlForgeVersionEntry>> loaderTask = new ModLoader.LoaderTask<string, List<ModDownload.DlForgeVersionEntry>>("DlForgeVersion Main", new Action<ModLoader.LoaderTask<string, List<ModDownload.DlForgeVersionEntry>>>(ModDownload.DlForgeVersionMain), null, ThreadPriority.Normal);
  211. myLoading.State = loaderTask;
  212. loaderTask.Start(RuntimeHelpers.GetObjectValue(Stack.Tag), false);
  213. MyLoading myLoading2 = myLoading;
  214. MyCard._Closure$__R24-1 CS$<>8__locals1 = new MyCard._Closure$__R24-1(CS$<>8__locals1);
  215. CS$<>8__locals1.$VB$NonLocal_2 = ModMain.m_ItemIterator;
  216. myLoading2.PrintField(delegate(object a0, MyLoading.MyLoadingState a1, MyLoading.MyLoadingState a2)
  217. {
  218. CS$<>8__locals1.$VB$NonLocal_2.Forge_StateChanged((MyLoading)a0, a1, a2);
  219. });
  220. MyLoading myLoading3 = myLoading;
  221. MyCard._Closure$__R24-2 CS$<>8__locals2 = new MyCard._Closure$__R24-2(CS$<>8__locals2);
  222. CS$<>8__locals2.$VB$NonLocal_3 = ModMain.m_ItemIterator;
  223. myLoading3.Click += delegate(object sender, MouseButtonEventArgs e)
  224. {
  225. CS$<>8__locals2.$VB$NonLocal_3.Forge_Click((MyLoading)sender, e);
  226. };
  227. Stack.Children.Add(myLoading);
  228. break;
  229. }
  230. case 6:
  231. ModDownloadLib.ForgeDownloadListItemPreload(Stack, (List<ModDownload.DlForgeVersionEntry>)Stack.Tag, new MyListItem.ClickEventHandler(ModDownloadLib.ForgeSave_Click), true);
  232. break;
  233. case 8:
  234. ModComp.CompFilesCardPreload(Stack, (List<ModComp.CompFile>)Stack.Tag);
  235. break;
  236. }
  237. try
  238. {
  239. foreach (object obj in ((IEnumerable)Stack.Tag))
  240. {
  241. object objectValue = RuntimeHelpers.GetObjectValue(obj);
  242. switch (Type)
  243. {
  244. case 0:
  245. Stack.Children.Add(PageSelectRight.McVersionListItem((ModMinecraft.McVersion)objectValue));
  246. continue;
  247. case 2:
  248. Stack.Children.Add(ModDownloadLib.McDownloadListItem((JObject)objectValue, new MyListItem.ClickEventHandler(ModDownloadLib.McDownloadMenuSave), true));
  249. continue;
  250. case 3:
  251. Stack.Children.Add(ModDownloadLib.OptiFineDownloadListItem((ModDownload.DlOptiFineListEntry)objectValue, new MyListItem.ClickEventHandler(ModDownloadLib.OptiFineSave_Click), true));
  252. continue;
  253. case 4:
  254. {
  255. UIElementCollection children = Stack.Children;
  256. ModDownload.DlLiteLoaderListEntry entry = (ModDownload.DlLiteLoaderListEntry)objectValue;
  257. MyCard._Closure$__R24-3 CS$<>8__locals3 = new MyCard._Closure$__R24-3(CS$<>8__locals3);
  258. CS$<>8__locals3.$VB$NonLocal_4 = ModMain.bridgeIterator;
  259. children.Add(ModDownloadLib.LiteLoaderDownloadListItem(entry, delegate(object sender, MouseButtonEventArgs e)
  260. {
  261. CS$<>8__locals3.$VB$NonLocal_4.DownloadStart((MyListItem)sender, e);
  262. }, false));
  263. continue;
  264. }
  265. case 5:
  266. continue;
  267. case 6:
  268. Stack.Children.Add(ModDownloadLib.ForgeDownloadListItem((ModDownload.DlForgeVersionEntry)objectValue, new MyListItem.ClickEventHandler(ModDownloadLib.ForgeSave_Click), true));
  269. continue;
  270. case 7:
  271. Stack.Children.Add(ModDownloadLib.McDownloadListItem((JObject)objectValue, (MyCard._Closure$__.$I24-4 == null) ? (MyCard._Closure$__.$I24-4 = delegate(object sender, MouseButtonEventArgs e)
  272. {
  273. ModMain.m_VisitorIterator.MinecraftSelected((MyListItem)sender, e);
  274. }) : MyCard._Closure$__.$I24-4, false));
  275. continue;
  276. case 8:
  277. if (((List<ModComp.CompFile>)Stack.Tag).Distinct((MyCard._Closure$__.$I24-5 == null) ? (MyCard._Closure$__.$I24-5 = ((ModComp.CompFile a, ModComp.CompFile b) => Operators.CompareString(a._ProductRepository, b._ProductRepository, false) == 0)) : MyCard._Closure$__.$I24-5).Count != ((List<ModComp.CompFile>)Stack.Tag).Count)
  278. {
  279. Stack.Children.Add(((ModComp.CompFile)objectValue).ToListItem(new MyListItem.ClickEventHandler(ModMain.iteratorRepository.Save_Click), null, true));
  280. continue;
  281. }
  282. Stack.Children.Add(((ModComp.CompFile)objectValue).ToListItem(new MyListItem.ClickEventHandler(ModMain.iteratorRepository.Save_Click), null, false));
  283. continue;
  284. case 9:
  285. {
  286. if (((List<ModComp.CompFile>)Stack.Tag).Distinct((MyCard._Closure$__.$I24-6 == null) ? (MyCard._Closure$__.$I24-6 = ((ModComp.CompFile a, ModComp.CompFile b) => Operators.CompareString(a._ProductRepository, b._ProductRepository, false) == 0)) : MyCard._Closure$__.$I24-6).Count != ((List<ModComp.CompFile>)Stack.Tag).Count)
  287. {
  288. UIElementCollection children2 = Stack.Children;
  289. ModComp.CompFile compFile = (ModComp.CompFile)objectValue;
  290. MyCard._Closure$__R24-4 CS$<>8__locals4 = new MyCard._Closure$__R24-4(CS$<>8__locals4);
  291. CS$<>8__locals4.$VB$NonLocal_5 = ModMain.iteratorRepository;
  292. children2.Add(compFile.ToListItem(delegate(object sender, MouseButtonEventArgs e)
  293. {
  294. CS$<>8__locals4.$VB$NonLocal_5.Install_Click((MyListItem)sender, e);
  295. }, new MyIconButton.ClickEventHandler(ModMain.iteratorRepository.Save_Click), true));
  296. continue;
  297. }
  298. UIElementCollection children3 = Stack.Children;
  299. ModComp.CompFile compFile2 = (ModComp.CompFile)objectValue;
  300. MyCard._Closure$__R24-5 CS$<>8__locals5 = new MyCard._Closure$__R24-5(CS$<>8__locals5);
  301. CS$<>8__locals5.$VB$NonLocal_6 = ModMain.iteratorRepository;
  302. children3.Add(compFile2.ToListItem(delegate(object sender, MouseButtonEventArgs e)
  303. {
  304. CS$<>8__locals5.$VB$NonLocal_6.Install_Click((MyListItem)sender, e);
  305. }, new MyIconButton.ClickEventHandler(ModMain.iteratorRepository.Save_Click), false));
  306. continue;
  307. }
  308. case 10:
  309. Stack.Children.Add(ModDownloadLib.LiteLoaderDownloadListItem((ModDownload.DlLiteLoaderListEntry)objectValue, new MyListItem.ClickEventHandler(ModDownloadLib.LiteLoaderSave_Click), true));
  310. continue;
  311. case 11:
  312. Stack.Children.Add(((ModMain.HelpEntry)objectValue).ToListItem());
  313. continue;
  314. case 12:
  315. {
  316. UIElementCollection children4 = Stack.Children;
  317. JObject entry2 = (JObject)objectValue;
  318. MyCard._Closure$__R24-6 CS$<>8__locals6 = new MyCard._Closure$__R24-6(CS$<>8__locals6);
  319. CS$<>8__locals6.$VB$NonLocal_7 = ModMain.m_VisitorIterator;
  320. children4.Add(ModDownloadLib.FabricDownloadListItem(entry2, delegate(object sender, MouseButtonEventArgs e)
  321. {
  322. CS$<>8__locals6.$VB$NonLocal_7.Fabric_Selected((MyListItem)sender, e);
  323. }));
  324. continue;
  325. }
  326. case 13:
  327. Stack.Children.Add(ModDownloadLib.NeoForgeDownloadListItem((ModDownload.DlNeoForgeListEntry)objectValue, new MyListItem.ClickEventHandler(ModDownloadLib.NeoForgeSave_Click), true));
  328. continue;
  329. }
  330. ModBase.Log("未知的虚拟化种类:" + Conversions.ToString(Type), ModBase.LogLevel.Feedback, "出现错误");
  331. }
  332. }
  333. finally
  334. {
  335. IEnumerator enumerator;
  336. if (enumerator is IDisposable)
  337. {
  338. (enumerator as IDisposable).Dispose();
  339. }
  340. }
  341. Stack.Children.Add(new FrameworkElement
  342. {
  343. Height = 18.0
  344. });
  345. Stack.Tag = null;
  346. }
  347. }
  348. // Token: 0x17000012 RID: 18
  349. // (get) Token: 0x060000B0 RID: 176 RVA: 0x00002815 File Offset: 0x00000A15
  350. // (set) Token: 0x060000B1 RID: 177 RVA: 0x0000281D File Offset: 0x00000A1D
  351. public bool HasMouseAnimation { get; set; }
  352. // Token: 0x060000B2 RID: 178 RVA: 0x0000F6E8 File Offset: 0x0000D8E8
  353. private void MyCard_MouseEnter(object sender, MouseEventArgs e)
  354. {
  355. if (this.HasMouseAnimation)
  356. {
  357. List<ModAnimation.AniData> list = new List<ModAnimation.AniData>();
  358. if (!Information.IsNothing(this.RestartParser()))
  359. {
  360. list.Add(ModAnimation.AaColor(this.RestartParser(), TextBlock.ForegroundProperty, "ColorBrush2", 150, 0, null, false));
  361. }
  362. if (!Information.IsNothing(this.SearchParser()))
  363. {
  364. list.Add(ModAnimation.AaColor(this.SearchParser(), Shape.FillProperty, "ColorBrush2", 150, 0, null, false));
  365. }
  366. list.AddRange(new ModAnimation.AniData[]
  367. {
  368. ModAnimation.AaColor(this.request, SystemDropShadowChrome._ObserverTests, "ColorObject2", 180, 0, null, false),
  369. ModAnimation.AaColor(this.dic, Border.BackgroundProperty, new ModBase.MyColor(230.0, 255.0, 255.0, 255.0) - this.dic.Background, 180, 0, null, false),
  370. ModAnimation.AaOpacity(this.request, 0.3 - this.request.Opacity, 180, 0, null, false)
  371. });
  372. ModAnimation.AniStart(list, "MyCard Mouse " + Conversions.ToString(this.indexer), false);
  373. }
  374. }
  375. // Token: 0x060000B3 RID: 179 RVA: 0x0000F840 File Offset: 0x0000DA40
  376. private void MyCard_MouseLeave(object sender, MouseEventArgs e)
  377. {
  378. if (this.HasMouseAnimation)
  379. {
  380. List<ModAnimation.AniData> list = new List<ModAnimation.AniData>();
  381. if (!Information.IsNothing(this.RestartParser()))
  382. {
  383. list.Add(ModAnimation.AaColor(this.RestartParser(), TextBlock.ForegroundProperty, "ColorBrush1", 250, 0, null, false));
  384. }
  385. if (!Information.IsNothing(this.SearchParser()))
  386. {
  387. list.Add(ModAnimation.AaColor(this.SearchParser(), Shape.FillProperty, "ColorBrush1", 250, 0, null, false));
  388. }
  389. list.AddRange(new ModAnimation.AniData[]
  390. {
  391. ModAnimation.AaColor(this.request, SystemDropShadowChrome._ObserverTests, "ColorObject1", 300, 0, null, false),
  392. ModAnimation.AaColor(this.dic, Border.BackgroundProperty, new ModBase.MyColor(205.0, 255.0, 255.0, 255.0) - this.dic.Background, 300, 0, null, false),
  393. ModAnimation.AaOpacity(this.request, 0.1 - this.request.Opacity, 300, 0, null, false)
  394. });
  395. ModAnimation.AniStart(list, "MyCard Mouse " + Conversions.ToString(this.indexer), false);
  396. }
  397. }
  398. // Token: 0x17000013 RID: 19
  399. // (get) Token: 0x060000B4 RID: 180 RVA: 0x00002826 File Offset: 0x00000A26
  400. // (set) Token: 0x060000B5 RID: 181 RVA: 0x0000282E File Offset: 0x00000A2E
  401. public bool UseAnimation { get; set; }
  402. // Token: 0x060000B6 RID: 182 RVA: 0x0000F998 File Offset: 0x0000DB98
  403. private void MySizeChanged(object sender, SizeChangedEventArgs e)
  404. {
  405. if (this.UseAnimation)
  406. {
  407. double num = (this.IsSwaped ? 40.0 : e.NewSize.Height) - e.PreviousSize.Height;
  408. if (e.PreviousSize.Height != 0.0 && !this._Tag && Math.Abs(num) >= 1.0 && base.ActualHeight != 0.0)
  409. {
  410. this.StartHeightAnimation(num, e.PreviousSize.Height, false);
  411. }
  412. }
  413. }
  414. // Token: 0x060000B7 RID: 183 RVA: 0x0000FA3C File Offset: 0x0000DC3C
  415. private void StartHeightAnimation(double DeltaHeight, double PreviousHeight, bool IsLoadAnimation)
  416. {
  417. if (!this._Tag && ModMain._ProcessIterator != null)
  418. {
  419. List<ModAnimation.AniData> list = new List<ModAnimation.AniData>();
  420. if (DeltaHeight <= 10.0 && (DeltaHeight >= -10.0 || Information.IsNothing(RuntimeHelpers.GetObjectValue(this._Stub))))
  421. {
  422. list.AddRange(new ModAnimation.AniData[]
  423. {
  424. ModAnimation.AaHeight(this, DeltaHeight, checked((int)Math.Round(ModBase.MathClamp(unchecked(Math.Abs(DeltaHeight) * 4.0), 150.0, 250.0))), 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false)
  425. });
  426. }
  427. else
  428. {
  429. double num = ModBase.MathClamp(Math.Abs(DeltaHeight) * 0.05, 3.0, 10.0) * (double)Math.Sign(DeltaHeight);
  430. list.AddRange(new ModAnimation.AniData[]
  431. {
  432. ModAnimation.AaHeight(this, DeltaHeight + num, 300, IsLoadAnimation ? 30 : 0, (ModAnimation.AniEase)((DeltaHeight > ModMain._ProcessIterator.Height) ? new ModAnimation.AniEaseInFluent(ModAnimation.AniEasePower.ExtraStrong) : new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.ExtraStrong)), false),
  433. ModAnimation.AaHeight(this, -num, 150, 260, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Strong), false)
  434. });
  435. }
  436. list.Add(ModAnimation.AaCode(delegate
  437. {
  438. this._Tag = false;
  439. base.Height = this._Observer;
  440. if (this.IsSwaped)
  441. {
  442. NewLateBinding.LateSet(this._Stub, null, "Visibility", new object[]
  443. {
  444. Visibility.Collapsed
  445. }, null, null);
  446. }
  447. }, 0, true));
  448. ModAnimation.AniStart(list, "MyCard Height " + Conversions.ToString(this.indexer), false);
  449. this._Tag = true;
  450. this._Observer = (this.IsSwaped ? 40.0 : base.Height);
  451. base.Height = PreviousHeight;
  452. }
  453. }
  454. // Token: 0x060000B8 RID: 184 RVA: 0x0000FBE0 File Offset: 0x0000DDE0
  455. public void TriggerForceResize()
  456. {
  457. base.Height = (this.IsSwaped ? 40.0 : double.NaN);
  458. ModAnimation.AniStop("MyCard Height " + Conversions.ToString(this.indexer));
  459. this._Tag = false;
  460. }
  461. // Token: 0x17000014 RID: 20
  462. // (get) Token: 0x060000B9 RID: 185 RVA: 0x00002837 File Offset: 0x00000A37
  463. // (set) Token: 0x060000BA RID: 186 RVA: 0x0000283F File Offset: 0x00000A3F
  464. public bool CanSwap { get; set; }
  465. // Token: 0x060000BB RID: 187 RVA: 0x00002848 File Offset: 0x00000A48
  466. [CompilerGenerated]
  467. public int CountParser()
  468. {
  469. return this.@ref;
  470. }
  471. // Token: 0x060000BC RID: 188 RVA: 0x00002850 File Offset: 0x00000A50
  472. [CompilerGenerated]
  473. public void CreateParser(int AutoPropertyValue)
  474. {
  475. this.@ref = AutoPropertyValue;
  476. }
  477. // Token: 0x17000015 RID: 21
  478. // (get) Token: 0x060000BD RID: 189 RVA: 0x00002859 File Offset: 0x00000A59
  479. // (set) Token: 0x060000BE RID: 190 RVA: 0x0000FC30 File Offset: 0x0000DE30
  480. public bool IsSwaped
  481. {
  482. get
  483. {
  484. return this.decorator;
  485. }
  486. set
  487. {
  488. if (this.decorator != value)
  489. {
  490. this.decorator = value;
  491. if (this._Stub != null)
  492. {
  493. if (!this.IsSwaped && this._Stub is StackPanel)
  494. {
  495. StackPanel stackPanel = (StackPanel)this._Stub;
  496. MyCard.StackInstall(ref stackPanel, this.CountParser(), this.Title);
  497. this._Stub = stackPanel;
  498. }
  499. if (base.IsLoaded)
  500. {
  501. NewLateBinding.LateSet(this._Stub, null, "Visibility", new object[]
  502. {
  503. Visibility.Visible
  504. }, null, null);
  505. this.TriggerForceResize();
  506. ModAnimation.AniStart(ModAnimation.AaRotateTransform(this.SearchParser(), (double)(this.decorator ? (this.SwapLogoRight ? 270 : 0) : 180) - ((RotateTransform)this.SearchParser().RenderTransform).Angle, 400, 0, new ModAnimation.AniEaseOutBack(ModAnimation.AniEasePower.Weak), false), "MyCard Swap " + Conversions.ToString(this.indexer), true);
  507. }
  508. }
  509. }
  510. }
  511. }
  512. // Token: 0x17000016 RID: 22
  513. // (get) Token: 0x060000BF RID: 191 RVA: 0x00002861 File Offset: 0x00000A61
  514. // (set) Token: 0x060000C0 RID: 192 RVA: 0x00002869 File Offset: 0x00000A69
  515. public bool SwapLogoRight { get; set; }
  516. // Token: 0x060000C1 RID: 193 RVA: 0x0000FD30 File Offset: 0x0000DF30
  517. [CompilerGenerated]
  518. public void InterruptParser(MyCard.PreviewSwapEventHandler obj)
  519. {
  520. MyCard.PreviewSwapEventHandler previewSwapEventHandler = this.template;
  521. MyCard.PreviewSwapEventHandler previewSwapEventHandler2;
  522. do
  523. {
  524. previewSwapEventHandler2 = previewSwapEventHandler;
  525. MyCard.PreviewSwapEventHandler value = (MyCard.PreviewSwapEventHandler)Delegate.Combine(previewSwapEventHandler2, obj);
  526. previewSwapEventHandler = Interlocked.CompareExchange<MyCard.PreviewSwapEventHandler>(ref this.template, value, previewSwapEventHandler2);
  527. }
  528. while (previewSwapEventHandler != previewSwapEventHandler2);
  529. }
  530. // Token: 0x060000C2 RID: 194 RVA: 0x0000FD68 File Offset: 0x0000DF68
  531. [CompilerGenerated]
  532. public void PostParser(MyCard.PreviewSwapEventHandler obj)
  533. {
  534. MyCard.PreviewSwapEventHandler previewSwapEventHandler = this.template;
  535. MyCard.PreviewSwapEventHandler previewSwapEventHandler2;
  536. do
  537. {
  538. previewSwapEventHandler2 = previewSwapEventHandler;
  539. MyCard.PreviewSwapEventHandler value = (MyCard.PreviewSwapEventHandler)Delegate.Remove(previewSwapEventHandler2, obj);
  540. previewSwapEventHandler = Interlocked.CompareExchange<MyCard.PreviewSwapEventHandler>(ref this.template, value, previewSwapEventHandler2);
  541. }
  542. while (previewSwapEventHandler != previewSwapEventHandler2);
  543. }
  544. // Token: 0x060000C3 RID: 195 RVA: 0x0000FDA0 File Offset: 0x0000DFA0
  545. [CompilerGenerated]
  546. public void CompareParser(MyCard.SwapEventHandler obj)
  547. {
  548. MyCard.SwapEventHandler swapEventHandler = this.method;
  549. MyCard.SwapEventHandler swapEventHandler2;
  550. do
  551. {
  552. swapEventHandler2 = swapEventHandler;
  553. MyCard.SwapEventHandler value = (MyCard.SwapEventHandler)Delegate.Combine(swapEventHandler2, obj);
  554. swapEventHandler = Interlocked.CompareExchange<MyCard.SwapEventHandler>(ref this.method, value, swapEventHandler2);
  555. }
  556. while (swapEventHandler != swapEventHandler2);
  557. }
  558. // Token: 0x060000C4 RID: 196 RVA: 0x0000FDD8 File Offset: 0x0000DFD8
  559. [CompilerGenerated]
  560. public void MoveParser(MyCard.SwapEventHandler obj)
  561. {
  562. MyCard.SwapEventHandler swapEventHandler = this.method;
  563. MyCard.SwapEventHandler swapEventHandler2;
  564. do
  565. {
  566. swapEventHandler2 = swapEventHandler;
  567. MyCard.SwapEventHandler value = (MyCard.SwapEventHandler)Delegate.Remove(swapEventHandler2, obj);
  568. swapEventHandler = Interlocked.CompareExchange<MyCard.SwapEventHandler>(ref this.method, value, swapEventHandler2);
  569. }
  570. while (swapEventHandler != swapEventHandler2);
  571. }
  572. // Token: 0x060000C5 RID: 197 RVA: 0x0000FE10 File Offset: 0x0000E010
  573. private void MyCard_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  574. {
  575. double y = Mouse.GetPosition(this).Y;
  576. if (this.IsSwaped || (this._Stub != null && y <= 40.0 && (y != 0.0 || base.IsMouseDirectlyOver)))
  577. {
  578. this.callback = true;
  579. }
  580. }
  581. // Token: 0x060000C6 RID: 198 RVA: 0x0000FE64 File Offset: 0x0000E064
  582. private void MyCard_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  583. {
  584. if (this.callback)
  585. {
  586. this.callback = false;
  587. double y = Mouse.GetPosition(this).Y;
  588. if (this.IsSwaped || (this._Stub != null && y <= 40.0 && (y != 0.0 || base.IsMouseDirectlyOver)))
  589. {
  590. ModBase.RouteEventArgs routeEventArgs = new ModBase.RouteEventArgs(true);
  591. MyCard.PreviewSwapEventHandler previewSwapEventHandler = this.template;
  592. if (previewSwapEventHandler != null)
  593. {
  594. previewSwapEventHandler(this, routeEventArgs);
  595. }
  596. if (routeEventArgs.m_SerializerError)
  597. {
  598. this.callback = false;
  599. return;
  600. }
  601. this.IsSwaped = !this.IsSwaped;
  602. ModBase.Log("[Control] " + (this.IsSwaped ? "折叠卡片" : "展开卡片") + ((this.Title == null) ? "" : (":" + this.Title)), ModBase.LogLevel.Normal, "出现错误");
  603. MyCard.SwapEventHandler swapEventHandler = this.method;
  604. if (swapEventHandler != null)
  605. {
  606. swapEventHandler(this, routeEventArgs);
  607. }
  608. }
  609. }
  610. }
  611. // Token: 0x060000C7 RID: 199 RVA: 0x00002872 File Offset: 0x00000A72
  612. private void MyCard_MouseLeave_Swap(object sender, MouseEventArgs e)
  613. {
  614. this.callback = false;
  615. }
  616. // Token: 0x04000015 RID: 21
  617. private readonly Grid mock;
  618. // Token: 0x04000016 RID: 22
  619. private readonly SystemDropShadowChrome request;
  620. // Token: 0x04000017 RID: 23
  621. private readonly Border dic;
  622. // Token: 0x04000018 RID: 24
  623. private TextBlock _Helper;
  624. // Token: 0x04000019 RID: 25
  625. private Path m_Issuer;
  626. // Token: 0x0400001A RID: 26
  627. public int indexer;
  628. // Token: 0x0400001B RID: 27
  629. public static readonly DependencyProperty interpreter = DependencyProperty.Register("Title", typeof(string), typeof(MyCard), new PropertyMetadata(""));
  630. // Token: 0x0400001C RID: 28
  631. private bool serializer;
  632. // Token: 0x0400001D RID: 29
  633. [CompilerGenerated]
  634. private bool watcher;
  635. // Token: 0x0400001E RID: 30
  636. [CompilerGenerated]
  637. private bool system;
  638. // Token: 0x0400001F RID: 31
  639. private bool _Tag;
  640. // Token: 0x04000020 RID: 32
  641. private double _Observer;
  642. // Token: 0x04000021 RID: 33
  643. public object _Stub;
  644. // Token: 0x04000022 RID: 34
  645. [CompilerGenerated]
  646. private bool m_Rules;
  647. // Token: 0x04000023 RID: 35
  648. [CompilerGenerated]
  649. private int @ref;
  650. // Token: 0x04000024 RID: 36
  651. private bool decorator;
  652. // Token: 0x04000025 RID: 37
  653. [CompilerGenerated]
  654. private bool instance;
  655. // Token: 0x04000026 RID: 38
  656. private bool callback;
  657. // Token: 0x04000027 RID: 39
  658. [CompilerGenerated]
  659. private MyCard.PreviewSwapEventHandler template;
  660. // Token: 0x04000028 RID: 40
  661. [CompilerGenerated]
  662. private MyCard.SwapEventHandler method;
  663. // Token: 0x0200001D RID: 29
  664. // (Invoke) Token: 0x060000CD RID: 205
  665. public delegate void PreviewSwapEventHandler(object sender, ModBase.RouteEventArgs e);
  666. // Token: 0x0200001E RID: 30
  667. // (Invoke) Token: 0x060000D2 RID: 210
  668. public delegate void SwapEventHandler(object sender, ModBase.RouteEventArgs e);
  669. }
  670. }