diff --git a/Source/GrasscutterTools/App.config b/Source/GrasscutterTools/App.config index 714eb85..a89331c 100644 --- a/Source/GrasscutterTools/App.config +++ b/Source/GrasscutterTools/App.config @@ -19,6 +19,12 @@ zh-CN + + + + + TextMapCHS + diff --git a/Source/GrasscutterTools/FormMain.Designer.cs b/Source/GrasscutterTools/FormMain.Designer.cs index 57cd83e..2b185b0 100644 --- a/Source/GrasscutterTools/FormMain.Designer.cs +++ b/Source/GrasscutterTools/FormMain.Designer.cs @@ -36,6 +36,7 @@ namespace GrasscutterTools this.GrpCommand = new System.Windows.Forms.GroupBox(); this.TCMain = new System.Windows.Forms.TabControl(); this.TPHome = new System.Windows.Forms.TabPage(); + this.BtnOpenTextMap = new System.Windows.Forms.Button(); this.BtnOpenGachaBannerEditor = new System.Windows.Forms.Button(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.GrpSettings = new System.Windows.Forms.GroupBox(); @@ -259,6 +260,7 @@ namespace GrasscutterTools // TPHome // resources.ApplyResources(this.TPHome, "TPHome"); + this.TPHome.Controls.Add(this.BtnOpenTextMap); this.TPHome.Controls.Add(this.BtnOpenGachaBannerEditor); this.TPHome.Controls.Add(this.pictureBox1); this.TPHome.Controls.Add(this.GrpSettings); @@ -266,6 +268,13 @@ namespace GrasscutterTools this.TPHome.Name = "TPHome"; this.TPHome.UseVisualStyleBackColor = true; // + // BtnOpenTextMap + // + resources.ApplyResources(this.BtnOpenTextMap, "BtnOpenTextMap"); + this.BtnOpenTextMap.Name = "BtnOpenTextMap"; + this.BtnOpenTextMap.UseVisualStyleBackColor = true; + this.BtnOpenTextMap.Click += new System.EventHandler(this.BtnOpenTextMap_Click); + // // BtnOpenGachaBannerEditor // resources.ApplyResources(this.BtnOpenGachaBannerEditor, "BtnOpenGachaBannerEditor"); @@ -838,7 +847,7 @@ namespace GrasscutterTools // ImgAvatar // resources.ApplyResources(this.ImgAvatar, "ImgAvatar"); - this.ImgAvatar.Image = global::GrasscutterTools.Properties.Resources.ImgIconGrasscutter; + this.ImgAvatar.Image = global::GrasscutterTools.Properties.Resources.ImgHome; this.ImgAvatar.Name = "ImgAvatar"; this.ImgAvatar.TabStop = false; // @@ -1364,6 +1373,7 @@ namespace GrasscutterTools resources.ApplyResources(this.LnkRCHelp, "LnkRCHelp"); this.LnkRCHelp.Name = "LnkRCHelp"; this.LnkRCHelp.TabStop = true; + this.LnkRCHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LnkRCHelp_LinkClicked); // // LblSessionKey // @@ -1390,6 +1400,7 @@ namespace GrasscutterTools resources.ApplyResources(this.BtnPingHost, "BtnPingHost"); this.BtnPingHost.Name = "BtnPingHost"; this.BtnPingHost.UseVisualStyleBackColor = true; + this.BtnPingHost.Click += new System.EventHandler(this.BtnPingHost_Click); // // FormMain // @@ -1604,6 +1615,7 @@ namespace GrasscutterTools private System.Windows.Forms.TextBox TxtHost; private System.Windows.Forms.Label LblHost; private System.Windows.Forms.Button BtnPingHost; + private System.Windows.Forms.Button BtnOpenTextMap; } } diff --git a/Source/GrasscutterTools/FormMain.cs b/Source/GrasscutterTools/FormMain.cs index f773338..5d5f6b2 100644 --- a/Source/GrasscutterTools/FormMain.cs +++ b/Source/GrasscutterTools/FormMain.cs @@ -110,22 +110,27 @@ namespace GrasscutterTools } } + FormTextMapBrowser FormTextMapBrowser; + private void BtnOpenTextMap_Click(object sender, EventArgs e) + { + if (FormTextMapBrowser == null || FormTextMapBrowser.IsDisposed) + { + FormTextMapBrowser = new FormTextMapBrowser(); + FormTextMapBrowser.Show(); + } + else + { + FormTextMapBrowser.TopMost = true; + FormTextMapBrowser.TopMost = false; + } + } + private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e) { MultiLanguage.SetDefaultLanguage(Languages[CmbLanguage.SelectedIndex]); FormMain_Load(this, EventArgs.Empty); } - private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - MessageBox.Show("TODO:正在开发中", "TODO"); - } - - private void BtnPingHost_Click(object sender, EventArgs e) - { - MessageBox.Show("TODO:正在开发中", "TODO"); - } - #endregion - 主页 - #region - 自定义 - @@ -872,5 +877,19 @@ namespace GrasscutterTools } #endregion + + #region - 远程 - + + private void LnkRCHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + MessageBox.Show("TODO:正在开发中", "TODO"); + } + + private void BtnPingHost_Click(object sender, EventArgs e) + { + MessageBox.Show("TODO:正在开发中", "TODO"); + } + + #endregion } } \ No newline at end of file diff --git a/Source/GrasscutterTools/FormMain.en-us.resx b/Source/GrasscutterTools/FormMain.en-us.resx index 0beffd0..f842c12 100644 --- a/Source/GrasscutterTools/FormMain.en-us.resx +++ b/Source/GrasscutterTools/FormMain.en-us.resx @@ -130,18 +130,27 @@ Command + + Home + + + 120, 23 + + + TextMapBrowser + Banner editor + + Settings + 95, 21 Include UID - - Settings - 74, 38 @@ -151,8 +160,8 @@ Have a nice time! - - Home + + Custom 533, 216 @@ -202,8 +211,8 @@ 267, 23 - - Custom + + Artifact 298, 41 @@ -268,8 +277,8 @@ Main Stat - - Artifact + + Weapon 6, 6 @@ -313,8 +322,8 @@ 147, 216 - - Weapon + + Items @@ -338,15 +347,15 @@ Top, Bottom, Left - - 243, 140 - 249, 162 Records + + 243, 140 + 278, 217 @@ -407,8 +416,8 @@ Give item to player - - Items + + Avatar 88, 161 @@ -448,8 +457,8 @@ The data may not be cleared even if the account is recreated. 200, 25 - - Avatar + + Spawn √ Record @@ -460,6 +469,9 @@ The data may not be cleared even if the account is recreated. Records + + Class + 84, 21 @@ -478,9 +490,6 @@ The data may not be cleared even if the account is recreated. Monster - - Class - 81, 17 @@ -511,8 +520,8 @@ The data may not be cleared even if the account is recreated. 146, 216 - - Spawn + + Scene 66, 94 @@ -541,8 +550,11 @@ The data may not be cleared even if the account is recreated. Tip: Most of the scenes have no effect and cannot be entered. - - Scene + + Stats + + + Stats 26, 17 @@ -550,8 +562,8 @@ Tip: Most of the scenes have no effect and cannot be entered. Tip - - Stats + + Talent Level 283, 24 @@ -583,9 +595,6 @@ Tip: Most of the scenes have no effect and cannot be entered. 128, 23 - - Talent Level - 6, 6 @@ -595,8 +604,11 @@ Tip: Most of the scenes have no effect and cannot be entered. Set current active Avatar data - - Stats + + Manage + + + Account Management 49, 21 @@ -631,8 +643,8 @@ Tip: Most of the scenes have no effect and cannot be entered. 127, 23 - - Account Management + + Permission Management Delete @@ -655,11 +667,8 @@ Tip: Most of the scenes have no effect and cannot be entered. UID - - Permission Management - - - Manage + + About Bottom, Left @@ -670,8 +679,8 @@ Tip: Most of the scenes have no effect and cannot be entered. Grasscutter Tools - - About + + Remote 464, 3 @@ -679,6 +688,9 @@ Tip: Most of the scenes have no effect and cannot be entered. TODO... + + Remote Cell + 35, 17 @@ -700,12 +712,6 @@ Tip: Most of the scenes have no effect and cannot be entered. Test - - Remote Cell - - - Remote - GrasscutterTools diff --git a/Source/GrasscutterTools/FormMain.resx b/Source/GrasscutterTools/FormMain.resx index 6afdd24..28c6087 100644 --- a/Source/GrasscutterTools/FormMain.resx +++ b/Source/GrasscutterTools/FormMain.resx @@ -117,10 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 0 + True @@ -130,9 +130,6 @@ 0 - - TPCustom - 4 @@ -201,8 +198,11 @@ TCMain - - 194, 218 + + 9 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 260, 24 @@ -210,8 +210,8 @@ Top - - 目标UID + + 6 NUDAvatarLevel @@ -219,8 +219,8 @@ 1 - - 4, 26 + + 213, 214 14 @@ -237,11 +237,14 @@ 456, 97 + + 396, 5 + 340, 217 - 2 + 3 3, 4, 3, 4 @@ -267,6 +270,9 @@ 57, 49 + + 46, 17 + 355, 216 @@ -282,8 +288,8 @@ TxtHost - - 32, 17 + + True None @@ -303,11 +309,8 @@ 4 - - TCMain - - - 0 + + 7 44, 17 @@ -330,6 +333,9 @@ 440, 100 + + True + 生成 @@ -408,8 +414,11 @@ 微软雅黑, 10pt, style=Bold - - 6, 25 + + 目标UID + + + GrpAccount TPWeapon @@ -417,9 +426,6 @@ 238, 23 - - 12 - 2 @@ -429,6 +435,9 @@ NUDArtifactLevel + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 311, 8 @@ -474,9 +483,6 @@ TPHome - - 0 - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -531,8 +537,8 @@ 3, 19 - - 3 + + 6 2 @@ -543,8 +549,11 @@ 5 - - 8 + + 1 + + + 366, 39 2 @@ -591,8 +600,8 @@ LblRemoteTODO - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Top 378, 215 @@ -705,8 +714,8 @@ GrpRemoteCommand - - 4 + + 13 精炼等级 @@ -720,8 +729,8 @@ TopCenter - - 396, 31 + + 4, 26 TPAbout @@ -801,8 +810,8 @@ 3, 3, 3, 3 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 437, 11 True @@ -813,6 +822,9 @@ 75, 23 + + 3, 3, 3, 3 + 4, 26 @@ -831,9 +843,6 @@ TPArtifact - - 265, 31 - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -843,11 +852,8 @@ NPC - - LblArtifactLevel - - - 5 + + GrpGiveItemRecord 3 @@ -864,8 +870,8 @@ 250, 21 - - TCMain + + 5 True @@ -888,8 +894,8 @@ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 43, 216 GrpSetStats @@ -897,8 +903,8 @@ GrpRemoteCommand - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 2 51, 21 @@ -918,8 +924,8 @@ GrpRemoteCommand - - 6 + + LblSessionKey 7 @@ -1026,9 +1032,6 @@ 0 - - + 创建 - 10 @@ -1047,14 +1050,14 @@ LnkTalentNormalATK - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 299, 162 12, 12 - - TPSpawn + + 99, 218 True @@ -1065,9 +1068,6 @@ 3 - - TPManage - ListGameItems @@ -1083,6 +1083,9 @@ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + TPHome + Bottom, Left @@ -1095,9 +1098,6 @@ 10 - - 17 - TPItem @@ -1116,14 +1116,14 @@ 2 - - 5 + + 角色 https://127.0.0.1 - - 会话键 + + 3 System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1152,6 +1152,9 @@ TxtCommand + + NoControl + 92, 102 @@ -1170,8 +1173,8 @@ TPCustom - - 610, 275 + + 4 Top @@ -1203,9 +1206,6 @@ 7, 24 - - 60, 23 - LblSubAttribution @@ -1240,9 +1240,6 @@ True - - 6 - 8 @@ -1280,7 +1277,7 @@ GrpAccount - 3 + 4 5 @@ -1315,12 +1312,18 @@ 6 + + 142, 129 + True 2 + + BtnLoadCustomCommands + 200, 23 @@ -1360,6 +1363,9 @@ Bottom, Left + + Bottom + Top, Right @@ -1375,8 +1381,8 @@ Top - - 7 + + 17 50, 23 @@ -1387,6 +1393,9 @@ True + + 8 + 4 @@ -1426,6 +1435,9 @@ System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 45 + TPHome @@ -1486,9 +1498,6 @@ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - TPArtifact @@ -1498,9 +1507,6 @@ 2 - - Top - 0 @@ -1519,6 +1525,9 @@ 用户名 + + 32, 17 + True @@ -1536,8 +1545,8 @@ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ChkAutoCopy + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 32, 17 @@ -1578,21 +1587,24 @@ 200, 153 + + GrpSetStats + 602, 245 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 5 + TPCustom 1 - - × 删除 - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1623,6 +1635,9 @@ LblCustomName + + LblArtifactLevel + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1635,9 +1650,6 @@ 15 - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Bottom, Right @@ -1647,21 +1659,30 @@ 610, 56 - - 41, 22 + + Top System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Bottom, Left + 4, 26 True + + 0 + 场景 + + 175, 217 + 1 @@ -1699,10 +1720,10 @@ 1 - 1 + 2 - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 文本浏览器 × 删除 @@ -1746,6 +1767,9 @@ NUDArtifactStars + + 5 + 4 @@ -1755,9 +1779,6 @@ TPWeapon - - 6 - Bottom, Left @@ -1770,8 +1791,8 @@ 自定义 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 1 17 @@ -1779,8 +1800,8 @@ 44, 216 - - True + + GrpPermission Top, Bottom, Left, Right @@ -1821,9 +1842,6 @@ 0 - - 9 - 6, 219 @@ -1869,8 +1887,8 @@ ListEntity - - 1 + + Top System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1887,17 +1905,14 @@ GrpTalentLevel - - 250, 239 - 6 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 等级 + + TCMain True @@ -1962,15 +1977,15 @@ 311, 98 - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 0 LblGameItemAmount + + TPAvatar + True @@ -1983,12 +1998,21 @@ 角色 - - Top, Right + + 41, 22 + + + 1 + + + TPSpawn 120, 25 + + 100, 23 + 4 @@ -2004,15 +2028,15 @@ 106, 23 - - 602, 245 - 7 Top + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 7, 17 @@ -2054,6 +2078,9 @@ 15 + + % + 2 @@ -2063,9 +2090,6 @@ 6, 122 - - 99, 218 - $this @@ -2090,8 +2114,8 @@ 0 - - 301, 82 + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 CmbArtifactPart @@ -2111,9 +2135,6 @@ Fill - - Top, Bottom, Left, Right - Bottom @@ -2123,9 +2144,6 @@ 测试 - - LblAddSubAttr - 11 @@ -2135,6 +2153,9 @@ 8 + + 3, 3, 3, 3 + System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -2153,21 +2174,18 @@ 4 - - 213, 214 - 100, 218 1 + + 会话键 + 物品 - - 3 - LblWeaponAmount @@ -2213,8 +2231,8 @@ 0 - - 244, 162 + + 6, 25 System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -2234,9 +2252,6 @@ 命令 - - 角色 - BtnPermAdd @@ -2294,8 +2309,8 @@ Top - - BtnCreateAccount + + 250, 239 物品记录本 @@ -2360,8 +2375,8 @@ BtnDeleteAccount - - 45 + + System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 4, 26 @@ -2372,8 +2387,8 @@ Bottom, Left - - TPAvatar + + 3 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -2411,11 +2426,14 @@ TPHome + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + LblHost - - 3, 3, 3, 3 + + 4 GrpPermission @@ -2432,20 +2450,20 @@ 200, 208 - - TPManage + + BtnOpenTextMap 16, 220 - - 46, 17 + + 358, 31 TPArtifact - - GrpGiveItemRecord + + 112, 122 4 @@ -2462,8 +2480,8 @@ 2 - - 5 + + Top, Bottom, Left, Right 16, 25 @@ -2498,8 +2516,11 @@ TPArtifact - - Top + + 0 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 GrpEntityType @@ -2531,15 +2552,12 @@ 圣遗物 - - 396, 5 + + 602, 245 39, 17 - - 1 - 549, 24 @@ -2576,6 +2594,9 @@ 70, 23 + + 244, 162 + 星级 @@ -2585,11 +2606,14 @@ ListSpawnLogs + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + True - - True + + 等级 Right @@ -2600,8 +2624,8 @@ GrpSettings - - 20, 19 + + + 创建 332, 70 @@ -2615,15 +2639,15 @@ 7 - - GrpSetStats + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TPSpawn GrpSettings - - 299, 162 - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -2660,9 +2684,6 @@ $this - - 328, 41 - 11 @@ -2720,11 +2741,8 @@ TPScene - - 4 - - - System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 602, 245 TPSpawn @@ -2732,18 +2750,12 @@ 142, 99 - - 8 - - - True + + ChkAutoCopy 1 - - TPSpawn - TCMain @@ -2753,14 +2765,14 @@ LblClearSubAttrCheckedList - - 142, 129 + + 602, 245 Top, Bottom, Left, Right - - Top + + False 摆件 @@ -2792,19 +2804,25 @@ LnkTalentE - - 3, 3, 3, 3 + + 522, 3 - - 2 + + BtnCreateAccount + + + True + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 警告!添加官方未使用的角色可能导致帐号存档损坏,无法进行游戏。 即使删号重来,数据可能也不会清除。因此请谨慎添加 (例如凯特、裸男或者测试角色之类的...) - - 6, 103 + + Top, Right 40, 50 @@ -2818,6 +2836,9 @@ TPArtifact + + 10 + 7 @@ -2860,8 +2881,8 @@ 2 - - Zoom + + 2 Bottom, Right @@ -2953,6 +2974,9 @@ ListSubAttributionChecked + + Zoom + 10 @@ -2968,24 +2992,18 @@ 44, 22 - - 602, 245 - 602, 245 407, 22 - - 0 + + 6, 103 6 - - 358, 31 - 32, 17 @@ -2996,7 +3014,7 @@ 158, 25 - 0 + 1 0, 0 @@ -3004,9 +3022,6 @@ Bottom, Left - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - CenterImage @@ -3031,17 +3046,20 @@ 5, 218 + + TPItem + 19, 17 TPManage - - 13 + + True - - 列表 + + LblAddSubAttr System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -3094,8 +3112,8 @@ TCMain - - BtnLoadCustomCommands + + groupBox1 4 @@ -3106,9 +3124,6 @@ LblLanguage - - 602, 245 - 导出 @@ -3118,6 +3133,9 @@ 32, 17 + + 194, 218 + GrpPermission @@ -3136,12 +3154,15 @@ CmbArtifactSet - - TCMain + + 610, 275 540, 60 + + 396, 31 + 200, 23 @@ -3154,8 +3175,8 @@ 265, 60 - - 5 + + 8 3 @@ -3172,14 +3193,14 @@ 14 + + 5 + NUDGameItemAmout - - 437, 11 - - - % + + TCMain System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -3208,8 +3229,8 @@ Top - - 522, 3 + + 50, 23 关于 @@ -3232,6 +3253,9 @@ System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 20, 19 + 334, 102 @@ -3247,17 +3271,17 @@ 1 - - 175, 217 + + True - - 602, 160 + + Bottom, Left - - 366, 39 + + 60, 23 - - 289, 25 + + NoControl None @@ -3268,6 +3292,9 @@ RbEntityMonster + + 602, 160 + TPArtifact @@ -3280,8 +3307,8 @@ 9, 26 - - 权限管理 + + TPManage 60, 23 @@ -3297,15 +3324,15 @@ 如果愿意请我喝一杯奶茶,那就更好了 : ) 指令生成有问题,或者有新的功能请求,都可以来Github提出 + + True + pictureBox2 LblMainAttribution - - 43, 216 - Top, Bottom, Right @@ -3354,8 +3381,8 @@ Top, Right - - True + + pictureBox1 TPAvatar @@ -3375,8 +3402,8 @@ TPArtifact - - 50, 23 + + NUDWeaponAmout True @@ -3420,8 +3447,8 @@ 68, 94 - - GrpAccount + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 True @@ -3429,6 +3456,9 @@ 92, 71 + + 265, 31 + GrpPermission @@ -3462,9 +3492,15 @@ 1 + + 4, 26 + TPSpawn + + TPManage + 60, 23 @@ -3477,8 +3513,8 @@ 2 - - 602, 245 + + 328, 41 GrpSettings @@ -3507,8 +3543,8 @@ 238, 208 - - True + + 列表 1 @@ -3528,14 +3564,14 @@ 2 - - Bottom, Left + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 4 - - Bottom, Left + + 602, 245 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -3558,9 +3594,6 @@ 数量 - - NUDWeaponAmout - 1 @@ -3570,8 +3603,8 @@ 4 - - 1 + + 8 CmbStat @@ -3582,8 +3615,8 @@ TPScene - - TPItem + + 权限管理 32, 17 @@ -3615,9 +3648,6 @@ 280, 280 - - Top, Bottom - 等级 @@ -3627,8 +3657,11 @@ 6, 49 - - 10 + + 6 + + + 0 42, 17 @@ -3642,9 +3675,6 @@ 150, 25 - - pictureBox1 - 2 @@ -3663,8 +3693,8 @@ BtnRemoveSpawnLog - - False + + 289, 25 273, 11 @@ -3678,8 +3708,8 @@ Top, Bottom, Left, Right - - groupBox1 + + × 删除 TCMain @@ -3711,11 +3741,11 @@ LnkGithub - - Bottom + + TPCustom - - 2 + + Top, Bottom True @@ -3735,8 +3765,11 @@ TPArtifact - - 4, 26 + + TCMain + + + 301, 82 TPItem @@ -3750,9 +3783,6 @@ 6 - - GrpPermission - 7, 52 @@ -3777,8 +3807,8 @@ True - - LblSessionKey + + 12 140, 23 @@ -3789,7 +3819,7 @@ 3 - + True - + \ No newline at end of file diff --git a/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs b/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs new file mode 100644 index 0000000..7e8cecf --- /dev/null +++ b/Source/GrasscutterTools/FormTextMapBrowser.Designer.cs @@ -0,0 +1,158 @@ +namespace GrasscutterTools +{ + partial class FormTextMapBrowser + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormTextMapBrowser)); + this.TxtTextMapFilter = new System.Windows.Forms.TextBox(); + this.BtnSelectRecoursePath = new System.Windows.Forms.Button(); + this.CmbLanguage = new System.Windows.Forms.ComboBox(); + this.LblLanguage = new System.Windows.Forms.Label(); + this.ChkTopMost = new System.Windows.Forms.CheckBox(); + this.LblResourcesPath = new System.Windows.Forms.Label(); + this.BtnSearch = new System.Windows.Forms.Button(); + this.DGVTextMap = new System.Windows.Forms.DataGridView(); + this.ColumnHash = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColumnID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColumnText = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).BeginInit(); + this.SuspendLayout(); + // + // TxtTextMapFilter + // + resources.ApplyResources(this.TxtTextMapFilter, "TxtTextMapFilter"); + this.TxtTextMapFilter.Name = "TxtTextMapFilter"; + this.TxtTextMapFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtTextMapFilter_KeyDown); + // + // BtnSelectRecoursePath + // + resources.ApplyResources(this.BtnSelectRecoursePath, "BtnSelectRecoursePath"); + this.BtnSelectRecoursePath.Name = "BtnSelectRecoursePath"; + this.BtnSelectRecoursePath.UseVisualStyleBackColor = true; + this.BtnSelectRecoursePath.Click += new System.EventHandler(this.BtnSelectRecoursePath_Click); + // + // CmbLanguage + // + resources.ApplyResources(this.CmbLanguage, "CmbLanguage"); + this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CmbLanguage.FormattingEnabled = true; + this.CmbLanguage.Name = "CmbLanguage"; + this.CmbLanguage.SelectedIndexChanged += new System.EventHandler(this.CmbLanguage_SelectedIndexChanged); + // + // LblLanguage + // + resources.ApplyResources(this.LblLanguage, "LblLanguage"); + this.LblLanguage.Name = "LblLanguage"; + // + // ChkTopMost + // + resources.ApplyResources(this.ChkTopMost, "ChkTopMost"); + this.ChkTopMost.Name = "ChkTopMost"; + this.ChkTopMost.UseVisualStyleBackColor = true; + this.ChkTopMost.CheckedChanged += new System.EventHandler(this.ChkTopMost_CheckedChanged); + // + // LblResourcesPath + // + resources.ApplyResources(this.LblResourcesPath, "LblResourcesPath"); + this.LblResourcesPath.Name = "LblResourcesPath"; + // + // BtnSearch + // + resources.ApplyResources(this.BtnSearch, "BtnSearch"); + this.BtnSearch.Name = "BtnSearch"; + this.BtnSearch.UseVisualStyleBackColor = true; + this.BtnSearch.Click += new System.EventHandler(this.BtnSearch_Click); + // + // DGVTextMap + // + this.DGVTextMap.AllowUserToAddRows = false; + this.DGVTextMap.AllowUserToDeleteRows = false; + this.DGVTextMap.AllowUserToResizeRows = false; + resources.ApplyResources(this.DGVTextMap, "DGVTextMap"); + this.DGVTextMap.BackgroundColor = System.Drawing.Color.White; + this.DGVTextMap.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.DGVTextMap.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.ColumnHash, + this.ColumnID, + this.ColumnText}); + this.DGVTextMap.Name = "DGVTextMap"; + this.DGVTextMap.ReadOnly = true; + this.DGVTextMap.RowTemplate.Height = 23; + // + // ColumnHash + // + resources.ApplyResources(this.ColumnHash, "ColumnHash"); + this.ColumnHash.Name = "ColumnHash"; + this.ColumnHash.ReadOnly = true; + // + // ColumnID + // + resources.ApplyResources(this.ColumnID, "ColumnID"); + this.ColumnID.Name = "ColumnID"; + this.ColumnID.ReadOnly = true; + // + // ColumnText + // + resources.ApplyResources(this.ColumnText, "ColumnText"); + this.ColumnText.Name = "ColumnText"; + this.ColumnText.ReadOnly = true; + // + // FormTextMapBrowser + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.DGVTextMap); + this.Controls.Add(this.BtnSearch); + this.Controls.Add(this.ChkTopMost); + this.Controls.Add(this.LblLanguage); + this.Controls.Add(this.CmbLanguage); + this.Controls.Add(this.LblResourcesPath); + this.Controls.Add(this.BtnSelectRecoursePath); + this.Controls.Add(this.TxtTextMapFilter); + this.Name = "FormTextMapBrowser"; + this.Load += new System.EventHandler(this.FormTextMapBrowser_Load); + ((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TextBox TxtTextMapFilter; + private System.Windows.Forms.Button BtnSelectRecoursePath; + private System.Windows.Forms.ComboBox CmbLanguage; + private System.Windows.Forms.Label LblLanguage; + private System.Windows.Forms.CheckBox ChkTopMost; + private System.Windows.Forms.Label LblResourcesPath; + private System.Windows.Forms.Button BtnSearch; + private System.Windows.Forms.DataGridView DGVTextMap; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnHash; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnID; + private System.Windows.Forms.DataGridViewTextBoxColumn ColumnText; + } +} \ No newline at end of file diff --git a/Source/GrasscutterTools/FormTextMapBrowser.cs b/Source/GrasscutterTools/FormTextMapBrowser.cs new file mode 100644 index 0000000..4339516 --- /dev/null +++ b/Source/GrasscutterTools/FormTextMapBrowser.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +using GrasscutterTools.Game; +using GrasscutterTools.Properties; + +namespace GrasscutterTools +{ + public partial class FormTextMapBrowser : Form + { + public FormTextMapBrowser() + { + InitializeComponent(); + Icon = Resources.IconGrasscutter; + } + + private void FormTextMapBrowser_Load(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(Settings.Default.ResourcesDirPath)) + { + LoadResources(Settings.Default.ResourcesDirPath); + } + } + + private TextMapData data; + + private void LoadResources(string resourcesDirPath) + { + try + { + Cursor = Cursors.WaitCursor; + Application.DoEvents(); + + data = new TextMapData(resourcesDirPath); + LblResourcesPath.Text = resourcesDirPath; + if (Settings.Default.ResourcesDirPath != resourcesDirPath) + { + Settings.Default.ResourcesDirPath = resourcesDirPath; + Settings.Default.Save(); + } + + CmbLanguage.Items.Clear(); + CmbLanguage.Items.AddRange(data.TextMapFiles); + if (!string.IsNullOrEmpty(Settings.Default.TextMapFileName)) + { + var i = CmbLanguage.Items.IndexOf(Settings.Default.TextMapFileName); + if (i != -1) + CmbLanguage.SelectedIndex = i; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + finally + { + Cursor = Cursors.Default; + } + } + + private void BtnSelectRecoursePath_Click(object sender, EventArgs e) + { + var dir = new FolderBrowserDialog() + { + ShowNewFolderButton = false, + Description = "./Gasscutter/resources", + }; + if (dir.ShowDialog() == DialogResult.OK) + { + LoadResources(dir.SelectedPath); + } + } + + private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e) + { + if (CmbLanguage.SelectedIndex == -1 || data == null) + return; + try + { + Cursor = Cursors.WaitCursor; + Application.DoEvents(); + data.LoadTextMap(data.TextMapFilePaths[CmbLanguage.SelectedIndex]); + + GenLines(); + Settings.Default.TextMapFileName = CmbLanguage.Text; + Settings.Default.Save(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + finally + { + Cursor = Cursors.Default; + } + } + + private List Items; + + private void GenLines() + { + List items = new List(data.TextMap.Count); + foreach (var kv in data.TextMap) + { + if (data.ManualTextMap.TryGetValue(kv.Key, out string id)) + items.Add(new ListViewItem(new string[] { kv.Key, id, kv.Value })); + else + items.Add(new ListViewItem(new string[] { kv.Key, "", kv.Value })); + } + Items = items; + } + + private void ChkTopMost_CheckedChanged(object sender, EventArgs e) + { + TopMost = ChkTopMost.Checked; + } + + private void BtnSearch_Click(object sender, EventArgs e) + { + if (Items == null) + { + MessageBox.Show("请先选择资源目录,并选择对应语言文件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + var filter = TxtTextMapFilter.Text.Trim(); + if (string.IsNullOrEmpty(filter)) + return; + Regex r; + try + { + r = new Regex(filter, RegexOptions.IgnoreCase); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + try + { + Cursor = Cursors.WaitCursor; + Application.DoEvents(); + + var result = data.ManualTextMap.Where(kv => r.Match(kv.Value).Success) + .Select(kv => new { Hash = kv.Key, Id = kv.Value, Text = data.TextMap[kv.Key] }) + .Concat( + data.TextMap.Where(kv => r.Match(kv.Key).Success || r.Match(kv.Value).Success) + .Select(kv => new { + Hash = kv.Key, + Id = data.ManualTextMap.TryGetValue(kv.Key, out string id) ? id : "", + Text = kv.Value + }) + ).ToList(); + + DGVTextMap.SuspendLayout(); + DGVTextMap.Rows.Clear(); + for (int i = 0; i < result.Count; i++) + { + DGVTextMap.Rows.Add(); + DGVTextMap.Rows[i].Cells[0].Value = result[i].Hash; + DGVTextMap.Rows[i].Cells[1].Value = result[i].Id; + DGVTextMap.Rows[i].Cells[2].Value = result[i].Text; + } + DGVTextMap.ResumeLayout(); + } + finally + { + Cursor = Cursors.Default; + } + } + + private void TxtTextMapFilter_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + BtnSearch_Click(sender, e); + } + + } +} \ No newline at end of file diff --git a/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx b/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx new file mode 100644 index 0000000..a92a730 --- /dev/null +++ b/Source/GrasscutterTools/FormTextMapBrowser.en-US.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Select + + + + 477, 15 + + + 65, 17 + + + Language + + + 80, 21 + + + TopMost + + + 294, 17 + + + Please select a resource directory + + + Search + + + Text Map Browser + + \ No newline at end of file diff --git a/Source/GrasscutterTools/FormTextMapBrowser.resx b/Source/GrasscutterTools/FormTextMapBrowser.resx new file mode 100644 index 0000000..3c70f2c --- /dev/null +++ b/Source/GrasscutterTools/FormTextMapBrowser.resx @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Top, Left, Right + + + + 12, 41 + + + 555, 23 + + + + 1 + + + TxtTextMapFilter + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 7 + + + 96, 12 + + + 75, 23 + + + 2 + + + 浏览 + + + BtnSelectRecoursePath + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 6 + + + Top, Right + + + 548, 12 + + + 100, 25 + + + 4 + + + CmbLanguage + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + Top, Right + + + True + + + 510, 15 + + + 32, 17 + + + 5 + + + 语言 + + + LblLanguage + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + True + + + 12, 14 + + + 51, 21 + + + 7 + + + 置顶 + + + ChkTopMost + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + Top, Left, Right + + + 177, 15 + + + 327, 17 + + + 3 + + + 请选择Resources路径 + + + LblResourcesPath + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + Top, Right + + + 573, 41 + + + 75, 23 + + + 8 + + + 搜索 + + + BtnSearch + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top, Bottom, Left, Right + + + True + + + Hash + + + 80 + + + True + + + ID + + + 240 + + + True + + + Text + + + 250 + + + 12, 70 + + + 636, 379 + + + 9 + + + DGVTextMap + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + True + + + 7, 17 + + + 660, 461 + + + 微软雅黑, 9pt + + + 4, 4, 4, 4 + + + 600, 400 + + + CenterScreen + + + 文本映射表浏览器 + + + ColumnHash + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ColumnID + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ColumnText + + + System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + FormTextMapBrowser + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/GrasscutterTools/Game/ClimateType.cs b/Source/GrasscutterTools/Game/ClimateType.cs deleted file mode 100644 index b177f1f..0000000 --- a/Source/GrasscutterTools/Game/ClimateType.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace GrasscutterTools.Game -{ - internal enum ClimateType - { - /// - /// 无 - /// - None, - - /// - /// 晴天 - /// - Sunny, - - /// - /// 多云 - /// - Cloudy, - - /// - /// 雨 - /// - Rain, - - /// - /// 雷暴 - /// - Thunderstorm, - - /// - /// 雪 - /// - Snow, - - /// - /// 雾 - /// - Mist - } -} diff --git a/Source/GrasscutterTools/Game/TextMapData.cs b/Source/GrasscutterTools/Game/TextMapData.cs new file mode 100644 index 0000000..9adb539 --- /dev/null +++ b/Source/GrasscutterTools/Game/TextMapData.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Newtonsoft.Json; + +namespace GrasscutterTools.Game +{ + public class TextMapData + { + public TextMapData(string resourcesDirPath) + { + LoadManualTextMap(Path.Combine(resourcesDirPath, "ExcelBinOutput", "ManualTextMapConfigData.json")); + LoadTextMaps(Path.Combine(resourcesDirPath, "TextMap")); + } + + public Dictionary ManualTextMap; + public Dictionary TextMap; + public string[] TextMapFilePaths; + public string[] TextMapFiles; + + void LoadManualTextMap(string manualTextMapPath) + { + using (var fs = File.OpenRead(manualTextMapPath)) + using (var sr = new StreamReader(fs)) + using (var reader = new JsonTextReader(sr)) + { + ManualTextMap = new Dictionary(); + while (reader.Read()) + { + if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == "TextMapId") + { + var textMapId = reader.ReadAsString(); + reader.Read(); + ManualTextMap.Add(reader.ReadAsString(), textMapId); + } + } + } + } + + void LoadTextMaps(string textMapDirPath) + { + TextMapFilePaths = Directory.GetFiles(textMapDirPath, "TextMap*.json"); + if (TextMapFilePaths.Length == 0) + throw new FileNotFoundException("TextMap*.json Not Found"); + TextMapFiles = TextMapFilePaths.Select(n => Path.GetFileNameWithoutExtension(n)).ToArray(); + } + + public void LoadTextMap(string textMapPath) + { + using (var fs = File.OpenRead(textMapPath)) + using (var sr = new StreamReader(fs)) + using (var reader = new JsonTextReader(sr)) + { + TextMap = new Dictionary(); + while (reader.Read()) + { + if (reader.TokenType == JsonToken.PropertyName) + { + TextMap.Add((string)reader.Value, reader.ReadAsString()); + } + } + } + } + + } +} diff --git a/Source/GrasscutterTools/GrasscutterTools.csproj b/Source/GrasscutterTools/GrasscutterTools.csproj index 9609e28..010c72a 100644 --- a/Source/GrasscutterTools/GrasscutterTools.csproj +++ b/Source/GrasscutterTools/GrasscutterTools.csproj @@ -204,13 +204,19 @@ FormMain.cs - + + Form + + + FormTextMapBrowser.cs + + @@ -227,6 +233,12 @@ FormMain.cs + + FormTextMapBrowser.cs + + + FormTextMapBrowser.cs + ResXFileCodeGenerator Resources.en-us.Designer.cs @@ -281,6 +293,7 @@ + diff --git a/Source/GrasscutterTools/Properties/Resources.Designer.cs b/Source/GrasscutterTools/Properties/Resources.Designer.cs index 474e45a..f86c89a 100644 --- a/Source/GrasscutterTools/Properties/Resources.Designer.cs +++ b/Source/GrasscutterTools/Properties/Resources.Designer.cs @@ -460,6 +460,16 @@ namespace GrasscutterTools.Properties { } } + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap ImgHome { + get { + object obj = ResourceManager.GetObject("ImgHome", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/Source/GrasscutterTools/Properties/Resources.resx b/Source/GrasscutterTools/Properties/Resources.resx index 8083bb9..d8f17ad 100644 --- a/Source/GrasscutterTools/Properties/Resources.resx +++ b/Source/GrasscutterTools/Properties/Resources.resx @@ -151,6 +151,9 @@ ..\Resources\IconGrasscutter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ImgHome.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\IconGrasscutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/Source/GrasscutterTools/Properties/Settings.Designer.cs b/Source/GrasscutterTools/Properties/Settings.Designer.cs index f12c5a4..561465d 100644 --- a/Source/GrasscutterTools/Properties/Settings.Designer.cs +++ b/Source/GrasscutterTools/Properties/Settings.Designer.cs @@ -58,5 +58,29 @@ namespace GrasscutterTools.Properties { this["DefaultLanguage"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string ResourcesDirPath { + get { + return ((string)(this["ResourcesDirPath"])); + } + set { + this["ResourcesDirPath"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("TextMapCHS")] + public string TextMapFileName { + get { + return ((string)(this["TextMapFileName"])); + } + set { + this["TextMapFileName"] = value; + } + } } } diff --git a/Source/GrasscutterTools/Properties/Settings.settings b/Source/GrasscutterTools/Properties/Settings.settings index e6ae6b1..df07cb4 100644 --- a/Source/GrasscutterTools/Properties/Settings.settings +++ b/Source/GrasscutterTools/Properties/Settings.settings @@ -11,5 +11,11 @@ zh-CN + + + + + TextMapCHS + \ No newline at end of file diff --git a/Source/GrasscutterTools/Resources/ImgHome.jpg b/Source/GrasscutterTools/Resources/ImgHome.jpg new file mode 100644 index 0000000..d567f13 Binary files /dev/null and b/Source/GrasscutterTools/Resources/ImgHome.jpg differ