Update resources to 5.3

Include Achievement, Avatar, Cutscene, Dungeon, BannerTitle, Gadget, Item, Monster, Scene, Weapon...
This commit is contained in:
2025-01-13 18:48:24 +08:00
parent e6a2d26671
commit 2c8691e9ae
49 changed files with 13130 additions and 631 deletions

View File

@@ -128,19 +128,35 @@ namespace GrasscutterTools.Game.Data
private static object LoadDataFile(Type type, string path)
{
var list = (IList)JsonConvert.DeserializeObject(File.ReadAllText(path), typeof(List<>).MakeGenericType(type));
if (list == null) return null;
if (!type.IsSubclassOf(typeof(GameResource))) return list;
var dicType = typeof(Dictionary<,>).MakeGenericType(typeof(int), type);
var dic = (IDictionary)Activator.CreateInstance(dicType);
foreach (GameResource gameResource in list)
IList list = null;
try
{
if (gameResource.Id == 0) continue;
dic.Add(gameResource.Id, gameResource);
list = (IList)JsonConvert.DeserializeObject(File.ReadAllText(path), typeof(List<>).MakeGenericType(type));
}
catch (Exception ex)
{
Console.WriteLine($"Failed to load \"{path}\", Exception={ex}");
}
if (type.IsSubclassOf(typeof(GameResource)))
{
var dicType = typeof(Dictionary<,>).MakeGenericType(typeof(int), type);
var dic = (IDictionary)Activator.CreateInstance(dicType);
if (list != null)
{
foreach (GameResource gameResource in list)
{
if (gameResource.Id == 0) continue;
dic.Add(gameResource.Id, gameResource);
}
}
return dic;
}
else
{
if (list == null)
list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(type));
return list;
}
return dic;
}
private Dictionary<string, string> Languages = new Dictionary<string, string>

View File

@@ -11,63 +11,70 @@ namespace GrasscutterTools.Game.Inventory
/// </summary>
internal enum MaterialType
{
MATERIAL_NONE = 0,
MATERIAL_FOOD = 1,
MATERIAL_QUEST = 2,
MATERIAL_EXCHANGE = 4,
MATERIAL_CONSUME = 5,
MATERIAL_EXP_FRUIT = 6,
MATERIAL_AVATAR = 7,
MATERIAL_ADSORBATE = 8,
MATERIAL_CRICKET = 9,
MATERIAL_ELEM_CRYSTAL = 10,
MATERIAL_WEAPON_EXP_STONE = 11,
MATERIAL_CHEST = 12,
MATERIAL_RELIQUARY_MATERIAL = 13,
MATERIAL_AVATAR_MATERIAL = 14,
MATERIAL_NOTICE_ADD_HP = 15,
MATERIAL_SEA_LAMP = 16,
MATERIAL_SELECTABLE_CHEST = 17,
MATERIAL_FLYCLOAK = 18,
MATERIAL_NAMECARD = 19,
MATERIAL_TALENT = 20,
MATERIAL_WIDGET = 21,
MATERIAL_CHEST_BATCH_USE = 22,
MATERIAL_FAKE_ABSORBATE = 23,
MATERIAL_CONSUME_BATCH_USE = 24,
MATERIAL_WOOD = 25,
MATERIAL_FURNITURE_FORMULA = 27,
MATERIAL_CHANNELLER_SLAB_BUFF = 28,
MATERIAL_FURNITURE_SUITE_FORMULA = 29,
MATERIAL_COSTUME = 30,
MATERIAL_HOME_SEED = 31,
MATERIAL_FISH_BAIT = 32,
MATERIAL_FISH_ROD = 33,
MATERIAL_SUMO_BUFF = 34, // sumo 活动道具never appear
MATERIAL_FIREWORKS = 35,
MATERIAL_BGM = 36,
MATERIAL_SPICE_FOOD = 37,
MATERIAL_ACTIVITY_ROBOT = 38,
MATERIAL_ACTIVITY_GEAR = 39,
MATERIAL_ACTIVITY_JIGSAW = 40,
MATERIAL_ARANARA = 41,
MATERIAL_GCG_CARD = 42,
MATERIAL_GCG_CARD_FACE = 43, // 影幻卡面
MATERIAL_GCG_CARD_BACK = 44,
MATERIAL_GCG_FIELD = 45,
MATERIAL_DESHRET_MANUAL = 46,
MATERIAL_RENAME_ITEM = 47,
MATERIAL_GCG_EXCHANGE_ITEM = 48,
MATERIAL_QUEST_EVENT_BOOK = 49,
MATERIAL_PROFILE_PICTURE = 50,
MATERIAL_RAINBOW_PRINCE_HAND_BOOK = 51,
MATERIAL_PHOTO_DISPLAY_BOOK = 52,
MATERIAL_REMUS_MUSIC_BOX = 53,
MATERIAL_GREATEFESTIVALV2_INVITE = 54,
MATERIAL_PHOTOGRAPH_POSE = 55,
MATERIAL_FIRE_MASTER_AVATAR_TALENT_ITEM = 56,
MATERIAL_PHOTOV5_HAND_BOOK = 57,
MATERIAL_AVATAR_TRACE = 58,
MATERIAL_NONE,
MATERIAL_FOOD,
MATERIAL_QUEST,
MATERIAL_EXCHANGE,
MATERIAL_CONSUME,
MATERIAL_EXP_FRUIT,
MATERIAL_AVATAR,
MATERIAL_ADSORBATE,
MATERIAL_CRICKET,
MATERIAL_ELEM_CRYSTAL,
MATERIAL_WEAPON_EXP_STONE,
MATERIAL_CHEST,
MATERIAL_RELIQUARY_MATERIAL,
MATERIAL_AVATAR_MATERIAL,
MATERIAL_NOTICE_ADD_HP,
MATERIAL_SEA_LAMP,
MATERIAL_SELECTABLE_CHEST,
MATERIAL_FLYCLOAK,
MATERIAL_NAMECARD,
MATERIAL_TALENT,
MATERIAL_WIDGET,
MATERIAL_CHEST_BATCH_USE,
MATERIAL_FAKE_ABSORBATE,
MATERIAL_CONSUME_BATCH_USE,
MATERIAL_WOOD,
MATERIAL_FURNITURE_FORMULA,
MATERIAL_CHANNELLER_SLAB_BUFF,
MATERIAL_FURNITURE_SUITE_FORMULA,
MATERIAL_COSTUME,
MATERIAL_HOME_SEED,
MATERIAL_FISH_BAIT,
MATERIAL_FISH_ROD,
MATERIAL_SUMO_BUFF, // sumo 活动道具never appear
MATERIAL_FIREWORKS,
MATERIAL_BGM,
MATERIAL_SPICE_FOOD,
MATERIAL_ACTIVITY_ROBOT,
MATERIAL_ACTIVITY_GEAR,
MATERIAL_ACTIVITY_JIGSAW,
MATERIAL_ARANARA,
MATERIAL_GCG_CARD,
MATERIAL_GCG_CARD_FACE, // 影幻卡面
MATERIAL_GCG_CARD_BACK,
MATERIAL_GCG_FIELD,
MATERIAL_DESHRET_MANUAL,
MATERIAL_RENAME_ITEM,
MATERIAL_GCG_EXCHANGE_ITEM,
MATERIAL_QUEST_EVENT_BOOK,
MATERIAL_PROFILE_PICTURE,
MATERIAL_RAINBOW_PRINCE_HAND_BOOK,
MATERIAL_PHOTO_DISPLAY_BOOK,
MATERIAL_REMUS_MUSIC_BOX,
MATERIAL_GREATEFESTIVALV2_INVITE,
MATERIAL_PHOTOGRAPH_POSE,
MATERIAL_FIRE_MASTER_AVATAR_TALENT_ITEM,
MATERIAL_PHOTOV5_HAND_BOOK,
MATERIAL_AVATAR_TRACE,
MATERIAL_CHEST_BATCH_USE_WITH_GROUP,
MATERIAL_NATLAN_RELATION_A,
MATERIAL_NATLAN_RELATION_B,
MATERIAL_LANV5_PAIMON_GREETING_CARD,
MATERIAL_NATLAN_RACE_ALBUM,
MATERIAL_NATLAN_RACE_ENVELOPE,
MATERIAL_MUSIC_GAME_BOOK_THEME,
}
internal static class MaterialTypeExtension
@@ -131,6 +138,13 @@ namespace GrasscutterTools.Game.Inventory
[MaterialType.MATERIAL_FIRE_MASTER_AVATAR_TALENT_ITEM] = "燧原矿",
[MaterialType.MATERIAL_PHOTOV5_HAND_BOOK] = "回忆相册",
[MaterialType.MATERIAL_AVATAR_TRACE] = "游迹",
[MaterialType.MATERIAL_CHEST_BATCH_USE_WITH_GROUP] = "分享包",
[MaterialType.MATERIAL_NATLAN_RELATION_A] = "圣夜旅织A",
[MaterialType.MATERIAL_NATLAN_RELATION_B] = "圣夜旅织B",
[MaterialType.MATERIAL_LANV5_PAIMON_GREETING_CARD] = "祝柬",
[MaterialType.MATERIAL_NATLAN_RACE_ALBUM] = "砥砺之证",
[MaterialType.MATERIAL_NATLAN_RACE_ENVELOPE] = "纪念信件",
[MaterialType.MATERIAL_MUSIC_GAME_BOOK_THEME] = "音乐游戏书主题",
};
private static readonly Dictionary<MaterialType, string> TextMapEN = new Dictionary<MaterialType, string>
{
@@ -191,6 +205,13 @@ namespace GrasscutterTools.Game.Inventory
[MaterialType.MATERIAL_FIRE_MASTER_AVATAR_TALENT_ITEM] = "Fire_master_avatar_talent_item",
[MaterialType.MATERIAL_PHOTOV5_HAND_BOOK] = "Photov5_hand_book",
[MaterialType.MATERIAL_AVATAR_TRACE] = "Avatar_trace",
[MaterialType.MATERIAL_CHEST_BATCH_USE_WITH_GROUP] = "Chest_batch_use_with_group",
[MaterialType.MATERIAL_NATLAN_RELATION_A] = "Natlan_relation_a",
[MaterialType.MATERIAL_NATLAN_RELATION_B] = "Natlan_relation_b",
[MaterialType.MATERIAL_LANV5_PAIMON_GREETING_CARD] = "Lanv5_paimon_greeting_card",
[MaterialType.MATERIAL_NATLAN_RACE_ALBUM] = "Natlan_race_album",
[MaterialType.MATERIAL_NATLAN_RACE_ENVELOPE] = "Natlan_race_envelope",
[MaterialType.MATERIAL_MUSIC_GAME_BOOK_THEME] = "Music_game_book_theme",
};
public static string ToTranslatedString(this MaterialType materialType, string language)

View File

@@ -25,6 +25,7 @@ namespace GrasscutterTools.Game.Props
{
private static readonly Dictionary<string, string> TextMapCHS = new Dictionary<string, string>
{
["Avatar"] = "角色",
["Gear"] = "机关装置",
["Field"] = "领域",
["Bullet"] = "技能/飞弹",