Пример #1
0
    public List <ActorPreloadTab> AnalyseAgeRefAssets(Dictionary <long, Dictionary <object, AssetRefType> > refAssetsDict)
    {
        List <ActorPreloadTab> list = new List <ActorPreloadTab>();

        Dictionary <long, Dictionary <object, AssetRefType> > .Enumerator enumerator = refAssetsDict.GetEnumerator();
        while (enumerator.MoveNext())
        {
            KeyValuePair <long, Dictionary <object, AssetRefType> > current = enumerator.get_Current();
            long key  = current.get_Key();
            int  num  = (int)(key >> 32);
            int  num2 = (int)(key & (long)((ulong)-1));
            KeyValuePair <long, Dictionary <object, AssetRefType> > current2 = enumerator.get_Current();
            Dictionary <object, AssetRefType> value = current2.get_Value();
            ActorPreloadTab actorPreloadTab         = new ActorPreloadTab();
            actorPreloadTab.ageActions        = new List <AssetLoadBase>();
            actorPreloadTab.parPrefabs        = new List <AssetLoadBase>();
            actorPreloadTab.mesPrefabs        = new List <AssetLoadBase>();
            actorPreloadTab.spritePrefabs     = new List <AssetLoadBase>();
            actorPreloadTab.soundBanks        = new List <AssetLoadBase>();
            actorPreloadTab.behaviorXml       = new List <AssetLoadBase>();
            actorPreloadTab.MarkID            = num;
            actorPreloadTab.theActor.ConfigId = num2;
            list.Add(actorPreloadTab);
            Dictionary <object, AssetRefType> .Enumerator enumerator2 = value.GetEnumerator();
            while (enumerator2.MoveNext())
            {
                KeyValuePair <object, AssetRefType> current3 = enumerator2.get_Current();
                AssetRefType value2 = current3.get_Value();
                KeyValuePair <object, AssetRefType> current4 = enumerator2.get_Current();
                object key2 = current4.get_Key();
                switch (value2)
                {
                case AssetRefType.Action:
                {
                    AssetLoadBase assetLoadBase = default(AssetLoadBase);
                    assetLoadBase.assetPath = (key2 as string);
                    string checkerKey = this.GetCheckerKey(assetLoadBase.assetPath, num);
                    if (!this.ageCheckerSet.ContainsKey(checkerKey))
                    {
                        actorPreloadTab.ageActions.Add(assetLoadBase);
                        this.ageCheckerSet.Add(checkerKey, true);
                    }
                    break;
                }

                case AssetRefType.SkillID:
                {
                    KeyValuePair <object, AssetRefType> current5 = enumerator2.get_Current();
                    ulong num3    = (ulong)current5.get_Key();
                    int   skillID = (int)(num3 & (ulong)-1);
                    this.AnalyseSkill(ref actorPreloadTab, skillID);
                    break;
                }

                case AssetRefType.SkillCombine:
                {
                    KeyValuePair <object, AssetRefType> current6 = enumerator2.get_Current();
                    ulong num4      = (ulong)current6.get_Key();
                    int   combineId = (int)(num4 & (ulong)-1);
                    this.AnalyseSkillCombine(ref actorPreloadTab, combineId);
                    break;
                }

                case AssetRefType.Prefab:
                {
                    AssetLoadBase assetLoadBase2 = default(AssetLoadBase);
                    assetLoadBase2.assetPath = (key2 as string);
                    actorPreloadTab.mesPrefabs.Add(assetLoadBase2);
                    if (num != 0)
                    {
                        for (int i = 0; i < 3; i++)
                        {
                            AssetLoadBase assetLoadBase3 = default(AssetLoadBase);
                            assetLoadBase3.assetPath = SkinResourceHelper.GetSkinResourceName(num2, num, assetLoadBase2.assetPath, i);
                            actorPreloadTab.mesPrefabs.Add(assetLoadBase3);
                        }
                    }
                    break;
                }

                case AssetRefType.Particle:
                {
                    AssetLoadBase assetLoadBase4 = default(AssetLoadBase);
                    KeyValuePair <object, AssetRefType> current7 = enumerator2.get_Current();
                    assetLoadBase4.assetPath = (current7.get_Key() as string);
                    actorPreloadTab.parPrefabs.Add(assetLoadBase4);
                    if (num != 0)
                    {
                        for (int j = 0; j < 3; j++)
                        {
                            AssetLoadBase assetLoadBase5 = default(AssetLoadBase);
                            assetLoadBase5.assetPath = SkinResourceHelper.GetSkinResourceName(num2, num, assetLoadBase4.assetPath, j);
                            actorPreloadTab.parPrefabs.Add(assetLoadBase5);
                        }
                    }
                    break;
                }

                case AssetRefType.MonsterConfigId:
                {
                    KeyValuePair <object, AssetRefType> current8 = enumerator2.get_Current();
                    ulong     num5      = (ulong)current8.get_Key();
                    int       configId  = (int)(num5 & (ulong)-1);
                    ActorMeta actorMeta = default(ActorMeta);
                    actorMeta.ActorType = ActorTypeDef.Actor_Type_Monster;
                    actorMeta.ConfigId  = configId;
                    actorMeta.ActorCamp = COM_PLAYERCAMP.COM_PLAYERCAMP_MID;
                    this.AddPreloadActor(ref list, ref actorMeta, 0f, 0);
                    break;
                }

                case AssetRefType.CallActorConfigId:
                {
                    KeyValuePair <object, AssetRefType> current9 = enumerator2.get_Current();
                    ulong     num6       = (ulong)current9.get_Key();
                    int       configId2  = (int)(num6 & (ulong)-1);
                    ActorMeta actorMeta2 = default(ActorMeta);
                    actorMeta2.ActorType = ActorTypeDef.Actor_Type_Hero;
                    actorMeta2.ConfigId  = configId2;
                    actorMeta2.ActorCamp = COM_PLAYERCAMP.COM_PLAYERCAMP_MID;
                    this.AddPreloadActor(ref list, ref actorMeta2, 0f, 0);
                    break;
                }
                }
            }
        }
        return(list);
    }