Clean up all code

This commit is contained in:
2023-08-24 15:18:12 +08:00
parent 434ec7b2df
commit 2a8cebcbb5
52 changed files with 547 additions and 119 deletions

View File

@ -24,7 +24,7 @@ using GrasscutterTools.Utils;
namespace GrasscutterTools.DispatchServer
{
public static class DispatchServerAPI
internal static class DispatchServerAPI
{
public static async Task<ServerStatus> QueryServerStatus(string host)
{

View File

@ -21,7 +21,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.DispatchServer.Model
{
public class ServerStatus
internal class ServerStatus
{
[JsonProperty("playerCount")]
public int PlayerCount { get; set; }
@ -33,7 +33,7 @@ namespace GrasscutterTools.DispatchServer.Model
public string Version { get; set; }
}
public class ServerStatusResponse
internal class ServerStatusResponse
{
[JsonProperty("retcode")]
public int RetCode { get; set; }

View File

@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Artifact.cs
/// </summary>
public class Artifact
internal class Artifact
{
/// <summary>
/// e.g. "GladiatorsFinale"

View File

@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Character.cs
/// </summary>
public class Character
internal class Character
{
/// <summary>
/// e.g. "Rosaria"

View File

@ -38,7 +38,7 @@ namespace GrasscutterTools.GOOD
/// https://genshin.mingyulab.com/
/// https://genshin-center.com/
/// </summary>
public class GOOD
internal class GOOD
{
[JsonProperty("format")]
public string Format { get; set; }

View File

@ -26,7 +26,7 @@ using GrasscutterTools.Properties;
namespace GrasscutterTools.GOOD
{
public static class GOODData
internal static class GOODData
{
static GOODData()
{

View File

@ -28,7 +28,7 @@ namespace GrasscutterTools.GOOD
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Weapon.cs
/// </summary>
public class Weapon
internal class Weapon
{
/// <summary>
/// e.g. "CrescentPike"

View File

@ -24,7 +24,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.Game.Activity
{
public class ActivityConfigItem
internal class ActivityConfigItem
{
/// <summary>
/// 活动ID

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
{
@ -10,4 +29,4 @@ namespace GrasscutterTools.Game.Data.Excels
public bool IsUsed => !IsDisuse;
}
}
}

View File

@ -1,4 +1,23 @@
using GrasscutterTools.Game.Props;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using GrasscutterTools.Game.Props;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@ -11,4 +30,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("qualityType"), JsonConverter(typeof(StringEnumConverter))]
public QualityType QualityType { get; set; }
}
}
}

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
{
@ -8,4 +27,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("sceneId")]
public int SceneId { get; set; }
}
}
}

View File

@ -1,8 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
namespace GrasscutterTools.Game.Data.Excels
{
@ -10,4 +23,4 @@ namespace GrasscutterTools.Game.Data.Excels
internal class GadgetData
{
}
}
}

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
{
@ -11,4 +30,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("bgmNameTextMapHash")]
public long BgmNameTextMapHash { get; set; }
}
}
}

View File

@ -1,7 +1,26 @@
namespace GrasscutterTools.Game.Data.Excels
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
namespace GrasscutterTools.Game.Data.Excels
{
[ResourceType("HomeWorldFurnitureExcelConfigData.json")]
internal class HomeWorldFurnitureData : GameResource
{
}
}
}

View File

@ -1,4 +1,21 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
namespace GrasscutterTools.Game.Data.Excels
{
@ -6,4 +23,4 @@ namespace GrasscutterTools.Game.Data.Excels
internal class MainQuestData : GameResource
{
}
}
}

View File

@ -1,4 +1,24 @@
using System.Collections.Generic;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System.Collections.Generic;
using GrasscutterTools.Game.Inventory;
using GrasscutterTools.Game.Props;
@ -19,4 +39,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("itemUse")]
public List<ItemUseData> ItemUse { get; set; }
}
}
}

View File

@ -1,4 +1,24 @@
using GrasscutterTools.Game.Props;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using GrasscutterTools.Game.Props;
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
@ -12,4 +32,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("type")]
public MonsterType Type { get; set; }
}
}
}

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
{
@ -14,4 +33,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("order")]
public int Order { get; set; }
}
}
}

View File

@ -1,7 +1,26 @@
namespace GrasscutterTools.Game.Data.Excels
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
namespace GrasscutterTools.Game.Data.Excels
{
[ResourceType("ReliquaryExcelConfigData.json")]
internal class ReliquaryData : GameResource
{
}
}
}

View File

@ -1,4 +1,24 @@
using GrasscutterTools.Game.Props;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using GrasscutterTools.Game.Props;
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
@ -12,4 +32,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("scriptData")]
public string ScriptData { get; set; }
}
}
}

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data.Excels
{
@ -8,4 +27,4 @@ namespace GrasscutterTools.Game.Data.Excels
[JsonProperty("rankLevel")]
public int RankLevel { get; set; }
}
}
}

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Data
{

View File

@ -1,4 +1,23 @@
using System;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
@ -6,10 +25,10 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using GrasscutterTools.Game.Data.Excels;
using GrasscutterTools.Game.Inventory;
using GrasscutterTools.Game.Props;
using GrasscutterTools.GOOD;
using GrasscutterTools.Utils;
using Newtonsoft.Json;
@ -27,7 +46,7 @@ namespace GrasscutterTools.Game.Data
public Dictionary<int, DungeonData> DungeonData { get; set; }
public Dictionary<int, HomeWorldFurnitureData> HomeWorldFurnitureData { get; set; }
public Dictionary<int, MainQuestData> MainQuestData { get; set; }
public Dictionary<int, QuestData> QuestData { get; set; }
@ -37,15 +56,13 @@ namespace GrasscutterTools.Game.Data
public Dictionary<int, MonsterData> MonsterData { get; set; }
public Dictionary<int, ReliquaryData> ReliquaryData { get; set; }
public Dictionary<int, SceneData> SceneData { get; set; }
public Dictionary<int, WeaponData> WeaponData { get; set; }
public TextMapData TextMapData { get; set; }
public GameResources(string resourcesDirPath, TextMapData textMapData)
{
TextMapData = textMapData;
@ -63,7 +80,6 @@ namespace GrasscutterTools.Game.Data
property.SetValue(this, data, null);
}
var illegalWeaponIds = new SparseSet(
"10000-10008, 11411, 11506-11508, 12505, 12506, 12508, 12509," +
"13503, 13506, 14411, 14503, 14508, 15504-15506, 20001");
@ -110,8 +126,8 @@ namespace GrasscutterTools.Game.Data
{
["zh-cn"] = "TextMapCHS",
["zh-tw"] = "TextMapCHT",
["en-us"] = "TextMapEN",
["ru-ru"] = "TextMapRU",
["en-us"] = "TextMapEN",
["ru-ru"] = "TextMapRU",
};
public void ConvertResources(string projectResourcesDir)
@ -195,7 +211,6 @@ namespace GrasscutterTools.Game.Data
File.WriteAllText(Path.Combine(dir, "Item.txt"), sb.ToString(), Encoding.UTF8);
sb.Clear();
foreach (var monsterType in MonsterData.Values.OrderBy(it => it.Id)
.GroupBy(it => it.Type)
@ -247,7 +262,6 @@ namespace GrasscutterTools.Game.Data
sb.ToString(),
Encoding.UTF8);
sb.Clear();
foreach (var it in DungeonData.Values)
{
@ -275,7 +289,6 @@ namespace GrasscutterTools.Game.Data
Encoding.UTF8);
}
File.WriteAllLines(
Path.Combine(projectResourcesDir, "AvatarColor.txt"),
AvatarData.Values.Select(it => $"{it.Id % 1000 + 1000}:{(int)it.QualityType}"),
@ -285,7 +298,6 @@ namespace GrasscutterTools.Game.Data
Path.Combine(projectResourcesDir, "WeaponColor.txt"),
WeaponData.Values.Select(it => $"{it.Id}:{(it.RankLevel >= 5 ? "yellow" : it.RankLevel >= 4 ? "purple" : "blue")}"),
Encoding.UTF8);
}
finally
{
@ -293,4 +305,4 @@ namespace GrasscutterTools.Game.Data
}
}
}
}
}

View File

@ -1,9 +1,28 @@
using System;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
namespace GrasscutterTools.Game.Data
{
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
public class ResourceTypeAttribute : Attribute
internal class ResourceTypeAttribute : Attribute
{
public string Name { get; set; }
@ -12,4 +31,4 @@ namespace GrasscutterTools.Game.Data
Name = name;
}
}
}
}

View File

@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
/// 使用这个只需替换掉你原来的的data/banner.json文件
/// 然后重启服务器和客户端,即可享受全卡池抽卡,卡池的选择方式是点击左右箭头进行切换
/// </summary>
public class GachaBanner
internal class GachaBanner
{
/// <summary>
/// 添加卡池请从400开始增加id数值进行添加这个id需要每个池子不一样

View File

@ -25,7 +25,7 @@ namespace GrasscutterTools.Game.Gacha
/// <summary>
/// https://github.com/Grasscutters/Grasscutter/pull/639
/// </summary>
public class GachaBanner2
internal class GachaBanner2
{
/// <summary>
/// 添加卡池请从400开始增加id数值进行添加这个id需要每个池子不一样

View File

@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
/// <summary>
/// https://github.com/Grasscutters/Grasscutter/pull/639
/// </summary>
public class GachaBanner3
internal class GachaBanner3
{
/// <summary>
/// 备注

View File

@ -22,7 +22,7 @@ using System.Text;
namespace GrasscutterTools.Game
{
public class GameCommand
internal class GameCommand
{
public GameCommand(string name, string command)
{

View File

@ -22,7 +22,7 @@ using System.Collections.Generic;
namespace GrasscutterTools.Game
{
public class ItemMap
internal class ItemMap
{
public ItemMap(string idNamePairs)
{

View File

@ -25,7 +25,7 @@ namespace GrasscutterTools.Game
/// <summary>
/// ID映射组Key为分类双斜杠构造
/// </summary>
public class ItemMapGroup : Dictionary<string, ItemMap>
internal class ItemMapGroup : Dictionary<string, ItemMap>
{
public ItemMapGroup(string idNamePairs)
{

View File

@ -27,7 +27,7 @@ namespace GrasscutterTools.Game.Mail
/// <summary>
/// 邮件
/// </summary>
public class Mail
internal class Mail
{
/// <summary>
/// 发件人

View File

@ -1,4 +1,23 @@
using Newtonsoft.Json;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.Game.Props
{
@ -7,4 +26,4 @@ namespace GrasscutterTools.Game.Props
[JsonProperty("useParam")]
public string[] UseParam { get; set; }
}
}
}

View File

@ -1,4 +1,22 @@

/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
// ReSharper disable InconsistentNaming
using System.Collections.Generic;
@ -19,7 +37,6 @@ namespace GrasscutterTools.Game.Props
MONSTER_PARTNER = 6,
}
internal static class ItemTypeExtension
{
private static readonly Dictionary<MonsterType, string> TextMapCHS = new Dictionary<MonsterType, string>
@ -32,6 +49,7 @@ namespace GrasscutterTools.Game.Props
[MonsterType.MONSTER_FISH] = "鱼",
[MonsterType.MONSTER_PARTNER] = "友军",
};
private static readonly Dictionary<MonsterType, string> TextMapEN = new Dictionary<MonsterType, string>
{
[MonsterType.MONSTER_NONE] = "None",
@ -48,4 +66,4 @@ namespace GrasscutterTools.Game.Props
return language.StartsWith("zh") ? TextMapCHS[materialType] : TextMapEN[materialType];
}
}
}
}

View File

@ -1,4 +1,22 @@

/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
// ReSharper disable InconsistentNaming
namespace GrasscutterTools.Game.Props
@ -41,4 +59,4 @@ namespace GrasscutterTools.Game.Props
//QUALITY_ORANGE_SP = 105,
QUALITY_ORANGE_SP = 5,
}
}
}

View File

@ -1,4 +1,22 @@

/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
// ReSharper disable InconsistentNaming
namespace GrasscutterTools.Game.Props
@ -13,4 +31,4 @@ namespace GrasscutterTools.Game.Props
SCENE_HOME_ROOM = 5,
SCENE_ACTIVITY = 6,
}
}
}

View File

@ -25,7 +25,7 @@ using Newtonsoft.Json.Converters;
namespace GrasscutterTools.Game.Shop
{
public class ShopGoodsData
internal class ShopGoodsData
{
[JsonProperty("goodsId")]
public int GoodsId { get; set; }

View File

@ -26,7 +26,7 @@ using Newtonsoft.Json.Converters;
namespace GrasscutterTools.Game.Shop
{
public class ShopInfo
internal class ShopInfo
{
public ShopInfo()
{

View File

@ -23,7 +23,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.Game.Shop
{
public class ShopTable
internal class ShopTable
{
[JsonProperty("shopId")]
public int ShopType { get; set; }

View File

@ -26,7 +26,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.Game
{
public class TextMapData
internal class TextMapData
{
public TextMapData(string resourcesDirPath)
{

View File

@ -665,6 +665,7 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="GrasscutterTools.licenseheader" />
<None Include="GrasscutterTools.snk" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>

View File

@ -0,0 +1,19 @@
extensions: .cs
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/

View File

@ -26,7 +26,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.OpenCommand
{
public class OpenCommandAPI
internal class OpenCommandAPI
{
public OpenCommandAPI(string host, string token = "")
{

View File

@ -1,4 +1,23 @@
using System;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -9,7 +28,6 @@ using GrasscutterTools.Game;
using GrasscutterTools.Game.Activity;
using GrasscutterTools.Game.CutScene;
using GrasscutterTools.Game.Data;
using GrasscutterTools.Game.Dungeon;
using GrasscutterTools.Properties;
using Newtonsoft.Json;
@ -122,10 +140,6 @@ namespace GrasscutterTools.Pages
}
}
private TextMapData TextMapData;
private GameResources GameResources;
@ -134,7 +148,7 @@ namespace GrasscutterTools.Pages
try
{
if (!CheckInputPaths()) return;
if (TextMapData == null)
TextMapData = new TextMapData(TxtGcResRoot.Text);
if (GameResources == null)
@ -149,13 +163,6 @@ namespace GrasscutterTools.Pages
}
}
private void BtnUpdateActivity_Click(object sender, EventArgs e)
{
try
@ -208,6 +215,5 @@ namespace GrasscutterTools.Pages
// activityItems.Select(it => $"{it.ActivityId}:{TextMapData.GetText(it.NameTextMapHash)}"),
// Encoding.UTF8);
}
}
}

View File

@ -24,7 +24,7 @@ using System.Windows.Forms;
namespace GrasscutterTools.Utils
{
public static class AppHotKey
internal static class AppHotKey
{
/// <summary>
/// 注册热键

View File

@ -1,4 +1,23 @@
using System;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.IO;
using GrasscutterTools.Game;

View File

@ -25,7 +25,7 @@ namespace GrasscutterTools.Utils
/// <summary>
/// <see cref="https://stackoverflow.com/a/17534263"/>
/// </summary>
public class GuiRedirect
internal class GuiRedirect
{
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool AttachConsole(int dwProcessId);

View File

@ -24,7 +24,7 @@ namespace GrasscutterTools.Utils
/// <summary>
/// 热键项
/// </summary>
public class HotKeyItem
internal class HotKeyItem
{
/// <summary>
/// Gets or sets the hot key identifier.

View File

@ -27,7 +27,7 @@ using Newtonsoft.Json;
namespace GrasscutterTools.Utils
{
public static class HttpHelper
internal static class HttpHelper
{
public static readonly HttpClient HttpClient = new HttpClient
{

View File

@ -261,7 +261,7 @@ namespace GrasscutterTools.Utils
/// <summary>
/// 热键触发事件参数
/// </summary>
public class HotKeyTriggerEventArgs
internal class HotKeyTriggerEventArgs
{
public HotKeyItem HotKeyItem { get; set; }

View File

@ -23,7 +23,7 @@ using System.Windows.Forms;
namespace GrasscutterTools.Utils
{
public static class Logger
internal static class Logger
{
public static bool IsSaveLogs = false;

View File

@ -1,44 +1,65 @@
using System;
/**
* Grasscutter Tools
* Copyright (C) 2023 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
**/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GrasscutterTools.Utils
{
public class SparseSet
internal class SparseSet
{
private struct Range
private readonly struct Range
{
public int Min;
public int Max;
private readonly int Min;
private readonly int Max;
public Range(int min, int max)
{
Min = min;
Max = max;
}
public bool Check(int value) =>
Min <= value && value <= Max;
}
private readonly List<Range> rangeEntries;
private readonly HashSet<int> denseEntries;
private readonly List<Range> RangeEntries;
private readonly HashSet<int> DenseEntries;
public SparseSet(string csv)
{
rangeEntries = new List<Range>();
denseEntries = new HashSet<int>();
RangeEntries = new List<Range>();
DenseEntries = new HashSet<int>();
foreach (var token in csv.Replace("\n", "").Replace(" ", "").Split(','))
{
var tokens = token.Split('-');
switch (tokens.Length)
{
case 1:
denseEntries.Add(int.Parse(tokens[0]));
DenseEntries.Add(int.Parse(tokens[0]));
break;
case 2:
rangeEntries.Add(new Range(int.Parse(tokens[0]), int.Parse(tokens[1])));
RangeEntries.Add(new Range(int.Parse(tokens[0]), int.Parse(tokens[1])));
break;
default:
throw new ArgumentException($"Invalid token passed to SparseSet initializer - {token} (split length {tokens.Length})");
}
@ -47,10 +68,7 @@ namespace GrasscutterTools.Utils
public bool Contains(int i)
{
foreach (var range in rangeEntries)
if (range.Check(i))
return true;
return denseEntries.Contains(i);
return RangeEntries.Any(range => range.Check(i)) || DenseEntries.Contains(i);
}
}
}
}

View File

@ -8,7 +8,7 @@ using GrasscutterTools.Properties;
namespace GrasscutterTools.Utils
{
public static class UIUtil
internal static class UIUtil
{
/// <summary>
/// 播放按钮完成动画