Esempio n. 1
0
        public ILoadBatch <IGraphic2D> LoadGraphicBatch(string filePath, string id)
        {
            var definition = File.ReadAllLines(filePath).Where(l => l.Length > 0)
                             .Where(l => l.ToLower().StartsWith("graphicbatch") && l.Contains($"id>{id}"))
                             .FirstOrDefault();

            var work = definition.Split(';');

            var fileIdDict = new Dictionary <string, List <string> >();

            for (int i = 0; i < work.Length; i++)
            {
                var pair = work[i].Split('=');
                if (pair.Length > 1 && pair[0].Trim().Length > 0)
                {
                    var ids = pair[1].Trim()
                              .Trim('{', '}')
                              .Split(',')
                              .Select(l => l.Trim())
                              .ToList();

                    fileIdDict.Add(pair[0].Trim(), ids);
                }
            }

            var batch = new LoadBatch <IGraphic2D>(id);

            batch.FileIdDict = fileIdDict;
            return(batch);
        }
Esempio n. 2
0
        public static void Preload(string id, string[] players, string[] neutrals, string[] structures,
                                   CompleteHandler completeHandler, ProgressHandler progressHandler, ErrorHandler errorHandler)
        {
            _completeHandler = completeHandler;
            _progressHandler = progressHandler;
            _errorHandler    = errorHandler;

            _lb = new LoadBatch();

            _lb.Add(new AssetsLoader("scene/" + ModelFactory.GetBattleData(id).model + "_navmesh"));
            _lb.Add(new AssetsLoader("model/range_circle", "range_circle"));
            _lb.Add(new AssetsLoader("model/route_point", "route_point"));
            _lb.Add(new AssetsLoader("model/route_point_drag", "route_point_drag"));

            int count = players.Length;

            for (int i = 0; i < count; i++)
            {
                CollectModels(players[i], _lb);
            }
            count = neutrals.Length;
            for (int i = 0; i < count; i++)
            {
                CollectModels(neutrals[i], _lb);
            }
            count = structures.Length;
            for (int i = 0; i < count; i++)
            {
                CollectModels(structures[i], _lb);
            }
            _lb.data = id;
            _lb.Start(OnPreloadComplete, OnPreloadProgress, OnPreloadError, OnSingleLoadComplete);
        }
Esempio n. 3
0
        private static void OnPreloadComplete(object sender, object data)
        {
            string id = ( string )_lb.data;

            _lb = null;
            LoadLevel(id);
        }
Esempio n. 4
0
 public void Cancel()
 {
     if (this._batch != null)
     {
         this._batch.Cancel();
         this._batch = null;
     }
 }
Esempio n. 5
0
        private static void CollectModels(string id, LoadBatch loader)
        {
            EntityData entityData = ModelFactory.GetEntityData(id);

            if (!string.IsNullOrEmpty(entityData.model))
            {
                loader.Add(new AssetsLoader("model/" + entityData.model));
            }

            int c1 = entityData.skills.Length;

            for (int i = 0; i < c1; i++)
            {
                SkillData skillData = ModelFactory.GetSkillData(entityData.skills[i]);

                PreloadBuffs(loader, skillData.passiveBuffs);
                PreloadBuffs(loader, skillData.buffs);

                if (skillData.levels == null)
                {
                    continue;
                }

                int c6 = skillData.levels.Length;
                for (int j = 0; j < c6; j++)
                {
                    SkillData.Level level = skillData.levels[j];

                    string     fx = level.atkFx;
                    EntityData effectData;
                    if (!string.IsNullOrEmpty(fx))
                    {
                        effectData = ModelFactory.GetEntityData(fx);
                        loader.Add(new AssetsLoader("model/" + effectData.model));
                    }

                    string missile = level.missile;
                    if (!string.IsNullOrEmpty(missile))
                    {
                        EntityData missileData = ModelFactory.GetEntityData(missile);
                        if (!string.IsNullOrEmpty(missileData.model))
                        {
                            loader.Add(new AssetsLoader("model/" + missileData.model));
                        }

                        if (!string.IsNullOrEmpty(missileData.hitFx))
                        {
                            effectData = ModelFactory.GetEntityData(missileData.hitFx);
                            loader.Add(new AssetsLoader("model/" + effectData.model));
                        }
                    }
                }
            }
        }
Esempio n. 6
0
        private void OnInternalComplete(object sender, object o)
        {
            this._batch = null;

            if (!this.loaded)
            {
                UIPackage.AddPackage(this._dec, this._res).customId = this._assetBundleName;
                this._dec = this._res = null;
            }

            this.completeHandler?.Invoke(this, null);
        }
Esempio n. 7
0
        public void Load(AssetsCompleteHandler completeHandler, ProgressHandler progressHandler, ErrorHandler errorHandler,
                         bool useWWW = false, bool fromCache = true, bool sync = false)
        {
            this.completeHandler = completeHandler;
            this.progressHandler = progressHandler;
            this.errorHandler    = errorHandler;

            this.Cancel();

            this._batch = new LoadBatch(fromCache, sync);
            this._batch.Add(new AssetsLoader(this._assetBundleName, string.Empty, null, AssetsLoader.CacheType.NoCache));
            this._batch.Add(new AssetsLoader(this._assetBundleName + "_res", string.Empty, null, AssetsLoader.CacheType.NoCache));
            this._batch.Start(this.OnInternalComplete, this.OnInternalProgress, this.OnInternalError,
                              this.OnInternalSingleComplete);
        }
Esempio n. 8
0
        public static void Cancel()
        {
            if (_lb != null)
            {
                _lb.Cancel();
                _lb = null;
            }

            if (_loader != null)
            {
                _loader.Cancel();
                _loader = null;
            }
            _completeHandler = null;
            _progressHandler = null;
            _errorHandler    = null;
        }
Esempio n. 9
0
        public void Leave()
        {
            NetModule.instance.RemoveACMDListener(Module.BATTLE, Command.ACMD_ENTER_BATTLE, this.OnEnterBattle);
            NetModule.instance.RemoveQCMDListener(Module.ROOM, Command.QCMD_MAP_READY, this.OnMapReadyResult);

            if (this._lb != null)
            {
                this._lb.Cancel();
                this._lb = null;
            }

            if (this._root != null)
            {
                this._root.Dispose();
                this._root = null;
            }
        }
Esempio n. 10
0
        private static void PreloadBuffs(LoadBatch loader, string[] buffs)
        {
            if (buffs == null)
            {
                return;
            }

            int c2 = buffs.Length;

            for (int i = 0; i < c2; i++)
            {
                BuffData buffData = ModelFactory.GetBuffData(buffs[i]);
                //enter state
                if (buffData.enterStates != null)
                {
                    int c3 = buffData.enterStates.Length;
                    for (int j = 0; j < c3; j++)
                    {
                        string        stateId       = buffData.enterStates[j];
                        BuffStateData buffStateData = ModelFactory.GetBuffStateData(stateId);
                        int           c4            = buffStateData.levels.Length;
                        for (int k = 0; k < c4; k++)
                        {
                            BuffStateData.Level level = buffStateData.levels[k];
                            if (level.fxs == null)
                            {
                                continue;
                            }

                            int c6 = level.fxs.Length;
                            for (int l = 0; l < c6; l++)
                            {
                                EntityData effectData = ModelFactory.GetEntityData(level.fxs[l]);
                                loader.Add(new AssetsLoader("model/" + effectData.model));
                            }

                            if (level.trigger != null &&
                                level.trigger.fxs != null)
                            {
                                int c5 = level.trigger.fxs.Length;
                                for (int l = 0; l < c5; l++)
                                {
                                    string fxId = level.trigger.fxs[l];
                                    if (string.IsNullOrEmpty(fxId))
                                    {
                                        continue;
                                    }
                                    EntityData effectData = ModelFactory.GetEntityData(fxId);
                                    loader.Add(new AssetsLoader("model/" + effectData.model));
                                }
                            }
                        }
                    }
                }

                //trigger state
                if (buffData.triggerStates != null)
                {
                    int c3 = buffData.triggerStates.Length;
                    for (int j = 0; j < c3; j++)
                    {
                        string        stateId       = buffData.triggerStates[j];
                        BuffStateData buffStateData = ModelFactory.GetBuffStateData(stateId);
                        int           c4            = buffStateData.levels.Length;
                        for (int k = 0; k < c4; k++)
                        {
                            BuffStateData.Level level = buffStateData.levels[k];
                            if (level.fxs == null)
                            {
                                continue;
                            }

                            int c6 = level.fxs.Length;
                            for (int l = 0; l < c6; l++)
                            {
                                EntityData effectData = ModelFactory.GetEntityData(level.fxs[l]);
                                loader.Add(new AssetsLoader("model/" + effectData.model));
                            }

                            if (level.trigger != null &&
                                level.trigger.fxs != null)
                            {
                                int c5 = level.trigger.fxs.Length;
                                for (int l = 0; l < c5; l++)
                                {
                                    string fxId = level.trigger.fxs[l];
                                    if (string.IsNullOrEmpty(fxId))
                                    {
                                        continue;
                                    }
                                    EntityData effectData = ModelFactory.GetEntityData(fxId);
                                    loader.Add(new AssetsLoader("model/" + effectData.model));
                                }
                            }
                        }
                    }
                }

                if (buffData.levels != null)
                {
                    int c3 = buffData.levels.Length;
                    for (int k = 0; k < c3; k++)
                    {
                        BuffData.Level buffLevel = buffData.levels[k];

                        if (!string.IsNullOrEmpty(buffLevel.fx))
                        {
                            EntityData effectData = ModelFactory.GetEntityData(buffLevel.fx);
                            loader.Add(new AssetsLoader("model/" + effectData.model));
                        }

                        if (!string.IsNullOrEmpty(buffLevel.areaFx))
                        {
                            EntityData effectData = ModelFactory.GetEntityData(buffLevel.areaFx);
                            loader.Add(new AssetsLoader("model/" + effectData.model));
                        }

                        //trigger
                        BuffData.Trigger trigger = buffLevel.trigger;
                        if (trigger != null)
                        {
                            if (trigger.fxs != null)
                            {
                                int c4 = trigger.fxs.Length;
                                for (int l = 0; l < c4; l++)
                                {
                                    if (!string.IsNullOrEmpty(trigger.fxs[l]))
                                    {
                                        EntityData effectData = ModelFactory.GetEntityData(trigger.fxs[l]);
                                        loader.Add(new AssetsLoader("model/" + effectData.model));
                                    }
                                }
                            }

                            if (trigger.tfxs != null)
                            {
                                int c4 = trigger.tfxs.Length;
                                for (int l = 0; l < c4; l++)
                                {
                                    if (!string.IsNullOrEmpty(trigger.tfxs[l]))
                                    {
                                        EntityData effectData = ModelFactory.GetEntityData(trigger.tfxs[l]);
                                        loader.Add(new AssetsLoader("model/" + effectData.model));
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }