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); }
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); }
private static void OnPreloadComplete(object sender, object data) { string id = ( string )_lb.data; _lb = null; LoadLevel(id); }
public void Cancel() { if (this._batch != null) { this._batch.Cancel(); this._batch = null; } }
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)); } } } } }
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); }
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); }
public static void Cancel() { if (_lb != null) { _lb.Cancel(); _lb = null; } if (_loader != null) { _loader.Cancel(); _loader = null; } _completeHandler = null; _progressHandler = null; _errorHandler = null; }
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; } }
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)); } } } } } } } }