示例#1
0
        public static void LoadDatabase()
        {
            if (CharacterDB.mDBLoaded)
            {
                return;
            }
            CharacterDB.mDBLoaded = true;
            string s = AssetManager.LoadTextData(CharacterDB.DatabasePath);

            if (string.IsNullOrEmpty(s))
            {
                Debug.LogError((object)"Failed to load CharacterDB");
            }
            else
            {
                char[] chArray = new char[1] {
                    '\t'
                };
                CharacterDB.mCharacters.Clear();
                using (StringReader stringReader = new StringReader(s))
                {
                    string str1 = stringReader.ReadLine();
                    if (string.IsNullOrEmpty(str1))
                    {
                        return;
                    }
                    string[] array   = str1.Split(chArray);
                    int      index1  = Array.IndexOf <string>(array, "ID");
                    int      index2  = Array.IndexOf <string>(array, "JOB");
                    int      index3  = Array.IndexOf <string>(array, "BODY");
                    int      index4  = Array.IndexOf <string>(array, "BODY_TEXTURE");
                    int      index5  = Array.IndexOf <string>(array, "BODY_ATTACHMENT");
                    int      index6  = Array.IndexOf <string>(array, "HEAD");
                    int      index7  = Array.IndexOf <string>(array, "HEAD_ATTACHMENT");
                    int      index8  = Array.IndexOf <string>(array, "HAIR");
                    int      index9  = Array.IndexOf <string>(array, "HAIR_COLOR1");
                    int      index10 = Array.IndexOf <string>(array, "HAIR_COLOR2");
                    int      index11 = Array.IndexOf <string>(array, "PREFIX");
                    int      index12 = Array.IndexOf <string>(array, "MOVABLE");
                    string   str2;
                    while ((str2 = stringReader.ReadLine()) != null)
                    {
                        string[] strArray = str2.Split(chArray);
                        if (str2.Length > 0)
                        {
                            CharacterDB.Character character = CharacterDB.ReserveCharacter(strArray[index1]);
                            CharacterDB.Job       job       = new CharacterDB.Job();
                            job.JobID              = strArray[index2];
                            job.HashID             = job.JobID.GetHashCode();
                            job.HairName           = strArray[index8];
                            job.BodyName           = strArray[index3];
                            job.BodyTextureName    = strArray[index4];
                            job.BodyAttachmentName = strArray[index5];
                            job.HeadName           = strArray[index6];
                            job.HeadAttachmentName = strArray[index7];
                            job.HairColor0         = GameUtility.ParseColor(strArray[index9]);
                            job.HairColor1         = GameUtility.ParseColor(strArray[index10]);
                            job.Movable            = true;
                            if (index11 != -1)
                            {
                                job.AssetPrefix = strArray[index11];
                            }
                            int result;
                            if (index12 != -1 && int.TryParse(strArray[index12], out result))
                            {
                                job.Movable = result != 0;
                            }
                            character.Jobs.Add(job);
                        }
                    }
                }
            }
        }