public static void LoadFromSystemDB(MieSystemDB systemDB, MieCharacterAttributeFile charAttr) { SQLiteCommand command = systemDB.Connection.CreateCommand(); command.CommandText = @"SELECT * FROM CharacterAttributes;"; using (SQLiteDataReader sdr = command.ExecuteReader()) { while (sdr.Read() == true) { var byteID = (byte[])sdr["ID"]; var name = (string)sdr["Name"]; var intGender = (long)sdr["Gender"]; var byteSpeakerID = (byte[])sdr["SpeakerID"]; var byteRaceID = (byte[])sdr["RaceID"]; Guid id = new Guid(byteID); Guid speakerID = new Guid(byteSpeakerID); Guid raceID = new Guid(byteRaceID); MieCharacterAttributeFile.NGender gender = (MieCharacterAttributeFile.NGender)Enum.ToObject(typeof(MieCharacterAttributeFile.NGender), intGender); MieCharacterAttributeEntry charEntry = new MieCharacterAttributeEntry(id, name, gender, speakerID, raceID); charAttr.AddCharacterAttributeEntry(charEntry); } } }
/// <summary> /// JSONテキストからキャラクター属性を作成する。 /// </summary> /// <param name="jtext">JSONテキスト</param> /// <param name="charAttributeFile">キャラクター属性ファイル</param> private static void CreateAttributeEntry(string jtext, MieCharacterAttributeFile charAttributeFile) { //// デシリアライズ var oeCharacters = JsonConvert.DeserializeObject <MieOECharacters>(jtext); foreach (var gameDataObject in oeCharacters.GameDataObjects) { var tag = GetGameDataTypeTag(gameDataObject.MieGameDataTypeTag); switch (tag) { case "CharacterStatsGameData": var component = gameDataObject.Components[0]; //// キャラクター属性 MieCharacterAttributeEntry characterAttrEntry = new MieCharacterAttributeEntry( new Guid(gameDataObject.ID), gameDataObject.DebugName, GetGenderType(component.Gender), new Guid(component.SpeakerID), new Guid(component.RaceID)); charAttributeFile.AddCharacterAttributeEntry(characterAttrEntry); break; case "RaceGameData": //// 種族属性 MieRaceAttributeEntry entry = new MieRaceAttributeEntry( new Guid(gameDataObject.ID), gameDataObject.DebugName); charAttributeFile.AddRaceEntry(entry); break; default: continue; } } }