示例#1
0
        public static string[] GetDependenciesCache(string[] files)
        {
            List <string> ret = new List <string>();

            for (int i = 0; i < files.Length; ++i)
            {
                DependData data = null;
                m_dict.TryGetValue(files[i], out data);

                if (data == null)
                {
                    string[] deps = GetDependencies(files[i]);
                    data            = new DependData();
                    data.assetPath  = files[i];
                    data.dependPath = deps;
                    data.InterString();
                    m_dict.Add(data.assetPath, data);
                }
                ret.AddRange(data.dependPath);
            }
            return(ret.ToArray());
        }
示例#2
0
        public static void LoadActionRelation()
        {
            m_Relations = new ActionRelationData[(int)PEActionType.Max];
            SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("ActionRelation");
            int fieldCount          = reader.FieldCount;

            while (reader.Read())
            {
                ActionRelationData data = new ActionRelationData();
                data.m_ActionType = (PEActionType)Convert.ToInt32(reader.GetString(reader.GetOrdinal("ActionType")));

                data.m_DependMask = new List <DependData>();

                int startIndex = 5;

                for (int i = startIndex; i < fieldCount; i++)
                {
                    int mask = Convert.ToInt32(reader.GetString(i));
                    if (mask > 0)
                    {
                        DependData dependData = new DependData();
                        dependData.maskType  = (PEActionMask)(i - startIndex);
                        dependData.maskValue = (mask == 1);
                        data.m_DependMask.Add(dependData);
                    }
                }

                data.m_PauseAction = new List <PEActionType>();
                string[] pauseStr = reader.GetString(reader.GetOrdinal("PauseAction")).Split(',');
                foreach (string str in pauseStr)
                {
                    if ("0" != str)
                    {
                        data.m_PauseAction.Add((PEActionType)Convert.ToInt32(str));
                    }
                }

                data.m_EndAction = new List <PEActionType>();
                string[] endStr = reader.GetString(reader.GetOrdinal("EndAction")).Split(',');
                foreach (string str in endStr)
                {
                    if ("0" != str)
                    {
                        data.m_EndAction.Add((PEActionType)Convert.ToInt32(str));
                    }
                }

                data.m_EndImmediately = new List <PEActionType>();
                string[] endImmediatelyStr = reader.GetString(reader.GetOrdinal("EndImmediately")).Split(',');
                foreach (string str in endImmediatelyStr)
                {
                    if ("0" != str)
                    {
                        data.m_EndImmediately.Add((PEActionType)Convert.ToInt32(str));
                    }
                }
                if ((int)data.m_ActionType < m_Relations.Length)
                {
                    m_Relations[(int)data.m_ActionType] = data;
                }
            }
        }