Add Drop.json Path Setting

Update Drop.json Editor UI
This commit is contained in:
2022-10-26 13:03:54 +08:00
parent c860180564
commit 60e54b1c91
7 changed files with 189 additions and 53 deletions

View File

@ -43,6 +43,9 @@
<setting name="IsTopMost" serializeAs="String">
<value>False</value>
</setting>
<setting name="DropJsonPath" serializeAs="String">
<value />
</setting>
</GrasscutterTools.Properties.Settings>
</userSettings>
</configuration>

View File

@ -42,7 +42,7 @@
this.BtnCopy = new System.Windows.Forms.Button();
this.TxtItem = new System.Windows.Forms.TextBox();
this.BtnDelete = new System.Windows.Forms.Button();
this.BtnAdd = new System.Windows.Forms.Button();
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
this.LblItemLabel = new System.Windows.Forms.Label();
this.LblTilde2 = new System.Windows.Forms.Label();
this.LblTilde1 = new System.Windows.Forms.Label();
@ -55,6 +55,7 @@
this.ListItems = new System.Windows.Forms.ListBox();
this.GrpMonsterList = new System.Windows.Forms.GroupBox();
this.GrpItemList = new System.Windows.Forms.GroupBox();
this.BtnCopyAll = new System.Windows.Forms.Button();
this.GrpDropList.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDMaxWeight)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDMinWeight)).BeginInit();
@ -102,6 +103,9 @@
//
// ListMonsters
//
this.ListMonsters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ListMonsters.FormattingEnabled = true;
this.ListMonsters.ItemHeight = 17;
this.ListMonsters.Location = new System.Drawing.Point(6, 51);
@ -112,6 +116,8 @@
//
// TxtMonsterFilter
//
this.TxtMonsterFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtMonsterFilter.Location = new System.Drawing.Point(6, 22);
this.TxtMonsterFilter.Name = "TxtMonsterFilter";
this.TxtMonsterFilter.Size = new System.Drawing.Size(238, 23);
@ -120,6 +126,8 @@
//
// TxtItemFilter
//
this.TxtItemFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtItemFilter.Location = new System.Drawing.Point(6, 22);
this.TxtItemFilter.Name = "TxtItemFilter";
this.TxtItemFilter.Size = new System.Drawing.Size(238, 23);
@ -128,22 +136,29 @@
//
// ListDropData
//
this.ListDropData.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ListDropData.FormattingEnabled = true;
this.ListDropData.ItemHeight = 17;
this.ListDropData.Location = new System.Drawing.Point(6, 22);
this.ListDropData.Name = "ListDropData";
this.ListDropData.Size = new System.Drawing.Size(238, 174);
this.ListDropData.Size = new System.Drawing.Size(288, 174);
this.ListDropData.TabIndex = 7;
this.ListDropData.SelectedIndexChanged += new System.EventHandler(this.ListDropData_SelectedIndexChanged);
//
// GrpDropList
//
this.GrpDropList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.GrpDropList.Controls.Add(this.BtnCopyAll);
this.GrpDropList.Controls.Add(this.BtnClear);
this.GrpDropList.Controls.Add(this.BtnPaste);
this.GrpDropList.Controls.Add(this.BtnCopy);
this.GrpDropList.Controls.Add(this.TxtItem);
this.GrpDropList.Controls.Add(this.BtnDelete);
this.GrpDropList.Controls.Add(this.BtnAdd);
this.GrpDropList.Controls.Add(this.BtnAddOrUpdate);
this.GrpDropList.Controls.Add(this.LblItemLabel);
this.GrpDropList.Controls.Add(this.LblTilde2);
this.GrpDropList.Controls.Add(this.LblTilde1);
@ -156,67 +171,79 @@
this.GrpDropList.Controls.Add(this.ListDropData);
this.GrpDropList.Location = new System.Drawing.Point(270, 41);
this.GrpDropList.Name = "GrpDropList";
this.GrpDropList.Size = new System.Drawing.Size(250, 400);
this.GrpDropList.Size = new System.Drawing.Size(300, 400);
this.GrpDropList.TabIndex = 8;
this.GrpDropList.TabStop = false;
this.GrpDropList.Text = "掉落列表";
//
// BtnClear
//
this.BtnClear.Location = new System.Drawing.Point(169, 202);
this.BtnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnClear.Location = new System.Drawing.Point(87, 230);
this.BtnClear.Name = "BtnClear";
this.BtnClear.Size = new System.Drawing.Size(75, 23);
this.BtnClear.TabIndex = 21;
this.BtnClear.Text = "× 清空";
this.BtnClear.UseVisualStyleBackColor = true;
this.BtnClear.Click += new System.EventHandler(this.BtnClear_Click);
//
// BtnPaste
//
this.BtnPaste.Location = new System.Drawing.Point(87, 202);
this.BtnPaste.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnPaste.Location = new System.Drawing.Point(168, 202);
this.BtnPaste.Name = "BtnPaste";
this.BtnPaste.Size = new System.Drawing.Size(75, 23);
this.BtnPaste.TabIndex = 20;
this.BtnPaste.Text = "粘贴";
this.BtnPaste.UseVisualStyleBackColor = true;
this.BtnPaste.Click += new System.EventHandler(this.BtnPaste_Click);
//
// BtnCopy
//
this.BtnCopy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnCopy.Location = new System.Drawing.Point(6, 202);
this.BtnCopy.Name = "BtnCopy";
this.BtnCopy.Size = new System.Drawing.Size(75, 23);
this.BtnCopy.TabIndex = 19;
this.BtnCopy.Text = "复制";
this.BtnCopy.UseVisualStyleBackColor = true;
this.BtnCopy.Click += new System.EventHandler(this.BtnCopy_Click);
//
// TxtItem
//
this.TxtItem.Location = new System.Drawing.Point(87, 253);
this.TxtItem.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.TxtItem.Location = new System.Drawing.Point(113, 280);
this.TxtItem.Name = "TxtItem";
this.TxtItem.Size = new System.Drawing.Size(137, 23);
this.TxtItem.TabIndex = 12;
//
// BtnDelete
//
this.BtnDelete.Location = new System.Drawing.Point(87, 360);
this.BtnDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnDelete.Location = new System.Drawing.Point(6, 230);
this.BtnDelete.Name = "BtnDelete";
this.BtnDelete.Size = new System.Drawing.Size(75, 23);
this.BtnDelete.TabIndex = 18;
this.BtnDelete.Text = "- 删除";
this.BtnDelete.UseVisualStyleBackColor = true;
this.BtnDelete.Click += new System.EventHandler(this.BtnDelete_Click);
//
// BtnAdd
// BtnAddOrUpdate
//
this.BtnAdd.Location = new System.Drawing.Point(6, 360);
this.BtnAdd.Name = "BtnAdd";
this.BtnAdd.Size = new System.Drawing.Size(75, 23);
this.BtnAdd.TabIndex = 17;
this.BtnAdd.Text = "+ 添加";
this.BtnAdd.UseVisualStyleBackColor = true;
this.BtnAddOrUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnAddOrUpdate.Location = new System.Drawing.Point(54, 371);
this.BtnAddOrUpdate.Name = "BtnAddOrUpdate";
this.BtnAddOrUpdate.Size = new System.Drawing.Size(196, 23);
this.BtnAddOrUpdate.TabIndex = 17;
this.BtnAddOrUpdate.Text = "+ 添加";
this.BtnAddOrUpdate.UseVisualStyleBackColor = true;
this.BtnAddOrUpdate.Click += new System.EventHandler(this.BtnAddOrUpdate_Click);
//
// LblItemLabel
//
this.LblItemLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LblItemLabel.AutoSize = true;
this.LblItemLabel.Location = new System.Drawing.Point(25, 256);
this.LblItemLabel.Location = new System.Drawing.Point(51, 283);
this.LblItemLabel.Name = "LblItemLabel";
this.LblItemLabel.Size = new System.Drawing.Size(56, 17);
this.LblItemLabel.TabIndex = 15;
@ -224,8 +251,9 @@
//
// LblTilde2
//
this.LblTilde2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LblTilde2.AutoSize = true;
this.LblTilde2.Location = new System.Drawing.Point(141, 315);
this.LblTilde2.Location = new System.Drawing.Point(167, 342);
this.LblTilde2.Name = "LblTilde2";
this.LblTilde2.Size = new System.Drawing.Size(17, 17);
this.LblTilde2.TabIndex = 14;
@ -233,8 +261,9 @@
//
// LblTilde1
//
this.LblTilde1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LblTilde1.AutoSize = true;
this.LblTilde1.Location = new System.Drawing.Point(141, 286);
this.LblTilde1.Location = new System.Drawing.Point(167, 313);
this.LblTilde1.Name = "LblTilde1";
this.LblTilde1.Size = new System.Drawing.Size(17, 17);
this.LblTilde1.TabIndex = 14;
@ -242,7 +271,8 @@
//
// NUDMaxWeight
//
this.NUDMaxWeight.Location = new System.Drawing.Point(164, 313);
this.NUDMaxWeight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.NUDMaxWeight.Location = new System.Drawing.Point(190, 340);
this.NUDMaxWeight.Maximum = new decimal(new int[] {
10000,
0,
@ -264,7 +294,8 @@
//
// NUDMinWeight
//
this.NUDMinWeight.Location = new System.Drawing.Point(75, 315);
this.NUDMinWeight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.NUDMinWeight.Location = new System.Drawing.Point(101, 342);
this.NUDMinWeight.Maximum = new decimal(new int[] {
10000,
0,
@ -276,7 +307,8 @@
//
// NUDMaxCount
//
this.NUDMaxCount.Location = new System.Drawing.Point(164, 284);
this.NUDMaxCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.NUDMaxCount.Location = new System.Drawing.Point(190, 311);
this.NUDMaxCount.Maximum = new decimal(new int[] {
10000,
0,
@ -298,7 +330,8 @@
//
// NUDMinCount
//
this.NUDMinCount.Location = new System.Drawing.Point(75, 284);
this.NUDMinCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.NUDMinCount.Location = new System.Drawing.Point(101, 311);
this.NUDMinCount.Maximum = new decimal(new int[] {
10000,
0,
@ -320,8 +353,9 @@
//
// LblWeightLabel
//
this.LblWeightLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LblWeightLabel.AutoSize = true;
this.LblWeightLabel.Location = new System.Drawing.Point(25, 317);
this.LblWeightLabel.Location = new System.Drawing.Point(51, 344);
this.LblWeightLabel.Name = "LblWeightLabel";
this.LblWeightLabel.Size = new System.Drawing.Size(44, 17);
this.LblWeightLabel.TabIndex = 9;
@ -329,8 +363,9 @@
//
// LblCountLabel
//
this.LblCountLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LblCountLabel.AutoSize = true;
this.LblCountLabel.Location = new System.Drawing.Point(25, 286);
this.LblCountLabel.Location = new System.Drawing.Point(51, 313);
this.LblCountLabel.Name = "LblCountLabel";
this.LblCountLabel.Size = new System.Drawing.Size(44, 17);
this.LblCountLabel.TabIndex = 8;
@ -338,6 +373,9 @@
//
// ListItems
//
this.ListItems.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ListItems.FormattingEnabled = true;
this.ListItems.ItemHeight = 17;
this.ListItems.Location = new System.Drawing.Point(6, 51);
@ -348,6 +386,8 @@
//
// GrpMonsterList
//
this.GrpMonsterList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.GrpMonsterList.Controls.Add(this.ListMonsters);
this.GrpMonsterList.Controls.Add(this.TxtMonsterFilter);
this.GrpMonsterList.Location = new System.Drawing.Point(12, 41);
@ -359,20 +399,33 @@
//
// GrpItemList
//
this.GrpItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.GrpItemList.Controls.Add(this.TxtItemFilter);
this.GrpItemList.Controls.Add(this.ListItems);
this.GrpItemList.Location = new System.Drawing.Point(526, 41);
this.GrpItemList.Location = new System.Drawing.Point(576, 41);
this.GrpItemList.Name = "GrpItemList";
this.GrpItemList.Size = new System.Drawing.Size(250, 400);
this.GrpItemList.TabIndex = 11;
this.GrpItemList.TabStop = false;
this.GrpItemList.Text = "物品列表";
//
// BtnCopyAll
//
this.BtnCopyAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.BtnCopyAll.Location = new System.Drawing.Point(87, 202);
this.BtnCopyAll.Name = "BtnCopyAll";
this.BtnCopyAll.Size = new System.Drawing.Size(75, 23);
this.BtnCopyAll.TabIndex = 22;
this.BtnCopyAll.Text = "复制全部";
this.BtnCopyAll.UseVisualStyleBackColor = true;
this.BtnCopyAll.Click += new System.EventHandler(this.BtnCopyAll_Click);
//
// FormDropEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(789, 450);
this.ClientSize = new System.Drawing.Size(839, 450);
this.Controls.Add(this.GrpItemList);
this.Controls.Add(this.GrpMonsterList);
this.Controls.Add(this.GrpDropList);
@ -382,6 +435,7 @@
this.Controls.Add(this.LblDropPathLabel);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(4);
this.MinimumSize = new System.Drawing.Size(855, 489);
this.Name = "FormDropEditor";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Drop.json Editor";
@ -424,10 +478,11 @@
private System.Windows.Forms.GroupBox GrpMonsterList;
private System.Windows.Forms.GroupBox GrpItemList;
private System.Windows.Forms.Button BtnDelete;
private System.Windows.Forms.Button BtnAdd;
private System.Windows.Forms.Button BtnAddOrUpdate;
private System.Windows.Forms.TextBox TxtItem;
private System.Windows.Forms.Button BtnCopy;
private System.Windows.Forms.Button BtnPaste;
private System.Windows.Forms.Button BtnClear;
private System.Windows.Forms.Button BtnCopyAll;
}
}

View File

@ -1,13 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using GrasscutterTools.Game;
@ -20,6 +14,14 @@ namespace GrasscutterTools.Forms
{
public partial class FormDropEditor : Form
{
#region - -
private Dictionary<int, List<DropData>> Banners;
#endregion - -
#region - -
public FormDropEditor()
{
InitializeComponent();
@ -32,9 +34,36 @@ namespace GrasscutterTools.Forms
Banners = new Dictionary<int, List<DropData>>();
}
private Dictionary<int, List<DropData>> Banners;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
try
{
// 加载文件路径
var path = Settings.Default.DropJsonPath;
TxtDropJsonPath.Text = path;
if (!string.IsNullOrEmpty(path) && File.Exists(path))
LoadBanners(path);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
// 保存文件路径
Settings.Default.DropJsonPath = TxtDropJsonPath.Text;
Settings.Default.Save();
base.OnFormClosed(e);
}
#endregion - -
#region - Drop.json -
/// <summary>
/// 加载按钮点击时触发
/// </summary>
@ -58,10 +87,7 @@ namespace GrasscutterTools.Forms
}
// 反序列化
var banners = JsonConvert.DeserializeObject<List<DropInfo>>(File.ReadAllText(path));
Banners = new Dictionary<int, List<DropData>>(banners.Count);
foreach (var item in banners)
Banners.Add(item.MonsterId, item.DropDataList);
LoadBanners(path);
MessageBox.Show("OK", Resources.Tips, MessageBoxButtons.OK);
}
catch (Exception ex)
@ -70,6 +96,15 @@ namespace GrasscutterTools.Forms
}
}
private void LoadBanners(string path)
{
// 反序列化
var banners = JsonConvert.DeserializeObject<List<DropInfo>>(File.ReadAllText(path));
Banners = new Dictionary<int, List<DropData>>(banners.Count);
foreach (var item in banners)
Banners.Add(item.MonsterId, item.DropDataList);
}
/// <summary>
/// 保存按钮点击时触发
/// </summary>
@ -111,8 +146,7 @@ namespace GrasscutterTools.Forms
}
}
#endregion
#endregion - Drop.json -
#region - -
@ -143,7 +177,7 @@ namespace GrasscutterTools.Forms
ListDropData.EndUpdate();
}
#endregion
#endregion - -
#region - -
@ -154,14 +188,42 @@ namespace GrasscutterTools.Forms
{
var dropData = ListDropData.SelectedItem as DropData;
if (dropData == null) return;
TxtItem.Text = dropData.ItemId.ToString();
TxtItem.Text = $"{dropData.ItemId}: {GameData.Items[dropData.ItemId]}";
NUDMinCount.Value = dropData.MinCount;
NUDMaxCount.Value = dropData.MaxCount;
NUDMinWeight.Value = dropData.MinWeight;
NUDMaxWeight.Value = dropData.MaxWeight;
//BtnCopy.Enabled = true;
//BtnDelete.Enabled = true;
//BtnAddOrUpdate.Enabled = true;
}
#endregion
private void BtnCopy_Click(object sender, EventArgs e)
{
}
private void BtnCopyAll_Click(object sender, EventArgs e)
{
}
private void BtnPaste_Click(object sender, EventArgs e)
{
}
private void BtnDelete_Click(object sender, EventArgs e)
{
}
private void BtnClear_Click(object sender, EventArgs e)
{
}
private void BtnAddOrUpdate_Click(object sender, EventArgs e)
{
}
#endregion - -
#region - -
@ -187,6 +249,6 @@ namespace GrasscutterTools.Forms
TxtItem.Text = item;
}
#endregion
#endregion - -
}
}
}

View File

@ -50,7 +50,10 @@ namespace GrasscutterTools.Game.Drop
public override string ToString()
{
return $"{ItemId} x{MinCount}~x{MaxCount} [{MinWeight}~{MaxWeight}]";
if (MinCount != MaxCount)
return $"{ItemId}:{GameData.Items[ItemId]} | x[{MinCount}~{MaxCount}] w[{MinWeight}~{MaxWeight}]";
else
return $"{ItemId}:{GameData.Items[ItemId]} | x{MinCount} w[{MinWeight}~{MaxWeight}]";
}
}
}

View File

@ -27,7 +27,7 @@ namespace GrasscutterTools.Game
{
var lines = idNamePairs.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
var capacity = lines.Length;
//IdMap = new Dictionary<int, string>(capacity);
IdMap = new Dictionary<int, string>(capacity);
//NameMap = new Dictionary<string, int>(capacity);
var IdList = new List<int>(capacity);
var NameList = new List<string>(capacity);
@ -41,7 +41,7 @@ namespace GrasscutterTools.Game
var name = line.Substring(si + 1).Trim();
if (!string.IsNullOrEmpty(name) && name != "null")
{
//IdMap[id] = name;
IdMap[id] = name;
//NameMap[name] = id;
IdList.Add(id);
NameList.Add(name);
@ -55,14 +55,12 @@ namespace GrasscutterTools.Game
Lines = lineList.ToArray();
}
//Dictionary<int, string> IdMap;
//Dictionary<string, int> NameMap;
//List<int> IdList;
//List<string> NameList;
private readonly Dictionary<int, string> IdMap;
//private readonly Dictionary<string, int> NameMap;
public int Count => Ids.Length;
//public string this[int id] => IdMap[id];
public string this[int id] => IdMap.TryGetValue(id, out string name) ? name : "???";
//public int this[string name] => NameMap[name];

View File

@ -154,5 +154,17 @@ namespace GrasscutterTools.Properties {
this["IsTopMost"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string DropJsonPath {
get {
return ((string)(this["DropJsonPath"]));
}
set {
this["DropJsonPath"] = value;
}
}
}
}

View File

@ -35,5 +35,8 @@
<Setting Name="IsTopMost" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DropJsonPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>