/*
 * @Descripttion: 
 * @version: 1.0.0
 * @Author: YeeChan
 * @Date: 2020-07-23 16:59:58
 */

/**
 * 远程资源管理
 * 下载后的 cc.Asset 计数加1后 放入 数组存储,下次直接拿取
 */
export default class RemoteMgr {
    private static remoteArrayTexture_custom: { [key: string]: cc.Texture2D; } = {}

    /**
     * 移除所有已加载的
     */
    public static removeAllRemote_custom() {
        for (let k in this.remoteArrayTexture_custom) {
            this.remoteArrayTexture_custom[k].decRef();
        }
        this.remoteArrayTexture_custom = {};
    }

    /**
     * 下载远程图片资源,成功后放入数组,计数自增
     * @param url 
     * @param listener 
     */
    public static loadRemote_custom(url: string, listener: FMListener) {
        let texture2D = this.remoteArrayTexture_custom[url];
        if (texture2D) {
            callFM_custom(listener, null, this.remoteArrayTexture_custom[url]);
        } else {
            cc.assetManager.loadRemote(url, (error, data) => {
                if (error) {
                    callFM_custom(listener, error, null);
                    return;
                } else {
                    if (!this.remoteArrayTexture_custom[url]) {
                        //@ts-ignore
                        this.remoteArrayTexture_custom[url] = data;
                        this.remoteArrayTexture_custom[url].addRef();//计数+1
                    }
                    callFM_custom(listener, null, this.remoteArrayTexture_custom[url]);
                }
            })
        }
    }

}