@pixi-spine/runtime-3.7
Version:
Pixi runtime for spine 3.7 models
1 lines • 3.72 kB
Source Map (JSON)
{"version":3,"file":"Skin.mjs","sources":["../../src/core/Skin.ts"],"sourcesContent":["import type { Attachment } from './attachments';\nimport type { Skeleton } from './Skeleton';\n\nimport type { Map, ISkin } from '@pixi-spine/base';\n\n/**\n * @public\n */\nexport class Skin implements ISkin {\n name: string;\n attachments = new Array<Map<Attachment>>();\n\n constructor(name: string) {\n if (name == null) throw new Error('name cannot be null.');\n this.name = name;\n }\n\n addAttachment(slotIndex: number, name: string, attachment: Attachment) {\n if (attachment == null) throw new Error('attachment cannot be null.');\n const attachments = this.attachments;\n\n if (slotIndex >= attachments.length) attachments.length = slotIndex + 1;\n if (!attachments[slotIndex]) attachments[slotIndex] = {};\n attachments[slotIndex][name] = attachment;\n }\n\n /** @return May be null. */\n getAttachment(slotIndex: number, name: string): Attachment {\n const dictionary = this.attachments[slotIndex];\n\n return dictionary ? dictionary[name] : null;\n }\n\n /** Attach each attachment in this skin if the corresponding attachment in the old skin is currently attached. */\n attachAll(skeleton: Skeleton, oldSkin: Skin) {\n let slotIndex = 0;\n\n for (let i = 0; i < skeleton.slots.length; i++) {\n const slot = skeleton.slots[i];\n const slotAttachment = slot.getAttachment();\n\n if (slotAttachment && slotIndex < oldSkin.attachments.length) {\n const dictionary = oldSkin.attachments[slotIndex];\n\n for (const key in dictionary) {\n const skinAttachment: Attachment = dictionary[key];\n\n if (slotAttachment == skinAttachment) {\n const attachment = this.getAttachment(slotIndex, key);\n\n if (attachment != null) slot.setAttachment(attachment);\n break;\n }\n }\n }\n slotIndex++;\n }\n }\n}\n"],"names":[],"mappings":"AAQO,MAAM,IAAsB,CAAA;AAAA,EAI/B,YAAY,IAAc,EAAA;AAF1B,IAAA,IAAA,CAAA,WAAA,GAAc,IAAI,KAAuB,EAAA,CAAA;AAGrC,IAAA,IAAI,IAAQ,IAAA,IAAA;AAAM,MAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA,CAAA;AACxD,IAAA,IAAA,CAAK,IAAO,GAAA,IAAA,CAAA;AAAA,GAChB;AAAA,EAEA,aAAA,CAAc,SAAmB,EAAA,IAAA,EAAc,UAAwB,EAAA;AACnE,IAAA,IAAI,UAAc,IAAA,IAAA;AAAM,MAAM,MAAA,IAAI,MAAM,4BAA4B,CAAA,CAAA;AACpE,IAAA,MAAM,cAAc,IAAK,CAAA,WAAA,CAAA;AAEzB,IAAA,IAAI,aAAa,WAAY,CAAA,MAAA;AAAQ,MAAA,WAAA,CAAY,SAAS,SAAY,GAAA,CAAA,CAAA;AACtE,IAAI,IAAA,CAAC,YAAY,SAAS,CAAA;AAAG,MAAY,WAAA,CAAA,SAAS,IAAI,EAAC,CAAA;AACvD,IAAY,WAAA,CAAA,SAAS,CAAE,CAAA,IAAI,CAAI,GAAA,UAAA,CAAA;AAAA,GACnC;AAAA;AAAA,EAGA,aAAA,CAAc,WAAmB,IAA0B,EAAA;AACvD,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,WAAA,CAAY,SAAS,CAAA,CAAA;AAE7C,IAAO,OAAA,UAAA,GAAa,UAAW,CAAA,IAAI,CAAI,GAAA,IAAA,CAAA;AAAA,GAC3C;AAAA;AAAA,EAGA,SAAA,CAAU,UAAoB,OAAe,EAAA;AACzC,IAAA,IAAI,SAAY,GAAA,CAAA,CAAA;AAEhB,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAK,EAAA,EAAA;AAC5C,MAAM,MAAA,IAAA,GAAO,QAAS,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;AAC7B,MAAM,MAAA,cAAA,GAAiB,KAAK,aAAc,EAAA,CAAA;AAE1C,MAAA,IAAI,cAAkB,IAAA,SAAA,GAAY,OAAQ,CAAA,WAAA,CAAY,MAAQ,EAAA;AAC1D,QAAM,MAAA,UAAA,GAAa,OAAQ,CAAA,WAAA,CAAY,SAAS,CAAA,CAAA;AAEhD,QAAA,KAAA,MAAW,OAAO,UAAY,EAAA;AAC1B,UAAM,MAAA,cAAA,GAA6B,WAAW,GAAG,CAAA,CAAA;AAEjD,UAAA,IAAI,kBAAkB,cAAgB,EAAA;AAClC,YAAA,MAAM,UAAa,GAAA,IAAA,CAAK,aAAc,CAAA,SAAA,EAAW,GAAG,CAAA,CAAA;AAEpD,YAAA,IAAI,UAAc,IAAA,IAAA;AAAM,cAAA,IAAA,CAAK,cAAc,UAAU,CAAA,CAAA;AACrD,YAAA,MAAA;AAAA,WACJ;AAAA,SACJ;AAAA,OACJ;AACA,MAAA,SAAA,EAAA,CAAA;AAAA,KACJ;AAAA,GACJ;AACJ;;;;"}