import { assetManager, director, AssetManager } from "cc";
/**
 * 场景信息
 */
export interface ISceneInfo {
    /**
     * 场景名称
     */
    name: string;
    /**
     * 场景包名
     */
    bundle?: string;
}

export class SceneUtil {
    static async reloadScene(){
        return new Promise((resolve, reject) => {
            director.loadScene(director.getScene().name,()=>{
                resolve(true);
            });
        });
    }
    static async loadScene(scene: ISceneInfo) {
        return new Promise((resolve, reject) => {
            let bundle = assetManager.getBundle(scene.bundle);
            if (bundle) {
                director.loadScene(scene.name, () => {
                    resolve(true);
                });
            }
            else {
                assetManager.loadBundle(scene.bundle, (err, bundle: AssetManager.Bundle) => {
                    if (bundle) {
                        director.loadScene(scene.name, () => {
                            resolve(true);
                        });
                    }
                })
            }
        });
    }
}