private void UpdateAssetBundleRequest(BundlesRequestNode bundlesRequest) { if (!this.TryCompleteLoading(bundlesRequest)) { base.ScheduleEvent <PrepareBundleToLoadEvent>(bundlesRequest); } }
public void MarkLoaded(LoadCompleteEvent e, PreparedLoaderNode node, [JoinBy(typeof(AssetGroupComponent))] BundlesRequestNode bundlesRequestNode) { string bundleName = node.assetBundleLoading.Info.BundleName; AssetBundle assetBundle = node.assetBundleLoading.AssetBundleDiskCacheRequest.AssetBundle; bundlesRequestNode.assetBundlesLoadData.LoadingBundles.Remove(node.assetBundleLoading.Info); bundlesRequestNode.assetBundlesLoadData.LoadedBundles.Add(node.assetBundleLoading.Info, assetBundle); }
private void UpdateBundleRequests(ICollection <BundlesRequestNode> bundlesRequestList) { if (bundlesRequestList.Count != 0) { List <BundlesRequestNode> list = this.Sort(bundlesRequestList); for (int i = list.Count - 1; i >= 0; i--) { BundlesRequestNode bundlesRequest = list[i]; this.UpdateAssetBundleRequest(bundlesRequest); } } }
public void PrepareBundleToLoad(PrepareBundleToLoadEvent e, BundlesRequestNode bundlesRequest, [JoinAll] ICollection <IdleLoadingChannelNode> loadingChannels, [JoinAll] SingleNode <BaseUrlComponent> baseUrlNode) { foreach (IdleLoadingChannelNode node in loadingChannels) { AssetBundleInfo info = this.SelectDependBundleToLoad(bundlesRequest); if (info == null) { break; } this.PrepareLoadingChannel(info, baseUrlNode.component.Url, node, bundlesRequest.Entity); } }
private bool TryCompleteLoading(BundlesRequestNode bundlesRequest) { if (!bundlesRequest.assetBundlesLoadData.Loaded) { if (!this.IsLoadingComplete(bundlesRequest)) { return(false); } bundlesRequest.assetBundlesLoadData.Loaded = true; base.ScheduleEvent <AssetBundlesLoadedEvent>(bundlesRequest); } return(true); }
private AssetBundleInfo SelectDependBundleToLoad(BundlesRequestNode bundlesRequest) { AssetBundlesLoadDataComponent assetBundlesLoadData = bundlesRequest.assetBundlesLoadData; AssetBundleInfo info = null; List <AssetBundleInfo> list = new List <AssetBundleInfo>(); for (int i = 0; i < assetBundlesLoadData.BundlesToLoad.Count; i++) { AssetBundleInfo info2 = assetBundlesLoadData.BundlesToLoad[i]; if (AssetBundlesStorage.IsStored(info2)) { list.Add(info2); } else if (!AssetBundlesStorage.IsLoading(info2)) { if (i < (assetBundlesLoadData.BundlesToLoad.Count - 1)) { assetBundlesLoadData.BundlesToLoad.Remove(info2); assetBundlesLoadData.LoadingBundles.Add(info2); info = info2; } else if ((assetBundlesLoadData.BundlesToLoad.Count == 1) && (assetBundlesLoadData.LoadingBundles.Count == 0)) { assetBundlesLoadData.BundlesToLoad.Remove(info2); assetBundlesLoadData.LoadingBundles.Add(info2); info = info2; } break; } } foreach (AssetBundleInfo info3 in list) { assetBundlesLoadData.BundlesToLoad.Remove(info3); Dictionary <AssetBundleInfo, AssetBundle> loadedBundles = assetBundlesLoadData.LoadedBundles; if (!loadedBundles.ContainsKey(info3)) { loadedBundles.Add(info3, AssetBundlesStorage.Get(info3)); } } return(info); }
private bool IsLoadingComplete(BundlesRequestNode bundle) => (bundle.assetBundlesLoadData.BundlesToLoad.Count == 0) && (bundle.assetBundlesLoadData.LoadingBundles.Count == 0);