PropMyItem.cs 100 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Text.RegularExpressions;
  5. using UnityEngine;
  6. using UnityEngine.SceneManagement;
  7. using UnityInjector;
  8. using UnityInjector.Attributes;
  9. using wf;
  10. namespace COM3D2.PropMyItem.Plugin
  11. {
  12. // Token: 0x0200000A RID: 10
  13. [PluginFilter("COM3D2x64")]
  14. [PluginFilter("COM3D2x86")]
  15. [PluginFilter("COM3D2VRx64")]
  16. [PluginFilter("COM3D2OHx86")]
  17. [PluginFilter("COM3D2OHx64")]
  18. [PluginFilter("COM3D2OHVRx64")]
  19. [PluginName("PropMyItem")]
  20. [PluginVersion("2.3.0.0")]
  21. public class PropMyItem : PluginBase
  22. {
  23. // Token: 0x0600002B RID: 43 RVA: 0x000030EC File Offset: 0x000012EC
  24. public PropMyItem()
  25. {
  26. this._folders.Add(new PropMyItem.FolderMenu("頭", new string[]
  27. {
  28. "顔",
  29. "眉",
  30. "目",
  31. "目ハイライト",
  32. "ほくろ",
  33. "唇",
  34. "歯"
  35. }));
  36. this._folders.Add(new PropMyItem.FolderMenu("髪", new string[]
  37. {
  38. "前髪",
  39. "後髪",
  40. "横髪",
  41. "エクステ髪",
  42. "アホ毛"
  43. }));
  44. this._folders.Add(new PropMyItem.FolderMenu("身体", new string[]
  45. {
  46. "肌",
  47. "乳首",
  48. "タトゥー",
  49. "アンダーヘア",
  50. "ボディ"
  51. }));
  52. this._folders.Add(new PropMyItem.FolderMenu("服装", new string[]
  53. {
  54. "帽子",
  55. "ヘッドドレス",
  56. "トップス",
  57. "ボトムス",
  58. "ワンピース",
  59. "水着",
  60. "ブラジャー",
  61. "パンツ",
  62. "靴下",
  63. "靴"
  64. }));
  65. this._folders.Add(new PropMyItem.FolderMenu("アクセサリ", new string[]
  66. {
  67. " 前髪 ",
  68. "メガネ",
  69. "アイマスク",
  70. "鼻",
  71. "耳",
  72. "手袋",
  73. "ネックレス",
  74. "チョーカー",
  75. "リボン",
  76. "\u3000乳首\u3000",
  77. "腕",
  78. "へそ",
  79. "足首",
  80. "背中",
  81. "しっぽ",
  82. "前穴"
  83. }));
  84. this._folders.Add(new PropMyItem.FolderMenu("セット", new string[]
  85. {
  86. "メイド服",
  87. "コスチューム",
  88. "下着"
  89. }));
  90. this._folders.Add(new PropMyItem.FolderMenu("プリセット", new string[]
  91. {
  92. "服 / 身体",
  93. "服",
  94. "身体"
  95. }));
  96. this._folders.Add(new PropMyItem.FolderMenu("全て", new string[0]));
  97. this._folders.Add(new PropMyItem.FolderMenu("選択中", new string[0]));
  98. this._categoryMPNDic.Add("顔", MPN.head);
  99. this._categoryMPNDic.Add("眉", MPN.folder_mayu);
  100. this._categoryMPNDic.Add("目", MPN.folder_eye);
  101. this._categoryMPNDic.Add("目ハイライト", MPN.eye_hi);
  102. this._categoryMPNDic.Add("ほくろ", MPN.hokuro);
  103. this._categoryMPNDic.Add("唇", MPN.lip);
  104. this._categoryMPNDic.Add("歯", MPN.accha);
  105. this._categoryMPNDic.Add("前髪", MPN.hairf);
  106. this._categoryMPNDic.Add("後髪", MPN.hairr);
  107. this._categoryMPNDic.Add("横髪", MPN.hairs);
  108. this._categoryMPNDic.Add("エクステ髪", MPN.hairt);
  109. this._categoryMPNDic.Add("アホ毛", MPN.hairaho);
  110. this._categoryMPNDic.Add("肌", MPN.folder_skin);
  111. this._categoryMPNDic.Add("乳首", MPN.chikubi);
  112. this._categoryMPNDic.Add("タトゥー", MPN.acctatoo);
  113. this._categoryMPNDic.Add("アンダーヘア", MPN.folder_underhair);
  114. this._categoryMPNDic.Add("ボディ", MPN.body);
  115. this._categoryMPNDic.Add("帽子", MPN.acchat);
  116. this._categoryMPNDic.Add("ヘッドドレス", MPN.headset);
  117. this._categoryMPNDic.Add("トップス", MPN.wear);
  118. this._categoryMPNDic.Add("ボトムス", MPN.skirt);
  119. this._categoryMPNDic.Add("ワンピース", MPN.onepiece);
  120. this._categoryMPNDic.Add("水着", MPN.mizugi);
  121. this._categoryMPNDic.Add("ブラジャー", MPN.bra);
  122. this._categoryMPNDic.Add("パンツ", MPN.panz);
  123. this._categoryMPNDic.Add("靴下", MPN.stkg);
  124. this._categoryMPNDic.Add("靴", MPN.shoes);
  125. this._categoryMPNDic.Add(" 前髪 ", MPN.acckami);
  126. this._categoryMPNDic.Add("メガネ", MPN.megane);
  127. this._categoryMPNDic.Add("アイマスク", MPN.acchead);
  128. this._categoryMPNDic.Add("鼻", MPN.acchana);
  129. this._categoryMPNDic.Add("耳", MPN.accmimi);
  130. this._categoryMPNDic.Add("手袋", MPN.glove);
  131. this._categoryMPNDic.Add("ネックレス", MPN.acckubi);
  132. this._categoryMPNDic.Add("チョーカー", MPN.acckubiwa);
  133. this._categoryMPNDic.Add("リボン", MPN.acckamisub);
  134. this._categoryMPNDic.Add("\u3000乳首\u3000", MPN.accnip);
  135. this._categoryMPNDic.Add("腕", MPN.accude);
  136. this._categoryMPNDic.Add("へそ", MPN.accheso);
  137. this._categoryMPNDic.Add("足首", MPN.accashi);
  138. this._categoryMPNDic.Add("背中", MPN.accsenaka);
  139. this._categoryMPNDic.Add("しっぽ", MPN.accshippo);
  140. this._categoryMPNDic.Add("前穴", MPN.accxxx);
  141. this._categoryMPNDic.Add("メイド服", MPN.set_maidwear);
  142. this._categoryMPNDic.Add("コスチューム", MPN.set_mywear);
  143. this._categoryMPNDic.Add("下着", MPN.set_underwear);
  144. foreach (string text in this._categoryMPNDic.Keys)
  145. {
  146. this._menuMPNCategoryDic.Add(this._categoryMPNDic[text], text);
  147. }
  148. foreach (object obj in Enum.GetValues(typeof(MPN)))
  149. {
  150. MPN key = (MPN)obj;
  151. this._mpnMenuListDictionary.Add(key, new List<MenuInfo>());
  152. }
  153. }
  154. // Token: 0x0600002C RID: 44 RVA: 0x00003808 File Offset: 0x00001A08
  155. public void Awake()
  156. {
  157. try
  158. {
  159. SceneManager.sceneLoaded += this.OnSceneLoaded;
  160. }
  161. catch (Exception)
  162. {
  163. }
  164. }
  165. // Token: 0x0600002D RID: 45 RVA: 0x0000383C File Offset: 0x00001A3C
  166. private void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode)
  167. {
  168. this._sceneLevel = scene.buildIndex;
  169. }
  170. // Token: 0x0600002E RID: 46 RVA: 0x0000384C File Offset: 0x00001A4C
  171. public void Update()
  172. {
  173. try
  174. {
  175. this._autoShoesHide.Update();
  176. if (this._isPluginKeyChange && Event.current.type == EventType.KeyUp)
  177. {
  178. bool control = Event.current.control;
  179. bool alt = Event.current.alt;
  180. bool shift = Event.current.shift;
  181. string text = Event.current.keyCode.ToString();
  182. if (!string.IsNullOrEmpty(text))
  183. {
  184. UserConfig.Instance.IsControlKey = control;
  185. UserConfig.Instance.IsAltKey = alt;
  186. UserConfig.Instance.IsShiftKey = shift;
  187. UserConfig.Instance.GuiVisibleKey = text.ToLower();
  188. UserConfig.Instance.Save();
  189. this._isPluginKeyChange = false;
  190. return;
  191. }
  192. }
  193. KeyCode keyCode = KeyCode.I;
  194. if (EnumUtil.TryParse<KeyCode>(UserConfig.Instance.GuiVisibleKey, true, out keyCode) && UserConfig.Instance.IsControlKey == Event.current.control && UserConfig.Instance.IsAltKey == Event.current.alt && UserConfig.Instance.IsShiftKey == Event.current.shift && Event.current.keyCode == keyCode && Event.current.type == EventType.KeyUp)
  195. {
  196. this._isVisible = !this._isVisible;
  197. this._isMinimum = !this._isVisible;
  198. }
  199. else
  200. {
  201. if (this._isVisible && (!this._isStartUpLoadead || this._isForcedInit))
  202. {
  203. this._isStartUpLoadead = true;
  204. this.LoadMenuFiles(this._isForcedInit);
  205. this._isForcedInit = false;
  206. }
  207. if (this._isVisible && this._windowRect.Contains(new Vector2(Input.mousePosition.x, (float)Screen.height - Input.mousePosition.y)))
  208. {
  209. GameMain.Instance.MainCamera.SetControl(false);
  210. if (Event.current.type != EventType.KeyDown && Event.current.type != EventType.KeyUp)
  211. {
  212. Input.ResetInputAxes();
  213. }
  214. }
  215. else if (!GameMain.Instance.MainCamera.GetControl())
  216. {
  217. GameMain.Instance.MainCamera.SetControl(true);
  218. }
  219. }
  220. }
  221. catch (Exception)
  222. {
  223. }
  224. }
  225. // Token: 0x0600002F RID: 47 RVA: 0x00003A88 File Offset: 0x00001C88
  226. public void OnGUI()
  227. {
  228. if (!this._isVisible)
  229. {
  230. return;
  231. }
  232. if (this._isShowSetting)
  233. {
  234. this._windowRect = GUI.Window(4511, this._windowRect, new GUI.WindowFunction(this.GuiSettingFunc), "PropMyItem", GuiStyles.WindowStyle);
  235. return;
  236. }
  237. if (this._isShowFilterSetting)
  238. {
  239. this._windowRect = GUI.Window(4511, this._windowRect, new GUI.WindowFunction(this.GuiFilterSettingFunc), "PropMyItem", GuiStyles.WindowStyle);
  240. return;
  241. }
  242. this._windowRect = GUI.Window(4511, this._windowRect, new GUI.WindowFunction(this.GuiFunc), "PropMyItem", GuiStyles.WindowStyle);
  243. }
  244. // Token: 0x06000030 RID: 48 RVA: 0x00003B40 File Offset: 0x00001D40
  245. private void GuiSettingFunc(int windowID)
  246. {
  247. this._windowRect.width = 300f;
  248. float num = GuiStyles.ControlHeight + GuiStyles.Margin;
  249. float margin = GuiStyles.Margin;
  250. float width = this._windowRect.width - GuiStyles.Margin * 2f;
  251. string text = "キー入力待機中...";
  252. if (!this._isPluginKeyChange)
  253. {
  254. List<string> list = new List<string>();
  255. if (UserConfig.Instance.IsControlKey)
  256. {
  257. list.Add("Ctrl");
  258. }
  259. if (UserConfig.Instance.IsShiftKey)
  260. {
  261. list.Add("Shift");
  262. }
  263. if (UserConfig.Instance.IsAltKey)
  264. {
  265. list.Add("Alt");
  266. }
  267. list.Add(UserConfig.Instance.GuiVisibleKey.ToUpper());
  268. text = "表示キー : ";
  269. for (int i = 0; i < list.Count; i++)
  270. {
  271. text += list[i];
  272. if (i != list.Count - 1)
  273. {
  274. text += " + ";
  275. }
  276. }
  277. }
  278. GUI.enabled = !this._isPluginKeyChange;
  279. if (GUI.Button(new Rect(margin, num, width, GuiStyles.ControlHeight), text, GuiStyles.ButtonStyle))
  280. {
  281. this._isPluginKeyChange = !this._isPluginKeyChange;
  282. }
  283. GUI.enabled = true;
  284. num += GuiStyles.ControlHeight + GuiStyles.Margin + GuiStyles.Margin;
  285. bool flag = UserConfig.Instance.IsAutoShoesHide;
  286. flag = GUI.Toggle(new Rect(margin, num, width, GuiStyles.ControlHeight), flag, "室内で自動的に靴を脱ぐ ", GuiStyles.ToggleStyle);
  287. if (flag != UserConfig.Instance.IsAutoShoesHide)
  288. {
  289. UserConfig.Instance.IsAutoShoesHide = flag;
  290. UserConfig.Instance.Save();
  291. }
  292. num += GuiStyles.ControlHeight + GuiStyles.Margin + GuiStyles.Margin;
  293. bool flag2 = UserConfig.Instance.IsOutputInfoLog;
  294. flag2 = GUI.Toggle(new Rect(margin, num, width, GuiStyles.ControlHeight), flag2, "アイテム変更時のログ出力", GuiStyles.ToggleStyle);
  295. if (flag2 != UserConfig.Instance.IsOutputInfoLog)
  296. {
  297. UserConfig.Instance.IsOutputInfoLog = flag2;
  298. UserConfig.Instance.Save();
  299. }
  300. num += GuiStyles.ControlHeight + GuiStyles.Margin + GuiStyles.Margin;
  301. if (GUI.Button(new Rect(margin, num, width, GuiStyles.ControlHeight), "Menu/Mod 再読み込み", GuiStyles.ButtonStyle))
  302. {
  303. this._isShowSetting = false;
  304. this._isPluginKeyChange = false;
  305. this._isForcedInit = true;
  306. }
  307. num += GuiStyles.ControlHeight + GuiStyles.Margin + GuiStyles.Margin;
  308. if (GUI.Button(new Rect(margin, num, width, GuiStyles.ControlHeight), "戻る", GuiStyles.ButtonStyle))
  309. {
  310. this._isShowSetting = false;
  311. this._isPluginKeyChange = false;
  312. }
  313. num += GuiStyles.ControlHeight + GuiStyles.Margin;
  314. this._windowRect.height = num;
  315. GUI.DragWindow();
  316. }
  317. // Token: 0x06000031 RID: 49 RVA: 0x00003DF0 File Offset: 0x00001FF0
  318. private void GuiFilterSettingFunc(int windowID)
  319. {
  320. float num = this._windowRect.width - GuiStyles.Margin * 2f;
  321. float num2 = this._windowRect.height - GuiStyles.Margin * 2f;
  322. float num3 = GuiStyles.ControlHeight + GuiStyles.Margin;
  323. float num4 = GuiStyles.Margin;
  324. string text = "フィルタ文字列:";
  325. GUI.Label(new Rect(num4, num3, (float)(GuiStyles.FontSize * text.Length), GuiStyles.ControlHeight), text, GuiStyles.LabelStyle);
  326. num4 += (float)(GuiStyles.FontSize * text.Length) + GuiStyles.Margin;
  327. float num5 = num - num4 - GuiStyles.Margin - (float)(GuiStyles.FontSize * 4);
  328. this._selectedFilterText = GUI.TextField(new Rect(num4, num3, num5, GuiStyles.ControlHeight), this._selectedFilterText, GuiStyles.TextFieldStyle);
  329. num4 += num5 + GuiStyles.Margin;
  330. GUI.enabled = !string.IsNullOrEmpty(this._selectedFilterText);
  331. if (GUI.Button(new Rect(num4, num3, (float)(GuiStyles.FontSize * 4), GuiStyles.ControlHeight), "登録", GuiStyles.ButtonStyle))
  332. {
  333. UserConfig.Instance.FilterTextList.Add(this._selectedFilterText);
  334. UserConfig.Instance.FilterTextList.Sort();
  335. UserConfig.Instance.Save();
  336. this._isShowFilterSetting = false;
  337. }
  338. GUI.enabled = true;
  339. num4 = GuiStyles.Margin;
  340. num3 += GuiStyles.ControlHeight + GuiStyles.Margin;
  341. List<string> filterTextList = UserConfig.Instance.FilterTextList;
  342. int count = filterTextList.Count;
  343. Rect position = new Rect(num4, num3, num, num2 - num3 - GuiStyles.ControlHeight - GuiStyles.Margin * 2f);
  344. Rect viewRect = new Rect(0f, 0f, num - GuiStyles.ScrollWidth, (float)count * (GuiStyles.ControlHeight + GuiStyles.Margin));
  345. this._scrollFilterPosition = GUI.BeginScrollView(position, this._scrollFilterPosition, viewRect);
  346. Rect position2 = new Rect(GuiStyles.Margin, 0f, viewRect.width - GuiStyles.Margin - 50f, GuiStyles.ControlHeight);
  347. Rect position3 = new Rect(position2.x + position2.width + GuiStyles.Margin, 0f, 50f, GuiStyles.ControlHeight);
  348. for (int i = 0; i < filterTextList.Count; i++)
  349. {
  350. position2.y = (float)i * (GuiStyles.ControlHeight + GuiStyles.Margin);
  351. position3.y = position2.y;
  352. if (GUI.Button(position2, filterTextList[i], GuiStyles.ButtonStyle))
  353. {
  354. this._selectedFilterText = filterTextList[i];
  355. this._isShowFilterSetting = false;
  356. }
  357. if (GUI.Button(position3, "x", GuiStyles.ButtonStyle))
  358. {
  359. UserConfig.Instance.FilterTextList.RemoveAt(i);
  360. UserConfig.Instance.Save();
  361. }
  362. }
  363. GUI.EndScrollView();
  364. num3 = num2 - GuiStyles.ControlHeight - GuiStyles.Margin * 2f;
  365. if (GUI.Button(new Rect(num4, num3, num, GuiStyles.ControlHeight), "戻る", GuiStyles.ButtonStyle))
  366. {
  367. this._isShowSetting = false;
  368. this._isPluginKeyChange = false;
  369. this._isShowFilterSetting = false;
  370. }
  371. num3 += GuiStyles.ControlHeight + GuiStyles.Margin;
  372. GUI.DragWindow();
  373. }
  374. // Token: 0x06000032 RID: 50 RVA: 0x0000410C File Offset: 0x0000230C
  375. private void GuiFunc(int windowID)
  376. {
  377. try
  378. {
  379. string text = this._isMinimum ? "" : "最小化";
  380. Rect position = new Rect(GuiStyles.Margin, 0f, (float)(GuiStyles.FontSize * (text.Length + 2)), GuiStyles.ControlHeight);
  381. this._isMinimum = GUI.Toggle(position, this._isMinimum, text, GuiStyles.ToggleStyle);
  382. if (this._isMinimum)
  383. {
  384. this._windowRect.width = 100f;
  385. this._windowRect.height = GuiStyles.ControlHeight;
  386. }
  387. else
  388. {
  389. this._windowRect.height = 570f;
  390. float yPos = GuiStyles.ControlHeight + GuiStyles.Margin;
  391. float margin = GuiStyles.Margin;
  392. this.guiSelectedMaid(ref margin, ref yPos);
  393. this.guiSelectedCategoryFolder(ref margin, yPos, this._windowRect.height);
  394. this.guiSelectedCategory(ref margin, yPos, this._windowRect.height);
  395. if (this._folders[this._selectedFolder].Name == "プリセット")
  396. {
  397. this.guiSelectedPreset(ref margin, yPos, this._windowRect.height);
  398. }
  399. else if (this._folders[this._selectedFolder].Name == "Debug")
  400. {
  401. this.guiDebug(ref margin, yPos, this._windowRect.height);
  402. }
  403. else
  404. {
  405. if (this._selectedMPN != MPN.null_mpn || this._folders[this._selectedFolder].Name == "全て" || this._folders[this._selectedFolder].Name == "選択中")
  406. {
  407. this.guiSelectedItemFilter(margin, yPos);
  408. this.guiSelectedItem(ref margin, yPos, this._windowRect.height);
  409. }
  410. this.guiSelectedColorSet(ref margin, ref yPos);
  411. this.guiSelectedMugenColor(ref margin, ref yPos);
  412. }
  413. this._windowRect.width = margin;
  414. }
  415. }
  416. catch (Exception ex)
  417. {
  418. CommonUtil.Log(ex.StackTrace);
  419. }
  420. finally
  421. {
  422. GUI.DragWindow();
  423. }
  424. }
  425. // Token: 0x06000033 RID: 51 RVA: 0x00004330 File Offset: 0x00002530
  426. private void guiSelectedMaid(ref float xPos, ref float yPos)
  427. {
  428. try
  429. {
  430. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  431. if (visibleMaidList.Count < 1)
  432. {
  433. this._selectedMaid = -1;
  434. }
  435. else
  436. {
  437. if (this._selectedMaid >= visibleMaidList.Count || this._selectedMaid < 0)
  438. {
  439. this._selectedMaid = 0;
  440. }
  441. string text = visibleMaidList[this._selectedMaid].status.isFirstNameCall ? visibleMaidList[this._selectedMaid].status.firstName : visibleMaidList[this._selectedMaid].status.lastName;
  442. Rect position = new Rect(xPos + 30f, 8f, 50f, 75f);
  443. Rect position2 = new Rect(xPos + 85f, yPos, (float)(10 * GuiStyles.FontSize), GuiStyles.ControlHeight);
  444. Rect position3 = new Rect(xPos, yPos + 24f, (float)(2 * GuiStyles.FontSize), GuiStyles.ControlHeight);
  445. Rect position4 = new Rect(xPos + 85f, yPos + 24f, (float)(2 * GuiStyles.FontSize), GuiStyles.ControlHeight);
  446. GUI.Label(position, visibleMaidList[this._selectedMaid].GetThumIcon(), GuiStyles.LabelStyle);
  447. GuiStyles.LabelStyle.alignment = TextAnchor.MiddleLeft;
  448. GUI.Label(position2, text, GuiStyles.LabelStyle);
  449. GuiStyles.LabelStyle.alignment = TextAnchor.MiddleCenter;
  450. if (GUI.Button(position3, "<", GuiStyles.ButtonStyle))
  451. {
  452. this._selectedMaid = ((this._selectedMaid == 0) ? (visibleMaidList.Count - 1) : (this._selectedMaid - 1));
  453. }
  454. if (GUI.Button(position4, ">", GuiStyles.ButtonStyle))
  455. {
  456. this._selectedMaid = ((this._selectedMaid == visibleMaidList.Count - 1) ? 0 : (this._selectedMaid + 1));
  457. }
  458. }
  459. }
  460. finally
  461. {
  462. yPos += 50f;
  463. }
  464. }
  465. // Token: 0x06000034 RID: 52 RVA: 0x00004508 File Offset: 0x00002708
  466. private void updateMaidEyePosY(Maid maid, float value)
  467. {
  468. float num = 5000f;
  469. float num2 = maid.body0.trsEyeL.localPosition.y * num;
  470. if (value < 0f)
  471. {
  472. value = 0f;
  473. }
  474. Vector3 localPosition = maid.body0.trsEyeL.localPosition;
  475. Vector3 localPosition2 = maid.body0.trsEyeR.localPosition;
  476. maid.body0.trsEyeL.localPosition = new Vector3(localPosition.x, System.Math.Max((num2 + value) / num, 0f), localPosition.z);
  477. maid.body0.trsEyeR.localPosition = new Vector3(localPosition.x, System.Math.Min((num2 - value) / num, 0f), localPosition.z);
  478. }
  479. // Token: 0x06000035 RID: 53 RVA: 0x000045C4 File Offset: 0x000027C4
  480. private void guiSelectedCategoryFolder(ref float xPos, float yPos, float windowHeight)
  481. {
  482. float num = (float)(GuiStyles.FontSize * 6);
  483. float num2 = (float)((double)GuiStyles.ControlHeight * 1.5);
  484. for (int i = 0; i < this._folders.Count; i++)
  485. {
  486. if (this._folders[i].Name == "全て")
  487. {
  488. yPos += GuiStyles.Margin * 2f;
  489. }
  490. Rect position = new Rect(xPos, yPos + (num2 + GuiStyles.Margin) * (float)i, num, num2);
  491. GUI.enabled = (this._selectedFolder != i);
  492. if (GUI.Button(position, this._folders[i].Name, GuiStyles.ButtonStyle))
  493. {
  494. this._selectedFolder = i;
  495. this._selectedMPN = MPN.null_mpn;
  496. this._selectedCategory = -1;
  497. this._selectedItem = null;
  498. this._selectedVariationItem = null;
  499. }
  500. GUI.enabled = true;
  501. }
  502. if (GUI.Button(new Rect(xPos, windowHeight - num2 - GuiStyles.Margin, num, num2), "設定", GuiStyles.ButtonStyle))
  503. {
  504. this._isShowSetting = true;
  505. }
  506. xPos += num + GuiStyles.Margin;
  507. }
  508. // Token: 0x06000036 RID: 54 RVA: 0x000046D8 File Offset: 0x000028D8
  509. private void nextPattern(Maid maid, MPN mpn, string basename, string filename, bool isPrev = false)
  510. {
  511. List<MenuInfo> list = null;
  512. if (!this._mpnMenuListDictionary.TryGetValue(mpn, out list))
  513. {
  514. return;
  515. }
  516. foreach (MenuInfo menuInfo in list)
  517. {
  518. if (!(menuInfo.FileName.ToLower() != basename))
  519. {
  520. if (menuInfo.IsColorLock)
  521. {
  522. break;
  523. }
  524. List<MenuInfo> variationMenuList = menuInfo.VariationMenuList;
  525. if (variationMenuList == null)
  526. {
  527. break;
  528. }
  529. if (variationMenuList.Count < 2)
  530. {
  531. break;
  532. }
  533. for (int i = 0; i < variationMenuList.Count; i++)
  534. {
  535. if (variationMenuList[i].FileName.ToLower() == filename)
  536. {
  537. string fileName = variationMenuList[0].FileName;
  538. if (!isPrev)
  539. {
  540. if (i < variationMenuList.Count - 1)
  541. {
  542. fileName = variationMenuList[i + 1].FileName;
  543. }
  544. }
  545. else if (i == 0)
  546. {
  547. fileName = variationMenuList[variationMenuList.Count - 1].FileName;
  548. }
  549. else
  550. {
  551. fileName = variationMenuList[i - 1].FileName;
  552. }
  553. maid.SetProp(mpn, fileName, fileName.GetHashCode(), false, false);
  554. maid.AllProcProp();
  555. if (UserConfig.Instance.IsOutputInfoLog)
  556. {
  557. Console.WriteLine("PropMyItem:change item = " + fileName);
  558. }
  559. return;
  560. }
  561. }
  562. }
  563. }
  564. }
  565. // Token: 0x06000037 RID: 55 RVA: 0x00004850 File Offset: 0x00002A50
  566. private void guiSelectedCategory(ref float xPos, float yPos, float windowHeight)
  567. {
  568. int num = this._folders[this._selectedFolder].Categories.Length;
  569. if (num > 0)
  570. {
  571. float width = (float)(7 * GuiStyles.FontSize);
  572. float num2 = GuiStyles.ControlHeight * 1.5f;
  573. Rect viewRect = new Rect(0f, 0f, width, (num2 + GuiStyles.Margin) * (float)num);
  574. Rect position = new Rect(xPos, yPos, viewRect.width + GuiStyles.ScrollWidth, windowHeight - yPos - GuiStyles.Margin);
  575. this._categoryScrollPosition = GUI.BeginScrollView(position, this._categoryScrollPosition, viewRect);
  576. for (int i = 0; i < num; i++)
  577. {
  578. Rect position2 = new Rect(0f, (num2 + GuiStyles.Margin) * (float)i, width, num2);
  579. GUI.enabled = (this._selectedCategory != i);
  580. if (GUI.Button(position2, this._folders[this._selectedFolder].Categories[i], GuiStyles.ButtonStyle))
  581. {
  582. this._selectedPresetList.Clear();
  583. this._selectedItem = null;
  584. this._selectedVariationItem = null;
  585. this._scrollPosition.y = 0f;
  586. MPN selectedMPN = MPN.head;
  587. if (this._categoryMPNDic.TryGetValue(this._folders[this._selectedFolder].Categories[i], out selectedMPN))
  588. {
  589. this._selectedMPN = selectedMPN;
  590. }
  591. else
  592. {
  593. if (this._folders[this._selectedFolder].Name == "プリセット")
  594. {
  595. List<CharacterMgr.Preset> list = GameMain.Instance.CharacterMgr.PresetListLoad();
  596. this._selectedPresetType = CharacterMgr.PresetType.All;
  597. if (this._folders[this._selectedFolder].Categories[i] == "服")
  598. {
  599. this._selectedPresetType = CharacterMgr.PresetType.Wear;
  600. }
  601. else if (this._folders[this._selectedFolder].Categories[i] == "身体")
  602. {
  603. this._selectedPresetType = CharacterMgr.PresetType.Body;
  604. }
  605. foreach (CharacterMgr.Preset preset in list)
  606. {
  607. if (preset.ePreType == this._selectedPresetType)
  608. {
  609. this._selectedPresetList.Add(preset);
  610. }
  611. }
  612. }
  613. this._selectedMPN = MPN.null_mpn;
  614. }
  615. this._selectedCategory = i;
  616. }
  617. GUI.enabled = true;
  618. }
  619. GUI.EndScrollView();
  620. xPos += position.width + GuiStyles.Margin;
  621. }
  622. }
  623. // Token: 0x06000038 RID: 56 RVA: 0x00004AC4 File Offset: 0x00002CC4
  624. private static int CompareCreateTime(string fileX, string fileY)
  625. {
  626. return DateTime.Compare(File.GetLastWriteTime(fileX), File.GetCreationTime(fileY));
  627. }
  628. // Token: 0x06000039 RID: 57 RVA: 0x00004AD8 File Offset: 0x00002CD8
  629. private void guiDebug(ref float xPos, float yPos, float windowHeight)
  630. {
  631. float num = 200f;
  632. if (GUI.Button(new Rect(xPos, yPos, num, GuiStyles.ControlHeight), "プリセット保存", GuiStyles.ButtonStyle))
  633. {
  634. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  635. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  636. {
  637. Maid f_maid = visibleMaidList[this._selectedMaid];
  638. GameMain.Instance.CharacterMgr.PresetSave(f_maid, CharacterMgr.PresetType.All);
  639. }
  640. }
  641. yPos += GuiStyles.ControlHeight + GuiStyles.Margin + GuiStyles.Margin;
  642. xPos += num + GuiStyles.Margin;
  643. }
  644. // Token: 0x0600003A RID: 58 RVA: 0x00004B6C File Offset: 0x00002D6C
  645. private void guiSelectedPreset(ref float xPos, float yPos, float windowHeight)
  646. {
  647. float num = 300f;
  648. float num2 = 4f;
  649. float num3 = num / num2;
  650. float num4 = (float)((double)num3 * 1.5);
  651. if (this._selectedPresetList.Count > 0)
  652. {
  653. int count = this._selectedPresetList.Count;
  654. int num5 = ((float)count % num2 == 0f) ? 0 : 1;
  655. Rect viewRect = new Rect(0f, 0f, num, (float)((int)((float)count / num2) + num5) * num4);
  656. Rect position = new Rect(xPos, yPos, viewRect.width + GuiStyles.ScrollWidth, windowHeight - yPos - (float)GuiStyles.FontSize);
  657. this._scrollPosition = GUI.BeginScrollView(position, this._scrollPosition, viewRect);
  658. new List<int>();
  659. new Rect(0f, 0f, num3, num4);
  660. for (int i = 0; i < count; i++)
  661. {
  662. Rect position2 = new Rect(num3 * ((float)i % num2), num4 * (float)((int)((float)i / num2)), num3, num4);
  663. new Rect(num3 * ((float)i % num2), num4 * (float)((int)((float)i / num2)), 20f, 20f);
  664. if (Event.current.type == EventType.Repaint)
  665. {
  666. if (GUI.Button(position2, this._selectedPresetList[i].texThum))
  667. {
  668. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  669. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  670. {
  671. Maid maid = visibleMaidList[this._selectedMaid];
  672. MPN[] array = new MPN[]
  673. {
  674. MPN.megane,
  675. MPN.acckami,
  676. MPN.acckamisub,
  677. MPN.hairt,
  678. MPN.headset,
  679. MPN.acchat
  680. };
  681. this.presetRestoreDic_.Clear();
  682. foreach (MPN mpn in array)
  683. {
  684. MaidProp prop = maid.GetProp(mpn);
  685. this.presetRestoreDic_.Add(mpn, prop.strFileName);
  686. }
  687. GameMain.Instance.CharacterMgr.PresetSet(maid, this._selectedPresetList[i]);
  688. }
  689. }
  690. }
  691. else if (GUI.Button(position2, this._selectedPresetList[i].texThum))
  692. {
  693. List<Maid> visibleMaidList2 = CommonUtil.GetVisibleMaidList();
  694. if (this._selectedMaid >= 0 && visibleMaidList2.Count - 1 >= this._selectedMaid)
  695. {
  696. Maid maid2 = visibleMaidList2[this._selectedMaid];
  697. MPN[] array3 = new MPN[]
  698. {
  699. MPN.megane,
  700. MPN.acckami,
  701. MPN.acckamisub,
  702. MPN.hairt,
  703. MPN.headset,
  704. MPN.acchat
  705. };
  706. this.presetRestoreDic_.Clear();
  707. foreach (MPN mpn2 in array3)
  708. {
  709. MaidProp prop2 = maid2.GetProp(mpn2);
  710. this.presetRestoreDic_.Add(mpn2, prop2.strFileName);
  711. }
  712. GameMain.Instance.CharacterMgr.PresetSet(maid2, this._selectedPresetList[i]);
  713. }
  714. }
  715. }
  716. GUI.EndScrollView();
  717. xPos += num + GuiStyles.ScrollWidth + GuiStyles.Margin;
  718. }
  719. }
  720. // Token: 0x0600003B RID: 59 RVA: 0x00004E68 File Offset: 0x00003068
  721. private void guiSelectedItemFilter(float xPos, float yPos)
  722. {
  723. float num = xPos;
  724. float num2 = yPos - GuiStyles.ControlHeight - GuiStyles.Margin;
  725. string[] array = new string[]
  726. {
  727. "全て",
  728. "製品",
  729. "MOD"
  730. };
  731. int num3 = 112;
  732. if (this._folders[this._selectedFolder].Name == "全て" || this._folders[this._selectedFolder].Name == "選択中")
  733. {
  734. num += 40f;
  735. }
  736. else
  737. {
  738. num3 += 40;
  739. }
  740. GUI.Label(new Rect(num, num2, (float)(GuiStyles.FontSize * 6), GuiStyles.ControlHeight), "フィルタ:", GuiStyles.LabelStyle);
  741. num += (float)(GuiStyles.FontSize * 5) + GuiStyles.Margin;
  742. Rect position = new Rect(num, num2 - GuiStyles.ControlHeight, (float)(GuiStyles.FontSize * 7), GuiStyles.ControlHeight);
  743. this._isFavFilter = GUI.Toggle(position, this._isFavFilter, "お気に入り", GuiStyles.ToggleStyle);
  744. Rect position2 = new Rect(num, num2, (float)(GuiStyles.FontSize * 4), GuiStyles.ControlHeight);
  745. if (GUI.Button(position2, array[this._selectedFilter], GuiStyles.ButtonStyle))
  746. {
  747. this._selectedFilter = ((this._selectedFilter == 2) ? 0 : (this._selectedFilter + 1));
  748. this._scrollPosition.y = 0f;
  749. }
  750. num += (float)(GuiStyles.FontSize * 4) + GuiStyles.Margin;
  751. Rect position3 = new Rect(num, num2, (float)num3, GuiStyles.ControlHeight);
  752. this._selectedFilterText = GUI.TextField(position3, this._selectedFilterText, GuiStyles.TextFieldStyle);
  753. num += (float)(num3 + 4);
  754. position2.Set(num, num2, (float)(GuiStyles.FontSize * 2), GuiStyles.ControlHeight);
  755. if (GUI.Button(position2, "▽", GuiStyles.ButtonStyle))
  756. {
  757. this._isShowFilterSetting = true;
  758. }
  759. num += (float)(GuiStyles.FontSize * 2) + GuiStyles.Margin;
  760. position2.Set(num, num2, (float)(GuiStyles.FontSize * 2), GuiStyles.ControlHeight);
  761. if (GUI.Button(position2, "x", GuiStyles.ButtonStyle))
  762. {
  763. this._selectedFilterText = string.Empty;
  764. }
  765. }
  766. // Token: 0x0600003C RID: 60 RVA: 0x00005074 File Offset: 0x00003274
  767. private List<MenuInfo> getItemList()
  768. {
  769. List<MenuInfo> list = new List<MenuInfo>();
  770. if (this._folders[this._selectedFolder].Name == "全て")
  771. {
  772. using (Dictionary<string, MPN>.ValueCollection.Enumerator enumerator = this._categoryMPNDic.Values.GetEnumerator())
  773. {
  774. while (enumerator.MoveNext())
  775. {
  776. MPN key = enumerator.Current;
  777. List<MenuInfo> collection = null;
  778. if (this._mpnMenuListDictionary.TryGetValue(key, out collection))
  779. {
  780. list.AddRange(collection);
  781. }
  782. }
  783. return list;
  784. }
  785. }
  786. if (this._folders[this._selectedFolder].Name == "選択中")
  787. {
  788. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  789. if (this._selectedMaid < 0 || this._selectedMaid > visibleMaidList.Count - 1)
  790. {
  791. return list;
  792. }
  793. Maid maid = visibleMaidList[this._selectedMaid];
  794. using (Dictionary<string, MPN>.ValueCollection.Enumerator enumerator2 = this._categoryMPNDic.Values.GetEnumerator())
  795. {
  796. while (enumerator2.MoveNext())
  797. {
  798. MPN mpn = enumerator2.Current;
  799. if (mpn != MPN.set_maidwear && mpn != MPN.set_mywear && mpn != MPN.set_underwear)
  800. {
  801. List<MenuInfo> list2 = null;
  802. if (this._mpnMenuListDictionary.TryGetValue(mpn, out list2))
  803. {
  804. string selectedMenuFileName = CommonUtil.GetSelectedMenuFileName(new MPN?(mpn), maid);
  805. bool flag = false;
  806. foreach (MenuInfo menuInfo in list2)
  807. {
  808. if (menuInfo != null)
  809. {
  810. foreach (MenuInfo menuInfo2 in menuInfo.VariationMenuList)
  811. {
  812. if (menuInfo2.FileName.IndexOf(selectedMenuFileName, StringComparison.OrdinalIgnoreCase) == 0)
  813. {
  814. if (menuInfo2.IconName != "_I_del.tex")
  815. {
  816. list.Add(menuInfo);
  817. }
  818. flag = true;
  819. break;
  820. }
  821. }
  822. if (flag)
  823. {
  824. break;
  825. }
  826. }
  827. }
  828. }
  829. }
  830. }
  831. return list;
  832. }
  833. }
  834. this._mpnMenuListDictionary.TryGetValue(this._selectedMPN, out list);
  835. return list;
  836. }
  837. // Token: 0x0600003D RID: 61 RVA: 0x000052C0 File Offset: 0x000034C0
  838. private void guiSelectedItem(ref float xPos, float yPos, float windowHeight)
  839. {
  840. List<MenuInfo> itemList = this.getItemList();
  841. if (itemList == null || itemList.Count == 0)
  842. {
  843. return;
  844. }
  845. float num = 8f;
  846. float num2 = 20f;
  847. float num3 = 8f;
  848. float num4 = 3f;
  849. float num5 = 0f;
  850. float num6 = 0f;
  851. float num7 = num6;
  852. int num8 = itemList.Count;
  853. int num9 = 0;
  854. if (this._selectedMPN == MPN.set_maidwear || this._selectedMPN == MPN.set_mywear || this._selectedMPN == MPN.set_underwear)
  855. {
  856. num6 = 75f;
  857. num7 = num6 * 1.44f;
  858. num4 = 4f;
  859. num = 16f;
  860. num2 = 16f;
  861. num3 = 10f;
  862. }
  863. else
  864. {
  865. num6 = 60f;
  866. num7 = 60f;
  867. num4 = 5f;
  868. num = 18f;
  869. num2 = 24f;
  870. num3 = 6f;
  871. }
  872. num5 = num6 * num4;
  873. ReadOnlyDictionary<string, bool> havePartsItems = GameMain.Instance.CharacterMgr.status.havePartsItems;
  874. for (int i = 0; i < num8; i++)
  875. {
  876. MenuInfo menuInfo = itemList[i];
  877. menuInfo.IsHave = true;
  878. if (menuInfo.IsShopTarget && havePartsItems.ContainsKey(menuInfo.FileName) && !havePartsItems[menuInfo.FileName])
  879. {
  880. num9++;
  881. menuInfo.IsHave = false;
  882. }
  883. else
  884. {
  885. if (this._selectedFilter == 1)
  886. {
  887. if (menuInfo.IsMod)
  888. {
  889. num9++;
  890. menuInfo.IsHave = false;
  891. goto IL_1DC;
  892. }
  893. }
  894. else if (this._selectedFilter == 2 && !menuInfo.IsMod)
  895. {
  896. num9++;
  897. menuInfo.IsHave = false;
  898. goto IL_1DC;
  899. }
  900. if (this._isFavFilter && !menuInfo.IsFavorite)
  901. {
  902. num9++;
  903. menuInfo.IsHave = false;
  904. }
  905. else if (!string.IsNullOrEmpty(this._selectedFilterText) && menuInfo.ItemName.IndexOf(this._selectedFilterText, StringComparison.OrdinalIgnoreCase) == -1 && menuInfo.FilePath.IndexOf(this._selectedFilterText, StringComparison.OrdinalIgnoreCase) == -1)
  906. {
  907. num9++;
  908. menuInfo.IsHave = false;
  909. }
  910. }
  911. IL_1DC:;
  912. }
  913. num8 -= num9;
  914. int num10 = ((float)num8 % num4 == 0f) ? 0 : 1;
  915. int num11 = (int)(windowHeight - yPos - (float)GuiStyles.FontSize - GuiStyles.ControlHeight);
  916. Rect viewRect = new Rect(0f, 0f, num6 * num4, (float)((int)((float)num8 / num4) + num10) * num7);
  917. if (this._folders[this._selectedFolder].Name == "選択中")
  918. {
  919. viewRect = new Rect(0f, 0f, num6 * num4, (float)((int)((float)(num8 + 5) / num4) + num10) * num7);
  920. }
  921. Rect position = new Rect(xPos, yPos + GuiStyles.ControlHeight, viewRect.width + GuiStyles.ScrollWidth, (float)num11);
  922. this._scrollPosition = GUI.BeginScrollView(position, this._scrollPosition, viewRect);
  923. new List<int>();
  924. new Rect(0f, 0f, num6, num7);
  925. GUIStyle guistyle = new GUIStyle();
  926. guistyle.alignment = TextAnchor.UpperRight;
  927. guistyle.fontSize = 10;
  928. guistyle.normal = new GUIStyleState
  929. {
  930. textColor = Color.black
  931. };
  932. GUIStyle guistyle2 = new GUIStyle("button");
  933. guistyle2.fontSize = 14;
  934. guistyle2.alignment = TextAnchor.UpperRight;
  935. guistyle2.normal.textColor = Color.white;
  936. guistyle2.hover.textColor = Color.white;
  937. guistyle2.padding = new RectOffset(0, 3, 1, 0);
  938. GUIStyle guistyle3 = new GUIStyle("button");
  939. guistyle3.fontSize = 14;
  940. guistyle3.alignment = TextAnchor.UpperRight;
  941. guistyle3.normal.textColor = Color.yellow;
  942. guistyle3.hover.textColor = Color.yellow;
  943. guistyle3.padding = new RectOffset(0, 3, 1, 0);
  944. GUIStyle guistyle4 = new GUIStyle("button");
  945. guistyle4.fontSize = 14;
  946. guistyle4.alignment = TextAnchor.UpperRight;
  947. guistyle4.normal.textColor = Color.white;
  948. guistyle4.hover.textColor = Color.white;
  949. guistyle4.padding = new RectOffset(0, 6, 1, 0);
  950. GUIStyle guistyle5 = new GUIStyle("button");
  951. guistyle5.fontSize = 14;
  952. guistyle5.alignment = TextAnchor.UpperRight;
  953. guistyle5.normal.textColor = Color.red;
  954. guistyle5.hover.textColor = Color.red;
  955. guistyle5.padding = new RectOffset(0, 6, 1, 0);
  956. Maid maid = null;
  957. string text = string.Empty;
  958. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  959. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  960. {
  961. maid = visibleMaidList[this._selectedMaid];
  962. text = CommonUtil.GetSelectedMenuFileName(new MPN?(this._selectedMPN), maid);
  963. }
  964. float y = this._scrollPosition.y;
  965. float num12 = this._scrollPosition.y + (float)num11;
  966. int num13 = 0;
  967. for (int j = 0; j < itemList.Count; j++)
  968. {
  969. MenuInfo menuInfo2 = itemList[j];
  970. if (menuInfo2.IsHave)
  971. {
  972. bool enabled = true;
  973. if (!string.IsNullOrEmpty(text))
  974. {
  975. if (menuInfo2.FileName.IndexOf(text, StringComparison.OrdinalIgnoreCase) == 0)
  976. {
  977. enabled = false;
  978. this._selectedItem = menuInfo2;
  979. this._selectedVariationItem = menuInfo2.VariationMenuList[0];
  980. }
  981. else if (menuInfo2.VariationMenuList.Count > 1)
  982. {
  983. foreach (MenuInfo menuInfo3 in menuInfo2.VariationMenuList)
  984. {
  985. if (menuInfo3.FileName.IndexOf(text, StringComparison.OrdinalIgnoreCase) == 0)
  986. {
  987. this._selectedItem = menuInfo2;
  988. this._selectedVariationItem = menuInfo3;
  989. enabled = false;
  990. break;
  991. }
  992. }
  993. }
  994. }
  995. float num14 = num7 * (float)((int)((float)num13 / num4));
  996. float num15 = num14 + num7;
  997. if ((y <= num14 && num15 <= num12) || (num14 <= y && y <= num15) || (y <= num14 && num14 <= num12))
  998. {
  999. if (menuInfo2.Icon == null && !string.IsNullOrEmpty(menuInfo2.IconName) && !menuInfo2.IsError)
  1000. {
  1001. if (!menuInfo2.IsOfficialMOD)
  1002. {
  1003. try
  1004. {
  1005. menuInfo2.Icon = ImportCM.CreateTexture(menuInfo2.IconName);
  1006. goto IL_632;
  1007. }
  1008. catch (Exception)
  1009. {
  1010. menuInfo2.IsError = true;
  1011. goto IL_D64;
  1012. }
  1013. }
  1014. MenuInfo menuInfo4 = MenuModParser.parseMod(menuInfo2.FilePath);
  1015. menuInfo2.Icon = menuInfo4.Icon;
  1016. }
  1017. IL_632:
  1018. string tooltip = menuInfo2.ItemName;
  1019. if (this._folders[this._selectedFolder].Name == "全て" || this._folders[this._selectedFolder].Name == "選択中")
  1020. {
  1021. tooltip = menuInfo2.CategoryName + ":" + menuInfo2.ItemName;
  1022. }
  1023. Rect position2 = new Rect(num6 * ((float)num13 % num4), num7 * (float)((int)((float)num13 / num4)), num6, num7);
  1024. Rect position3 = new Rect(position2.x, position2.y + position2.height - 20f, 20f, 20f);
  1025. Rect position4 = new Rect(position2.x, position2.y, 20f, 20f);
  1026. Rect position5 = new Rect(position2.x + position2.width - 20f, position2.y + position2.height - 20f, 20f, 20f);
  1027. if (Event.current.type == EventType.Repaint)
  1028. {
  1029. GUI.enabled = enabled;
  1030. if (GUI.Button(position2, new GUIContent(menuInfo2.Icon, tooltip)))
  1031. {
  1032. this._selectedItem = menuInfo2;
  1033. this._selectedVariationItem = menuInfo2.VariationMenuList[0];
  1034. List<Maid> visibleMaidList2 = CommonUtil.GetVisibleMaidList();
  1035. if (this._selectedMaid >= 0 && visibleMaidList2.Count - 1 >= this._selectedMaid)
  1036. {
  1037. if (UserConfig.Instance.IsOutputInfoLog)
  1038. {
  1039. Console.WriteLine("PropMyItem:change item = " + menuInfo2.FileName);
  1040. }
  1041. visibleMaidList2[this._selectedMaid].SetProp(menuInfo2.MPN, menuInfo2.FileName, Path.GetFileName(menuInfo2.FileName).GetHashCode(), false, false);
  1042. if ((menuInfo2.MPN == MPN.folder_eye || menuInfo2.MPN == MPN.folder_mayu || menuInfo2.MPN == MPN.folder_skin || menuInfo2.MPN == MPN.folder_underhair || menuInfo2.MPN == MPN.chikubi) && menuInfo2.ColorSetMenuList.Count > 0)
  1043. {
  1044. MenuInfo menuInfo5 = this._selectedVariationItem.ColorSetMenuList[0];
  1045. visibleMaidList2[this._selectedMaid].SetProp(menuInfo2.ColorSetMPN, menuInfo5.FileName, Path.GetFileName(menuInfo5.FileName).GetHashCode(), false, false);
  1046. }
  1047. visibleMaidList2[this._selectedMaid].AllProcProp();
  1048. }
  1049. }
  1050. GUI.enabled = true;
  1051. GUIStyle style = guistyle2;
  1052. if (menuInfo2.IsFavorite)
  1053. {
  1054. style = guistyle3;
  1055. }
  1056. if (GUI.Button(position3, new GUIContent("★", tooltip), style))
  1057. {
  1058. if (menuInfo2.IsFavorite)
  1059. {
  1060. menuInfo2.IsFavorite = false;
  1061. UserConfig.Instance.FavList.Remove(menuInfo2.FileName.ToLower());
  1062. }
  1063. else
  1064. {
  1065. menuInfo2.IsFavorite = true;
  1066. UserConfig.Instance.FavList.Add(menuInfo2.FileName.ToLower());
  1067. }
  1068. UserConfig.Instance.Save();
  1069. }
  1070. if (this._folders[this._selectedFolder].Name == "選択中")
  1071. {
  1072. if (GUI.Button(position4, new GUIContent("×", tooltip)))
  1073. {
  1074. maid.DelProp(menuInfo2.MPN, false);
  1075. maid.AllProcProp();
  1076. }
  1077. GUIStyle style2 = guistyle4;
  1078. if (menuInfo2.IsColorLock)
  1079. {
  1080. style2 = guistyle5;
  1081. }
  1082. if (GUI.Button(position5, new GUIContent("■", tooltip), style2))
  1083. {
  1084. if (menuInfo2.IsColorLock)
  1085. {
  1086. menuInfo2.IsColorLock = false;
  1087. UserConfig.Instance.ColorLockList.Remove(menuInfo2.FileName.ToLower());
  1088. }
  1089. else
  1090. {
  1091. menuInfo2.IsColorLock = true;
  1092. UserConfig.Instance.ColorLockList.Add(menuInfo2.FileName.ToLower());
  1093. }
  1094. UserConfig.Instance.Save();
  1095. }
  1096. }
  1097. }
  1098. else
  1099. {
  1100. if (this._folders[this._selectedFolder].Name == "選択中")
  1101. {
  1102. if (GUI.Button(position4, new GUIContent("×", tooltip)))
  1103. {
  1104. maid.DelProp(menuInfo2.MPN, false);
  1105. maid.AllProcProp();
  1106. }
  1107. GUIStyle style3 = guistyle4;
  1108. if (menuInfo2.IsColorLock)
  1109. {
  1110. style3 = guistyle5;
  1111. }
  1112. if (GUI.Button(position5, new GUIContent("■", tooltip), style3))
  1113. {
  1114. if (menuInfo2.IsColorLock)
  1115. {
  1116. menuInfo2.IsColorLock = false;
  1117. UserConfig.Instance.ColorLockList.Remove(menuInfo2.FileName.ToLower());
  1118. }
  1119. else
  1120. {
  1121. menuInfo2.IsColorLock = true;
  1122. UserConfig.Instance.ColorLockList.Add(menuInfo2.FileName.ToLower());
  1123. }
  1124. UserConfig.Instance.Save();
  1125. }
  1126. }
  1127. GUIStyle style4 = guistyle2;
  1128. if (menuInfo2.IsFavorite)
  1129. {
  1130. style4 = guistyle3;
  1131. }
  1132. if (GUI.Button(position3, new GUIContent("★", tooltip), style4))
  1133. {
  1134. if (menuInfo2.IsFavorite)
  1135. {
  1136. menuInfo2.IsFavorite = false;
  1137. UserConfig.Instance.FavList.Remove(menuInfo2.FileName.ToLower());
  1138. }
  1139. else
  1140. {
  1141. menuInfo2.IsFavorite = true;
  1142. UserConfig.Instance.FavList.Add(menuInfo2.FileName.ToLower());
  1143. }
  1144. UserConfig.Instance.Save();
  1145. }
  1146. GUI.enabled = enabled;
  1147. if (GUI.Button(position2, new GUIContent(menuInfo2.Icon, tooltip)))
  1148. {
  1149. this._selectedItem = menuInfo2;
  1150. this._selectedVariationItem = menuInfo2.VariationMenuList[0];
  1151. List<Maid> visibleMaidList3 = CommonUtil.GetVisibleMaidList();
  1152. if (this._selectedMaid >= 0 && visibleMaidList3.Count - 1 >= this._selectedMaid)
  1153. {
  1154. if (UserConfig.Instance.IsOutputInfoLog)
  1155. {
  1156. Console.WriteLine("PropMyItem:change item = " + menuInfo2.FileName);
  1157. }
  1158. visibleMaidList3[this._selectedMaid].SetProp(menuInfo2.MPN, menuInfo2.FileName, Path.GetFileName(menuInfo2.FileName).GetHashCode(), false, false);
  1159. if ((menuInfo2.MPN == MPN.folder_eye || menuInfo2.MPN == MPN.folder_mayu || menuInfo2.MPN == MPN.folder_skin || menuInfo2.MPN == MPN.folder_underhair || menuInfo2.MPN == MPN.chikubi) && menuInfo2.ColorSetMenuList.Count > 0)
  1160. {
  1161. MenuInfo menuInfo6 = this._selectedVariationItem.ColorSetMenuList[0];
  1162. visibleMaidList3[this._selectedMaid].SetProp(menuInfo2.ColorSetMPN, menuInfo6.FileName, Path.GetFileName(menuInfo6.FileName).GetHashCode(), false, false);
  1163. }
  1164. visibleMaidList3[this._selectedMaid].AllProcProp();
  1165. }
  1166. }
  1167. GUI.enabled = true;
  1168. }
  1169. int count = menuInfo2.VariationMenuList.Count;
  1170. if (count > 1)
  1171. {
  1172. Rect position6 = new Rect(position2.x + position2.width - num, position2.y + num3, 10f, 10f);
  1173. if (menuInfo2.MPN == MPN.set_maidwear || menuInfo2.MPN == MPN.set_mywear || menuInfo2.MPN == MPN.set_underwear)
  1174. {
  1175. position6 = new Rect(position2.x + position2.width - num2, position2.y + num3, 10f, 10f);
  1176. }
  1177. GUI.Label(position6, count.ToString(), guistyle);
  1178. }
  1179. }
  1180. num13++;
  1181. }
  1182. IL_D64:;
  1183. }
  1184. if (this._folders[this._selectedFolder].Name == "選択中")
  1185. {
  1186. float num16 = num7 * (float)((int)((float)num13 / num4));
  1187. num16 = (((float)num13 % num4 == 0f) ? num16 : (num16 + num7));
  1188. Rect position7 = new Rect(0f, num16, num6 * 2f, num7);
  1189. Rect position8 = new Rect(num6 * 3f, num16, num6 * 2f, num7);
  1190. MPN[] array = new MPN[]
  1191. {
  1192. MPN.acchat,
  1193. MPN.headset,
  1194. MPN.wear,
  1195. MPN.skirt,
  1196. MPN.onepiece,
  1197. MPN.mizugi,
  1198. MPN.bra,
  1199. MPN.panz,
  1200. MPN.stkg,
  1201. MPN.shoes,
  1202. MPN.acckami,
  1203. MPN.megane,
  1204. MPN.acchead,
  1205. MPN.acchana,
  1206. MPN.accmimi,
  1207. MPN.glove,
  1208. MPN.acckubi,
  1209. MPN.acckubiwa,
  1210. MPN.acckamisub,
  1211. MPN.accnip,
  1212. MPN.accude,
  1213. MPN.accheso,
  1214. MPN.accashi,
  1215. MPN.accsenaka,
  1216. MPN.accshippo,
  1217. MPN.accxxx
  1218. };
  1219. if (GUI.Button(position7, "カラバリ変更(前)", GuiStyles.ButtonStyle) && maid != null)
  1220. {
  1221. foreach (MPN mpn in array)
  1222. {
  1223. MaidProp prop = maid.GetProp(mpn);
  1224. string text2 = prop.strFileName.ToLower();
  1225. string basename = prop.strFileName.ToLower();
  1226. if (Regex.IsMatch(text2, "_z\\d{1,4}"))
  1227. {
  1228. Match match = Regex.Match(text2, "_z\\d{1,4}");
  1229. basename = text2.Replace(match.Value, "");
  1230. }
  1231. this.nextPattern(maid, mpn, basename, text2, true);
  1232. }
  1233. }
  1234. if (GUI.Button(position8, "カラバリ変更(後)", GuiStyles.ButtonStyle) && maid != null)
  1235. {
  1236. foreach (MPN mpn2 in array)
  1237. {
  1238. try
  1239. {
  1240. MaidProp prop2 = maid.GetProp(mpn2);
  1241. string text3 = prop2.strFileName.ToLower();
  1242. string basename2 = prop2.strFileName.ToLower();
  1243. if (Regex.IsMatch(text3, "_z\\d{1,4}"))
  1244. {
  1245. Match match2 = Regex.Match(text3, "_z\\d{1,4}");
  1246. basename2 = text3.Replace(match2.Value, "");
  1247. }
  1248. this.nextPattern(maid, mpn2, basename2, text3, false);
  1249. }
  1250. catch (Exception ex)
  1251. {
  1252. Console.WriteLine(ex.ToString());
  1253. }
  1254. }
  1255. }
  1256. }
  1257. GUI.EndScrollView();
  1258. GuiStyles.LabelStyle.alignment = TextAnchor.UpperLeft;
  1259. Rect position9 = new Rect(xPos, yPos, num6 * num4 + GuiStyles.ScrollWidth, GuiStyles.ControlHeight);
  1260. xPos += num5 + GuiStyles.ScrollWidth + 8f;
  1261. GUI.Label(position9, GUI.tooltip, GuiStyles.LabelStyle);
  1262. GuiStyles.LabelStyle.alignment = TextAnchor.MiddleCenter;
  1263. if (this._selectedItem != null && this._selectedItem.VariationMenuList.Count > 1)
  1264. {
  1265. this.guiSelectedVariation(ref xPos, yPos, this._selectedItem, num6, num7, windowHeight, text);
  1266. }
  1267. }
  1268. // Token: 0x0600003E RID: 62 RVA: 0x00006364 File Offset: 0x00004564
  1269. private void guiSelectedVariation(ref float posX, float posY, MenuInfo itemMenuInfo, float iconWidth, float iconHeight, float windowHeight, string selectedFileName)
  1270. {
  1271. int count = itemMenuInfo.VariationMenuList.Count;
  1272. Rect viewRect = new Rect(0f, 0f, iconWidth, (float)count * (iconWidth + 4f));
  1273. Rect position = new Rect(posX, posY + GuiStyles.ControlHeight, viewRect.width + GuiStyles.ScrollWidth, windowHeight - posY - (float)GuiStyles.FontSize - GuiStyles.ControlHeight);
  1274. this._colorItemScrollPosition = GUI.BeginScrollView(position, this._colorItemScrollPosition, viewRect);
  1275. new Rect(0f, 0f, iconWidth, iconWidth);
  1276. int i = 0;
  1277. while (i < count)
  1278. {
  1279. MenuInfo menuInfo = itemMenuInfo.VariationMenuList[i];
  1280. if (menuInfo.Icon == null && !string.IsNullOrEmpty(menuInfo.IconName) && !menuInfo.IsError)
  1281. {
  1282. if (!menuInfo.IsOfficialMOD)
  1283. {
  1284. try
  1285. {
  1286. menuInfo.Icon = ImportCM.CreateTexture(menuInfo.IconName);
  1287. goto IL_10A;
  1288. }
  1289. catch (Exception)
  1290. {
  1291. menuInfo.IsError = true;
  1292. goto IL_101;
  1293. }
  1294. }
  1295. MenuInfo menuInfo2 = MenuModParser.parseMod(menuInfo.FilePath);
  1296. menuInfo.Icon = menuInfo2.Icon;
  1297. goto IL_10A;
  1298. }
  1299. goto IL_10A;
  1300. IL_101:
  1301. i++;
  1302. continue;
  1303. IL_10A:
  1304. string tooltip = menuInfo.ItemName;
  1305. if (this._folders[this._selectedFolder].Name == "全て" || this._folders[this._selectedFolder].Name == "選択中")
  1306. {
  1307. tooltip = menuInfo.CategoryName + ":" + menuInfo.ItemName;
  1308. }
  1309. if (!string.IsNullOrEmpty(selectedFileName) && menuInfo.FileName.IndexOf(selectedFileName, StringComparison.OrdinalIgnoreCase) == 0)
  1310. {
  1311. GUI.enabled = false;
  1312. }
  1313. if (GUI.Button(new Rect(0f, (iconWidth + 4f) * (float)i, iconWidth, iconWidth), new GUIContent(menuInfo.Icon, tooltip)))
  1314. {
  1315. this._selectedVariationItem = menuInfo;
  1316. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  1317. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  1318. {
  1319. visibleMaidList[this._selectedMaid].SetProp(menuInfo.MPN, menuInfo.FileName, Path.GetFileName(menuInfo.FileName).GetHashCode(), false, false);
  1320. visibleMaidList[this._selectedMaid].AllProcProp();
  1321. if (UserConfig.Instance.IsOutputInfoLog)
  1322. {
  1323. Console.WriteLine("PropMyItem:change item = " + menuInfo.FileName);
  1324. }
  1325. }
  1326. }
  1327. GUI.enabled = true;
  1328. goto IL_101;
  1329. }
  1330. GUI.EndScrollView();
  1331. posX += iconWidth + GuiStyles.ScrollWidth + 8f;
  1332. }
  1333. // Token: 0x0600003F RID: 63 RVA: 0x00006600 File Offset: 0x00004800
  1334. private void guiSelectedColorSet(ref float posX, ref float posY)
  1335. {
  1336. if (this._selectedVariationItem != null && this._selectedVariationItem.ColorSetMenuList.Count > 0)
  1337. {
  1338. string value = string.Empty;
  1339. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  1340. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  1341. {
  1342. Maid maid = visibleMaidList[this._selectedMaid];
  1343. value = CommonUtil.GetSelectedMenuFileName(new MPN?(this._selectedVariationItem.ColorSetMPN), maid);
  1344. }
  1345. float num = (float)(420 / this._selectedVariationItem.ColorSetMenuList.Count);
  1346. num = ((num > 28f) ? 28f : num);
  1347. int i = 0;
  1348. while (i < this._selectedVariationItem.ColorSetMenuList.Count)
  1349. {
  1350. MenuInfo menuInfo = this._selectedVariationItem.ColorSetMenuList[i];
  1351. if (menuInfo.Icon == null && !string.IsNullOrEmpty(menuInfo.IconName) && !menuInfo.IsError)
  1352. {
  1353. if (!menuInfo.IsOfficialMOD)
  1354. {
  1355. try
  1356. {
  1357. menuInfo.Icon = ImportCM.CreateTexture(menuInfo.IconName);
  1358. goto IL_125;
  1359. }
  1360. catch (Exception)
  1361. {
  1362. menuInfo.IsError = true;
  1363. goto IL_11C;
  1364. }
  1365. }
  1366. MenuInfo menuInfo2 = MenuModParser.parseMod(menuInfo.FilePath);
  1367. menuInfo.Icon = menuInfo2.Icon;
  1368. goto IL_125;
  1369. }
  1370. goto IL_125;
  1371. IL_11C:
  1372. i++;
  1373. continue;
  1374. IL_125:
  1375. if (!string.IsNullOrEmpty(value) && menuInfo.FileName.IndexOf(value, StringComparison.OrdinalIgnoreCase) == 0)
  1376. {
  1377. if (menuInfo.FileName.IndexOf("mugen", StringComparison.OrdinalIgnoreCase) != -1)
  1378. {
  1379. this._isFreeColor = true;
  1380. }
  1381. else
  1382. {
  1383. this._isFreeColor = false;
  1384. }
  1385. GUI.enabled = false;
  1386. }
  1387. if (GUI.Button(new Rect(posX, posY + 10f + (num + 1f) * (float)i, num, num), menuInfo.Icon))
  1388. {
  1389. if (menuInfo.FileName.IndexOf("mugen", StringComparison.OrdinalIgnoreCase) != -1)
  1390. {
  1391. this._isFreeColor = true;
  1392. }
  1393. else
  1394. {
  1395. this._isFreeColor = false;
  1396. }
  1397. List<Maid> visibleMaidList2 = CommonUtil.GetVisibleMaidList();
  1398. if (this._selectedMaid >= 0 && visibleMaidList2.Count - 1 >= this._selectedMaid)
  1399. {
  1400. visibleMaidList2[this._selectedMaid].SetProp(menuInfo.MPN, menuInfo.FileName, Path.GetFileName(menuInfo.FileName).GetHashCode(), false, false);
  1401. visibleMaidList2[this._selectedMaid].AllProcProp();
  1402. }
  1403. }
  1404. GUI.enabled = true;
  1405. goto IL_11C;
  1406. }
  1407. posX += num + 8f;
  1408. return;
  1409. }
  1410. this._isFreeColor = false;
  1411. }
  1412. // Token: 0x06000040 RID: 64 RVA: 0x00006874 File Offset: 0x00004A74
  1413. private void guiSelectedMugenColor(ref float posX, ref float posY)
  1414. {
  1415. if (this._isFreeColor)
  1416. {
  1417. int fontSize = GuiStyles.FontSize;
  1418. float controlHeight = GuiStyles.ControlHeight;
  1419. GUIStyle buttonStyle = GuiStyles.ButtonStyle;
  1420. GUIStyle labelStyle = GuiStyles.LabelStyle;
  1421. List<Maid> visibleMaidList = CommonUtil.GetVisibleMaidList();
  1422. if (this._selectedMaid >= 0 && visibleMaidList.Count - 1 >= this._selectedMaid)
  1423. {
  1424. float num = posY;
  1425. Maid maid = visibleMaidList[this._selectedMaid];
  1426. MaidParts.PARTS_COLOR parts_COLOR = MaidParts.PARTS_COLOR.SKIN;
  1427. MPN mpn = this._selectedItem.MPN;
  1428. switch (mpn)
  1429. {
  1430. case MPN.hairf:
  1431. case MPN.hairr:
  1432. case MPN.hairt:
  1433. case MPN.hairs:
  1434. case MPN.hairaho:
  1435. case MPN.haircolor:
  1436. parts_COLOR = MaidParts.PARTS_COLOR.HAIR;
  1437. goto IL_189;
  1438. case MPN.skin:
  1439. break;
  1440. case MPN.acctatoo:
  1441. case MPN.accnail:
  1442. case MPN.hokuro:
  1443. case MPN.lip:
  1444. case MPN.eye_hi:
  1445. case MPN.eye_hi_r:
  1446. goto IL_189;
  1447. case MPN.underhair:
  1448. goto IL_F8;
  1449. case MPN.mayu:
  1450. goto IL_100;
  1451. case MPN.eye:
  1452. goto IL_108;
  1453. case MPN.chikubi:
  1454. case MPN.chikubicolor:
  1455. parts_COLOR = MaidParts.PARTS_COLOR.NIPPLE;
  1456. goto IL_189;
  1457. default:
  1458. switch (mpn)
  1459. {
  1460. case MPN.folder_eye:
  1461. goto IL_108;
  1462. case MPN.folder_mayu:
  1463. goto IL_100;
  1464. case MPN.folder_underhair:
  1465. goto IL_F8;
  1466. case MPN.folder_skin:
  1467. break;
  1468. default:
  1469. goto IL_189;
  1470. }
  1471. break;
  1472. }
  1473. parts_COLOR = MaidParts.PARTS_COLOR.SKIN;
  1474. goto IL_189;
  1475. IL_F8:
  1476. parts_COLOR = MaidParts.PARTS_COLOR.UNDER_HAIR;
  1477. goto IL_189;
  1478. IL_100:
  1479. parts_COLOR = MaidParts.PARTS_COLOR.EYE_BROW;
  1480. goto IL_189;
  1481. IL_108:
  1482. string text = string.Empty;
  1483. if (this._selectedEyeClorType == 0)
  1484. {
  1485. parts_COLOR = MaidParts.PARTS_COLOR.EYE_L;
  1486. text = "両目";
  1487. }
  1488. else if (this._selectedEyeClorType == 1)
  1489. {
  1490. parts_COLOR = MaidParts.PARTS_COLOR.EYE_L;
  1491. text = "左目";
  1492. }
  1493. else if (this._selectedEyeClorType == 2)
  1494. {
  1495. parts_COLOR = MaidParts.PARTS_COLOR.EYE_R;
  1496. text = "右目";
  1497. }
  1498. if (GUI.Button(new Rect(posX, posY, (float)(fontSize * 8), controlHeight), text, buttonStyle))
  1499. {
  1500. this._selectedEyeClorType = ((this._selectedEyeClorType == 2) ? 0 : (this._selectedEyeClorType + 1));
  1501. }
  1502. num = controlHeight + 8f + posY;
  1503. IL_189:
  1504. MaidParts.PartsColor partsColor = maid.Parts.GetPartsColor(parts_COLOR);
  1505. string[] array = new string[]
  1506. {
  1507. "色相\u3000",
  1508. "彩度\u3000",
  1509. "明度\u3000",
  1510. "対称\u3000",
  1511. "影率\u3000",
  1512. "影色 色相",
  1513. "影色 彩度",
  1514. "影色 明度",
  1515. "影色 対称"
  1516. };
  1517. int[] array2 = new int[]
  1518. {
  1519. partsColor.m_nMainHue,
  1520. partsColor.m_nMainChroma,
  1521. partsColor.m_nMainBrightness,
  1522. partsColor.m_nMainContrast,
  1523. partsColor.m_nShadowRate,
  1524. partsColor.m_nShadowHue,
  1525. partsColor.m_nShadowChroma,
  1526. partsColor.m_nShadowBrightness,
  1527. partsColor.m_nShadowContrast
  1528. };
  1529. int[] array3 = new int[]
  1530. {
  1531. 255,
  1532. 255,
  1533. 510,
  1534. 200,
  1535. 255,
  1536. 255,
  1537. 255,
  1538. 510,
  1539. 200
  1540. };
  1541. float num2 = controlHeight * 0.8f;
  1542. for (int i = 0; i < array.Length; i++)
  1543. {
  1544. float num3 = num + (float)i * (num2 * 2f + 8f);
  1545. Rect position = new Rect(posX, num3, (float)(fontSize * array[i].Length), num2);
  1546. Rect position2 = new Rect(posX + (float)(fontSize * array[i].Length + 4), num3, (float)(fontSize * 4), num2);
  1547. Rect position3 = new Rect(posX, num3 + num2, (float)(fontSize * 2), num2);
  1548. Rect position4 = new Rect(posX + (float)(fontSize * 2) + 4f, num3 + num2 + (float)((double)num2 * 0.25), 80f, num2);
  1549. Rect position5 = new Rect(posX + 80f + (float)(fontSize * 2) + 8f, num3 + num2, (float)(fontSize * 2), num2);
  1550. GUI.Label(position, array[i], labelStyle);
  1551. GUI.Label(position2, array2[i].ToString(), labelStyle);
  1552. float num4 = (float)((int)GUI.HorizontalSlider(position4, (float)array2[i], 0f, (float)array3[i]));
  1553. if (num4 != (float)array2[i])
  1554. {
  1555. array2[i] = (int)num4;
  1556. this.changeColor(partsColor, parts_COLOR, array2, maid);
  1557. }
  1558. if (GUI.Button(position3, "-", buttonStyle))
  1559. {
  1560. int num5 = array2[i] - 1;
  1561. num5 = ((num5 < 0) ? 0 : num5);
  1562. array2[i] = num5;
  1563. this.changeColor(partsColor, parts_COLOR, array2, maid);
  1564. }
  1565. if (GUI.Button(position5, "+", buttonStyle))
  1566. {
  1567. int num6 = array2[i] + 1;
  1568. num6 = ((num6 > array3[i]) ? array3[i] : num6);
  1569. array2[i] = num6;
  1570. this.changeColor(partsColor, parts_COLOR, array2, maid);
  1571. }
  1572. }
  1573. posX += (float)(80 + fontSize * 2 + 8 + fontSize * 2 + 8);
  1574. }
  1575. }
  1576. }
  1577. // Token: 0x06000041 RID: 65 RVA: 0x00006CA4 File Offset: 0x00004EA4
  1578. private void changeColor(MaidParts.PartsColor partsColor, MaidParts.PARTS_COLOR partsColorType, int[] values, Maid maid)
  1579. {
  1580. partsColor.m_nMainHue = values[0];
  1581. partsColor.m_nMainChroma = values[1];
  1582. partsColor.m_nMainBrightness = values[2];
  1583. partsColor.m_nMainContrast = values[3];
  1584. partsColor.m_nShadowRate = values[4];
  1585. partsColor.m_nShadowHue = values[5];
  1586. partsColor.m_nShadowChroma = values[6];
  1587. partsColor.m_nShadowBrightness = values[7];
  1588. partsColor.m_nShadowContrast = values[8];
  1589. maid.Parts.SetPartsColor(partsColorType, partsColor);
  1590. if (partsColorType == MaidParts.PARTS_COLOR.EYE_L && this._selectedEyeClorType == 0)
  1591. {
  1592. partsColor.m_nMainHue = values[0];
  1593. partsColor.m_nMainChroma = values[1];
  1594. partsColor.m_nMainBrightness = values[2];
  1595. partsColor.m_nMainContrast = values[3];
  1596. partsColor.m_nShadowRate = values[4];
  1597. partsColor.m_nShadowHue = values[5];
  1598. partsColor.m_nShadowChroma = values[6];
  1599. partsColor.m_nShadowBrightness = values[7];
  1600. partsColor.m_nShadowContrast = values[8];
  1601. maid.Parts.SetPartsColor(MaidParts.PARTS_COLOR.EYE_R, partsColor);
  1602. }
  1603. }
  1604. // Token: 0x06000042 RID: 66 RVA: 0x00006D8C File Offset: 0x00004F8C
  1605. public void LoadMenuFiles(bool isInit = false)
  1606. {
  1607. try
  1608. {
  1609. List<SMenuInfo> menuItems = new List<SMenuInfo>();
  1610. Dictionary<string, MenuInfo> dictionary = new Dictionary<string, MenuInfo>();
  1611. if (!isInit)
  1612. {
  1613. using (List<SMenuInfo>.Enumerator enumerator = Config.Instance.MenuItems.GetEnumerator())
  1614. {
  1615. while (enumerator.MoveNext())
  1616. {
  1617. SMenuInfo smenuInfo = enumerator.Current;
  1618. if (!dictionary.ContainsKey(smenuInfo.FileName))
  1619. {
  1620. dictionary.Add(smenuInfo.FileName, new MenuInfo(smenuInfo));
  1621. }
  1622. }
  1623. goto IL_CA;
  1624. }
  1625. }
  1626. this._mpnMenuListDictionary = new Dictionary<MPN, List<MenuInfo>>();
  1627. foreach (object obj in Enum.GetValues(typeof(MPN)))
  1628. {
  1629. MPN key = (MPN)obj;
  1630. this._mpnMenuListDictionary.Add(key, new List<MenuInfo>());
  1631. }
  1632. IL_CA:
  1633. if (dictionary.Count == 0)
  1634. {
  1635. Console.Write("PropMyItem:準備中...");
  1636. }
  1637. Dictionary<string, string> dictionary2 = new Dictionary<string, string>();
  1638. foreach (string text in UserConfig.Instance.FavList)
  1639. {
  1640. if (!dictionary2.ContainsKey(text))
  1641. {
  1642. dictionary2.Add(text.ToLower(), text);
  1643. }
  1644. }
  1645. Dictionary<string, string> dictionary3 = new Dictionary<string, string>();
  1646. foreach (string text2 in UserConfig.Instance.ColorLockList)
  1647. {
  1648. if (!dictionary3.ContainsKey(text2))
  1649. {
  1650. dictionary3.Add(text2.ToLower(), text2);
  1651. }
  1652. }
  1653. List<MenuInfo> list = new List<MenuInfo>();
  1654. this.GetMainMenuFiles(ref list, dictionary, dictionary2, dictionary3, ref menuItems);
  1655. this.GetModFiles(ref list, dictionary, dictionary2, dictionary3, ref menuItems);
  1656. this.SetVariationMenu(dictionary2, dictionary3, ref list);
  1657. this.sort(false, true);
  1658. this.setColorSet();
  1659. Config.Instance.MenuItems = menuItems;
  1660. Config.Instance.Save();
  1661. if (dictionary.Count == 0)
  1662. {
  1663. Console.WriteLine("PropMyItem:完了");
  1664. }
  1665. this._selectedFolder = 0;
  1666. this._selectedMPN = MPN.null_mpn;
  1667. this._selectedCategory = -1;
  1668. this._selectedItem = null;
  1669. this._selectedVariationItem = null;
  1670. this._selectedPresetList.Clear();
  1671. this._selectedItem = null;
  1672. this._selectedVariationItem = null;
  1673. this._scrollPosition.y = 0f;
  1674. MPN selectedMPN = MPN.head;
  1675. if (this._categoryMPNDic.TryGetValue(this._folders[this._selectedFolder].Categories[0], out selectedMPN))
  1676. {
  1677. this._selectedMPN = selectedMPN;
  1678. }
  1679. this._selectedCategory = 0;
  1680. }
  1681. catch (Exception value)
  1682. {
  1683. Console.WriteLine(value);
  1684. }
  1685. }
  1686. // Token: 0x06000043 RID: 67 RVA: 0x00007088 File Offset: 0x00005288
  1687. private void sort(bool isFilePath, bool isColorNumber)
  1688. {
  1689. Comparison<MenuInfo> comparator = (a, b) =>
  1690. {
  1691. if (isFilePath)
  1692. {
  1693. if (a.IsMod && !b.IsMod)
  1694. {
  1695. return 1;
  1696. }
  1697. if (!a.IsMod && b.IsMod)
  1698. {
  1699. return -1;
  1700. }
  1701. if (a.IsMod && b.IsMod)
  1702. {
  1703. return string.Compare(a.FilePath, b.FilePath);
  1704. }
  1705. }
  1706. if ((int)a.Priority != (int)b.Priority)
  1707. {
  1708. return (int)a.Priority - (int)b.Priority;
  1709. }
  1710. return string.Compare(a.ItemName, b.ItemName);
  1711. };
  1712. foreach (MPN key in this._mpnMenuListDictionary.Keys)
  1713. {
  1714. List<MenuInfo> list = this._mpnMenuListDictionary[key];
  1715. list.Sort(comparator);
  1716. if (isColorNumber)
  1717. {
  1718. foreach (MenuInfo menuInfo in this._mpnMenuListDictionary[key])
  1719. {
  1720. if (menuInfo.VariationMenuList.Count > 1)
  1721. {
  1722. menuInfo.VariationMenuList.Sort(delegate (MenuInfo a, MenuInfo b)
  1723. {
  1724. if (a.ColorNumber != b.ColorNumber)
  1725. {
  1726. return a.ColorNumber - b.ColorNumber;
  1727. }
  1728. return string.Compare(a.FileName, b.FileName);
  1729. });
  1730. }
  1731. }
  1732. }
  1733. }
  1734. }
  1735. // Token: 0x06000044 RID: 68 RVA: 0x000071A0 File Offset: 0x000053A0
  1736. private void GetMainMenuFiles(ref List<MenuInfo> variationMenuList, Dictionary<string, MenuInfo> loadItems, Dictionary<string, string> favDic, Dictionary<string, string> colorLockDic, ref List<SMenuInfo> saveItems)
  1737. {
  1738. ReadOnlyDictionary<string, bool> havePartsItems = GameMain.Instance.CharacterMgr.status.havePartsItems;
  1739. string[] menuFiles = GameUty.MenuFiles;
  1740. this._menuList.Clear();
  1741. string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.menu", SearchOption.AllDirectories);
  1742. Dictionary<string, string> dictionary = new Dictionary<string, string>();
  1743. foreach (string text in files)
  1744. {
  1745. string key = Path.GetFileName(text).ToLower();
  1746. if (!dictionary.ContainsKey(key))
  1747. {
  1748. dictionary.Add(key, text);
  1749. }
  1750. }
  1751. List<string> list = new List<string>();
  1752. foreach (string text2 in menuFiles)
  1753. {
  1754. try
  1755. {
  1756. if (text2.IndexOf("_i_man_") != 0 && text2.IndexOf("mbody") != 0 && text2.IndexOf("mhead") != 0 && !(Path.GetExtension(text2) != ".menu"))
  1757. {
  1758. string fileName = Path.GetFileName(text2);
  1759. this._menuList.Add(fileName.ToLower());
  1760. if (fileName.Contains("cv_pattern"))
  1761. {
  1762. this._myPatternList.Add(fileName.ToLower());
  1763. }
  1764. if (!list.Contains(fileName))
  1765. {
  1766. MenuInfo menuInfo = null;
  1767. if (!loadItems.TryGetValue(fileName, out menuInfo))
  1768. {
  1769. menuInfo = MenuModParser.ParseMenu(text2);
  1770. }
  1771. if (menuInfo != null && menuInfo.MPN != MPN.null_mpn)
  1772. {
  1773. menuInfo.FileName = fileName;
  1774. if (havePartsItems.ContainsKey(fileName))
  1775. {
  1776. menuInfo.IsShopTarget = true;
  1777. }
  1778. else
  1779. {
  1780. menuInfo.IsShopTarget = false;
  1781. }
  1782. string filePath = text2;
  1783. if (dictionary.TryGetValue(fileName, out filePath))
  1784. {
  1785. menuInfo.IsMod = true;
  1786. menuInfo.FilePath = filePath;
  1787. }
  1788. else
  1789. {
  1790. menuInfo.IsMod = false;
  1791. menuInfo.FilePath = fileName;
  1792. }
  1793. string empty = string.Empty;
  1794. if (this._menuMPNCategoryDic.TryGetValue(menuInfo.MPN, out empty))
  1795. {
  1796. menuInfo.CategoryName = empty;
  1797. }
  1798. list.Add(fileName);
  1799. if (!string.IsNullOrEmpty(menuInfo.IconName))
  1800. {
  1801. if (Regex.IsMatch(text2, "_z\\d{1,4}") || text2.Contains("_zurashi") || text2.Contains("_mekure") || text2.Contains("_porori") || text2.Contains("_back"))
  1802. {
  1803. variationMenuList.Add(menuInfo);
  1804. }
  1805. else
  1806. {
  1807. if (favDic.ContainsKey(menuInfo.FileName))
  1808. {
  1809. menuInfo.IsFavorite = true;
  1810. }
  1811. if (colorLockDic.ContainsKey(menuInfo.FileName))
  1812. {
  1813. menuInfo.IsColorLock = true;
  1814. }
  1815. menuInfo.ColorNumber = 0;
  1816. menuInfo.VariationMenuList.Add(menuInfo);
  1817. this._mpnMenuListDictionary[menuInfo.MPN].Add(menuInfo);
  1818. }
  1819. }
  1820. saveItems.Add(new SMenuInfo(menuInfo));
  1821. }
  1822. }
  1823. }
  1824. }
  1825. catch (Exception)
  1826. {
  1827. }
  1828. }
  1829. }
  1830. // Token: 0x06000045 RID: 69 RVA: 0x00007484 File Offset: 0x00005684
  1831. private void GetModFiles(ref List<MenuInfo> variationMenuList, Dictionary<string, MenuInfo> loadItems, Dictionary<string, string> favDic, Dictionary<string, string> colorLockDic, ref List<SMenuInfo> saveItems)
  1832. {
  1833. List<string> list = new List<string>();
  1834. string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.mod", SearchOption.AllDirectories);
  1835. Dictionary<string, string> dictionary = new Dictionary<string, string>();
  1836. foreach (string text in files)
  1837. {
  1838. string fileName = Path.GetFileName(text);
  1839. if (!dictionary.ContainsKey(fileName))
  1840. {
  1841. list.Add(text);
  1842. dictionary.Add(fileName, text);
  1843. }
  1844. }
  1845. foreach (string text2 in list)
  1846. {
  1847. try
  1848. {
  1849. if (Path.GetExtension(text2) == ".mod")
  1850. {
  1851. MenuInfo menuInfo = null;
  1852. string fileName2 = Path.GetFileName(text2);
  1853. if (!loadItems.TryGetValue(fileName2, out menuInfo))
  1854. {
  1855. menuInfo = MenuModParser.parseMod(text2);
  1856. }
  1857. menuInfo.FileName = fileName2;
  1858. menuInfo.IsShopTarget = false;
  1859. menuInfo.IsMod = true;
  1860. menuInfo.IsOfficialMOD = true;
  1861. menuInfo.FilePath = text2;
  1862. string empty = string.Empty;
  1863. if (this._menuMPNCategoryDic.TryGetValue(menuInfo.MPN, out empty))
  1864. {
  1865. menuInfo.CategoryName = empty;
  1866. }
  1867. string text3 = fileName2.ToLower();
  1868. if (Regex.IsMatch(text3, "_z\\d{1,4}") || text3.Contains("_porori") || text3.Contains("_zurashi") || text3.Contains("_mekure") || text3.Contains("_back"))
  1869. {
  1870. variationMenuList.Add(menuInfo);
  1871. }
  1872. else
  1873. {
  1874. if (favDic.ContainsKey(menuInfo.FileName.ToLower()))
  1875. {
  1876. menuInfo.IsFavorite = true;
  1877. }
  1878. if (colorLockDic.ContainsKey(menuInfo.FileName.ToLower()))
  1879. {
  1880. menuInfo.IsColorLock = true;
  1881. }
  1882. menuInfo.ColorNumber = 0;
  1883. menuInfo.VariationMenuList.Add(menuInfo);
  1884. this._mpnMenuListDictionary[menuInfo.MPN].Add(menuInfo);
  1885. }
  1886. saveItems.Add(new SMenuInfo(menuInfo));
  1887. }
  1888. }
  1889. catch (Exception ex)
  1890. {
  1891. Console.WriteLine(ex.StackTrace);
  1892. }
  1893. }
  1894. }
  1895. // Token: 0x06000046 RID: 70 RVA: 0x000076B4 File Offset: 0x000058B4
  1896. private void SetVariationMenu(Dictionary<string, string> favDic, Dictionary<string, string> colorLockDic, ref List<MenuInfo> variationMenuList)
  1897. {
  1898. List<MenuInfo> list = new List<MenuInfo>();
  1899. List<MenuInfo> list2 = new List<MenuInfo>();
  1900. foreach (MenuInfo menuInfo in variationMenuList)
  1901. {
  1902. string fileName = Path.GetFileName(menuInfo.FileName.ToLower());
  1903. int colorNumber = 0;
  1904. string[] array = Regex.Split(fileName, "_z\\d{1,4}");
  1905. if (array.Length > 1)
  1906. {
  1907. int.TryParse(array[1].Remove(0, 3).Split(new char[]
  1908. {
  1909. '.',
  1910. '_'
  1911. })[0], out colorNumber);
  1912. }
  1913. menuInfo.ColorNumber = colorNumber;
  1914. string text = Regex.Replace(fileName, "_z\\d{1,4}", "");
  1915. text = Regex.Replace(text, "_zurashi\\d{0,4}", "");
  1916. text = Regex.Replace(text, "_mekure\\d{0,4}", "");
  1917. text = Regex.Replace(text, "_porori\\d{0,4}", "");
  1918. text = Regex.Replace(text, "_back\\d{0,4}", "");
  1919. text = text.Replace("_i.", "_i_.");
  1920. if (this._mpnMenuListDictionary.TryGetValue(menuInfo.MPN, out list))
  1921. {
  1922. bool flag = false;
  1923. foreach (MenuInfo menuInfo2 in list)
  1924. {
  1925. if (menuInfo2.FileName.IndexOf(text, StringComparison.OrdinalIgnoreCase) == 0)
  1926. {
  1927. flag = true;
  1928. menuInfo2.VariationMenuList.Add(menuInfo);
  1929. break;
  1930. }
  1931. }
  1932. if (!flag)
  1933. {
  1934. if (favDic.ContainsKey(menuInfo.FileName.ToLower()))
  1935. {
  1936. menuInfo.IsFavorite = true;
  1937. }
  1938. if (colorLockDic.ContainsKey(menuInfo.FileName.ToLower()))
  1939. {
  1940. menuInfo.IsColorLock = true;
  1941. }
  1942. menuInfo.ColorNumber = 0;
  1943. menuInfo.VariationMenuList.Add(menuInfo);
  1944. list2.Add(menuInfo);
  1945. }
  1946. }
  1947. }
  1948. foreach (MenuInfo menuInfo3 in list2)
  1949. {
  1950. this._mpnMenuListDictionary[menuInfo3.MPN].Add(menuInfo3);
  1951. }
  1952. }
  1953. // Token: 0x06000047 RID: 71 RVA: 0x00007918 File Offset: 0x00005B18
  1954. private void setColorSet()
  1955. {
  1956. foreach (MPN key in this._mpnMenuListDictionary.Keys)
  1957. {
  1958. foreach (MenuInfo menuInfo in this._mpnMenuListDictionary[key])
  1959. {
  1960. List<MenuInfo> list = new List<MenuInfo>();
  1961. list.AddRange(menuInfo.VariationMenuList);
  1962. foreach (MenuInfo menuInfo2 in list)
  1963. {
  1964. if (!string.IsNullOrEmpty(menuInfo2.ColorSetMenuName))
  1965. {
  1966. List<MenuInfo> list2 = new List<MenuInfo>();
  1967. List<MenuInfo> list3 = new List<MenuInfo>();
  1968. if (this._mpnMenuListDictionary.TryGetValue(menuInfo2.ColorSetMPN, out list3))
  1969. {
  1970. string pattern = Regex.Replace(menuInfo2.ColorSetMenuName, ".", new MatchEvaluator(CommonUtil.WildCardMatchEvaluator));
  1971. foreach (MenuInfo menuInfo3 in list3)
  1972. {
  1973. if (Regex.IsMatch(menuInfo3.FileName, pattern, RegexOptions.IgnoreCase))
  1974. {
  1975. list2.Add(menuInfo3);
  1976. }
  1977. }
  1978. }
  1979. menuInfo2.ColorSetMenuList.AddRange(list2);
  1980. }
  1981. }
  1982. }
  1983. }
  1984. }
  1985. // Token: 0x04000028 RID: 40
  1986. private int _sceneLevel;
  1987. // Token: 0x04000029 RID: 41
  1988. private Rect _windowRect;
  1989. // Token: 0x0400002A RID: 42
  1990. private AutoShoesHide _autoShoesHide = new AutoShoesHide();
  1991. // Token: 0x0400002B RID: 43
  1992. private bool _isMinimum;
  1993. // Token: 0x0400002C RID: 44
  1994. private bool _isVisible;
  1995. // Token: 0x0400002D RID: 45
  1996. private bool _isPluginKeyChange;
  1997. // Token: 0x0400002E RID: 46
  1998. private bool _isShowSetting;
  1999. // Token: 0x0400002F RID: 47
  2000. private bool _isShowFilterSetting;
  2001. // Token: 0x04000030 RID: 48
  2002. private string _selectedFilterText = string.Empty;
  2003. // Token: 0x04000031 RID: 49
  2004. private Vector2 _scrollFilterPosition;
  2005. // Token: 0x04000032 RID: 50
  2006. private Vector2 _categoryScrollPosition;
  2007. // Token: 0x04000033 RID: 51
  2008. private Vector2 _scrollPosition;
  2009. // Token: 0x04000034 RID: 52
  2010. private Vector2 _colorItemScrollPosition;
  2011. // Token: 0x04000035 RID: 53
  2012. private List<PropMyItem.FolderMenu> _folders = new List<PropMyItem.FolderMenu>();
  2013. // Token: 0x04000036 RID: 54
  2014. private int _selectedMaid;
  2015. // Token: 0x04000037 RID: 55
  2016. private int _selectedFolder;
  2017. // Token: 0x04000038 RID: 56
  2018. private MPN _selectedMPN;
  2019. // Token: 0x04000039 RID: 57
  2020. private int _selectedCategory = -1;
  2021. // Token: 0x0400003A RID: 58
  2022. private MenuInfo _selectedItem;
  2023. // Token: 0x0400003B RID: 59
  2024. private MenuInfo _selectedVariationItem;
  2025. // Token: 0x0400003C RID: 60
  2026. private Dictionary<string, MPN> _categoryMPNDic = new Dictionary<string, MPN>();
  2027. // Token: 0x0400003D RID: 61
  2028. private Dictionary<MPN, string> _menuMPNCategoryDic = new Dictionary<MPN, string>();
  2029. // Token: 0x0400003E RID: 62
  2030. private List<CharacterMgr.Preset> _selectedPresetList = new List<CharacterMgr.Preset>();
  2031. // Token: 0x0400003F RID: 63
  2032. private int _selectedFilter;
  2033. // Token: 0x04000040 RID: 64
  2034. private bool _isFavFilter;
  2035. // Token: 0x04000041 RID: 65
  2036. public Dictionary<MPN, List<MenuInfo>> _mpnMenuListDictionary = new Dictionary<MPN, List<MenuInfo>>();
  2037. // Token: 0x04000042 RID: 66
  2038. private int _selectedEyeClorType;
  2039. // Token: 0x04000043 RID: 67
  2040. private bool _isFreeColor;
  2041. // Token: 0x04000044 RID: 68
  2042. private bool _isForcedInit;
  2043. // Token: 0x04000045 RID: 69
  2044. private bool _isStartUpLoadead;
  2045. // Token: 0x04000046 RID: 70
  2046. private Dictionary<MPN, string> presetRestoreDic_ = new Dictionary<MPN, string>();
  2047. // Token: 0x04000047 RID: 71
  2048. private List<string> _menuList = new List<string>();
  2049. // Token: 0x0400004A RID: 74
  2050. private CharacterMgr.PresetType _selectedPresetType = CharacterMgr.PresetType.All;
  2051. // Token: 0x0400004B RID: 75
  2052. private SavePreset _savepreset = new SavePreset();
  2053. // Token: 0x0400004C RID: 76
  2054. private List<string> _myPatternList = new List<string>();
  2055. // Token: 0x02000010 RID: 16
  2056. private class FolderMenu
  2057. {
  2058. // Token: 0x0600006B RID: 107 RVA: 0x000085F9 File Offset: 0x000067F9
  2059. public FolderMenu(string name, string[] categories)
  2060. {
  2061. this.Name = name;
  2062. this.Categories = categories;
  2063. }
  2064. // Token: 0x04000070 RID: 112
  2065. public string Name = string.Empty;
  2066. // Token: 0x04000071 RID: 113
  2067. public string[] Categories;
  2068. }
  2069. }
  2070. }