{"version":3,"file":"Scene.mjs","sources":["../../src/animate/Scene.ts"],"sourcesContent":["import { load } from './load';\nimport { sound } from './sound';\nimport type { MovieClip } from './MovieClip';\nimport { Application } from '@pixi/app';\nimport type { EventEmitter } from '@pixi/utils';\nimport type { IDestroyOptions } from '@pixi/display';\nimport type { AnimateAsset } from '../AnimateAsset';\n\n/**\n * Extends the PIXI.Application class to provide easy loading.\n * ```\n * const scene = new PIXI.animate.Scene();\n * scene.load(lib.StageName);\n * ```\n */\nexport class Scene extends Application\n{\n    /**\n     * Reference to the global sound object\n     * @readOnly\n     */\n    public readonly sound: EventEmitter = sound;\n\n    /**\n     * The stage object created.\n     */\n    public instance: MovieClip = null;\n\n    /**\n     * Load a stage scene and add it to the stage.\n     * @param asset - Reference to the scene to load.\n     * @param complete - Callback when finished loading.\n     * @param basePath - Optional base directory to prepend to assets.\n     * @return instance of PIXI resource loader\n     */\n    public load(asset: AnimateAsset, complete?: (instance?: MovieClip) => void, basePath?: string): void\n    {\n        return load(asset, {\n            parent: this.stage,\n            createInstance: true,\n            complete: (instance) =>\n            {\n                this.instance = instance as MovieClip;\n                if (complete)\n                {\n                    complete(this.instance);\n                }\n            },\n            basePath,\n        });\n    }\n\n    /**\n     * Destroy and don't use after calling.\n     * @param removeView - Automatically remove canvas from DOM.\n     * @param stageOptions - Options parameter. A boolean will act as if all options\n     *  have been set to that value\n     */\n    destroy(removeView?: boolean, stageOptions?: IDestroyOptions | boolean): void\n    {\n        if (this.instance)\n        {\n            this.instance.destroy(true);\n            this.instance = null;\n        }\n        super.destroy(removeView, stageOptions as IDestroyOptions);\n    }\n}\n"],"names":[],"mappings":";;;;AAeO,MAAM,cAAc,WAC3B,CAAA;AAAA,EADO,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAMH;AAAA;AAAA;AAAA;AAAA,IAAA,IAAA,CAAgB,KAAsB,GAAA,KAAA,CAAA;AAKtC;AAAA;AAAA;AAAA,IAAA,IAAA,CAAO,QAAsB,GAAA,IAAA,CAAA;AAAA,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAStB,IAAA,CAAK,KAAqB,EAAA,QAAA,EAA2C,QAC5E,EAAA;AACI,IAAA,OAAO,KAAK,KAAO,EAAA;AAAA,MACf,QAAQ,IAAK,CAAA,KAAA;AAAA,MACb,cAAgB,EAAA,IAAA;AAAA,MAChB,QAAA,EAAU,CAAC,QACX,KAAA;AACI,QAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAChB,QAAA,IAAI,QACJ,EAAA;AACI,UAAA,QAAA,CAAS,KAAK,QAAQ,CAAA,CAAA;AAAA,SAC1B;AAAA,OACJ;AAAA,MACA,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAA,CAAQ,YAAsB,YAC9B,EAAA;AACI,IAAA,IAAI,KAAK,QACT,EAAA;AACI,MAAK,IAAA,CAAA,QAAA,CAAS,QAAQ,IAAI,CAAA,CAAA;AAC1B,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA,CAAA;AAAA,KACpB;AACA,IAAM,KAAA,CAAA,OAAA,CAAQ,YAAY,YAA+B,CAAA,CAAA;AAAA,GAC7D;AACJ;;;;"}