{"version":3,"file":"Sequence.mjs","sources":["../../../src/core/attachments/Sequence.ts"],"sourcesContent":["import { Utils, TextureRegion, IHasTextureRegion, ISequence } from '@pixi-spine/base';\nimport type { Slot } from '../Slot';\n\n/**\n * @public\n */\nexport class Sequence implements ISequence {\n    private static _nextID = 0;\n\n    id = Sequence.nextID();\n    regions: TextureRegion[];\n    start = 0;\n    digits = 0;\n    /** The index of the region to show for the setup pose. */\n    setupIndex = 0;\n\n    constructor(count: number) {\n        this.regions = new Array<TextureRegion>(count);\n    }\n\n    copy(): Sequence {\n        const copy = new Sequence(this.regions.length);\n\n        Utils.arrayCopy(this.regions, 0, copy.regions, 0, this.regions.length);\n        copy.start = this.start;\n        copy.digits = this.digits;\n        copy.setupIndex = this.setupIndex;\n\n        return copy;\n    }\n\n    apply(slot: Slot, attachment: IHasTextureRegion) {\n        let index = slot.sequenceIndex;\n\n        if (index == -1) index = this.setupIndex;\n        if (index >= this.regions.length) index = this.regions.length - 1;\n        const region = this.regions[index];\n\n        if (attachment.region != region) {\n            attachment.region = region;\n            // attachment.updateRegion();\n        }\n    }\n\n    getPath(basePath: string, index: number): string {\n        let result = basePath;\n        const frame = (this.start + index).toString();\n\n        for (let i = this.digits - frame.length; i > 0; i--) result += '0';\n        result += frame;\n\n        return result;\n    }\n\n    private static nextID(): number {\n        return Sequence._nextID++;\n    }\n}\n\n/**\n * @public\n */\nexport enum SequenceMode {\n    hold = 0,\n    once = 1,\n    loop = 2,\n    pingpong = 3,\n    onceReverse = 4,\n    loopReverse = 5,\n    pingpongReverse = 6,\n}\n\n/**\n * @public\n */\nexport const SequenceModeValues = [\n    SequenceMode.hold,\n    SequenceMode.once,\n    SequenceMode.loop,\n    SequenceMode.pingpong,\n    SequenceMode.onceReverse,\n    SequenceMode.loopReverse,\n    SequenceMode.pingpongReverse,\n];\n"],"names":["SequenceMode"],"mappings":"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"}