{"version":3,"file":"AtlasAttachmentLoader.mjs","sources":["../../src/core/AtlasAttachmentLoader.ts"],"sourcesContent":["import { AttachmentLoader, RegionAttachment, MeshAttachment, BoundingBoxAttachment, PathAttachment, PointAttachment, ClippingAttachment, Sequence } from './attachments';\nimport type { TextureAtlas } from '@pixi-spine/base';\nimport type { Skin } from './Skin';\n\n/**\n * @public\n */\nexport class AtlasAttachmentLoader implements AttachmentLoader {\n    atlas: TextureAtlas;\n\n    constructor(atlas: TextureAtlas) {\n        this.atlas = atlas;\n    }\n\n    loadSequence(name: string, basePath: string, sequence: Sequence) {\n        const regions = sequence.regions;\n\n        for (let i = 0, n = regions.length; i < n; i++) {\n            const path = sequence.getPath(basePath, i);\n            const region = this.atlas.findRegion(path);\n\n            if (region == null) throw new Error(`Region not found in atlas: ${path} (sequence: ${name})`);\n            regions[i] = region;\n            regions[i].renderObject = regions[i];\n        }\n    }\n\n    newRegionAttachment(skin: Skin, name: string, path: string, sequence: Sequence): RegionAttachment {\n        const attachment = new RegionAttachment(name, path);\n\n        if (sequence != null) {\n            this.loadSequence(name, path, sequence);\n        } else {\n            const region = this.atlas.findRegion(path);\n\n            if (!region) throw new Error(`Region not found in atlas: ${path} (region attachment: ${name})`);\n            region.renderObject = region;\n            attachment.region = region;\n        }\n\n        return attachment;\n    }\n\n    newMeshAttachment(skin: Skin, name: string, path: string, sequence: Sequence): MeshAttachment {\n        const attachment = new MeshAttachment(name, path);\n\n        if (sequence != null) {\n            this.loadSequence(name, path, sequence);\n        } else {\n            const region = this.atlas.findRegion(path);\n\n            if (!region) throw new Error(`Region not found in atlas: ${path} (mesh attachment: ${name})`);\n            region.renderObject = region;\n            attachment.region = region;\n        }\n\n        return attachment;\n    }\n\n    newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment {\n        return new BoundingBoxAttachment(name);\n    }\n\n    newPathAttachment(skin: Skin, name: string): PathAttachment {\n        return new PathAttachment(name);\n    }\n\n    newPointAttachment(skin: Skin, name: string): PointAttachment {\n        return new PointAttachment(name);\n    }\n\n    newClippingAttachment(skin: Skin, name: string): ClippingAttachment {\n        return new ClippingAttachment(name);\n    }\n}\n"],"names":[],"mappings":"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"}