using System;
using System.Collections;
using System.Collections.Generic;
namespace YooAsset
{
internal class DependBundleGrouper
{
///
/// 依赖的资源包加载器列表
///
private readonly List _dependBundles;
public DependBundleGrouper(string assetPath)
{
_dependBundles = AssetSystem.CreateDependBundleLoaders(assetPath);
}
///
/// 是否已经完成(无论成功或失败)
///
public bool IsDone()
{
foreach (var loader in _dependBundles)
{
if (loader.IsDone() == false)
return false;
}
return true;
}
///
/// 主线程等待异步操作完毕
///
public void WaitForAsyncComplete()
{
foreach (var loader in _dependBundles)
{
if (loader.IsDone() == false)
loader.WaitForAsyncComplete();
}
}
///
/// 增加引用计数
///
public void Reference()
{
foreach (var loader in _dependBundles)
{
loader.Reference();
}
}
///
/// 减少引用计数
///
public void Release()
{
foreach (var loader in _dependBundles)
{
loader.Release();
}
}
///
/// 获取资源包的调试信息列表
///
internal void GetBundleDebugInfos(List output)
{
foreach (var loader in _dependBundles)
{
var debugInfo = new DebugSummy.BundleInfo();
debugInfo.BundleName = loader.BundleInfo.BundleName;
debugInfo.Version = loader.BundleInfo.Version;
debugInfo.RefCount = loader.RefCount;
debugInfo.States = loader.States;
output.Add(debugInfo);
}
}
}
}