@combos-fun/plugin-renderer-mask 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -19,7 +19,7 @@ exports.MASK_TYPE = void 0;
|
|
|
19
19
|
let Mask$1 = class Mask extends engine.Component {
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
|
-
// @decorators.IDEProp
|
|
22
|
+
// @decorators.IDEProp complex editing to be added later
|
|
23
23
|
this.style = {};
|
|
24
24
|
this.resource = '';
|
|
25
25
|
this.spriteName = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-renderer-mask.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n type: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Component","__decorate","type","Mask","RESOURCE_KEY_SPLIT","Renderer","RendererSystem","OBSERVER_TYPE","Graphics","SpriteEngine","resource","decorators"],"mappings":";;;;;;;;AAGYA;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EARWA,iBAAS,KAATA,iBAAS,GAAA,EAAA,CAAA,CAAA;aAwBP,MAAO,IAAK,SAAQC,gBAAqB,CAAA;AAAvD,IAAA,WAAA,GAAA;;;QAME,IAAA,CAAA,KAAK,GAAyB,EAAE;QAChB,IAAA,CAAA,QAAQ,GAAY,EAAE;QACtB,IAAA,CAAA,UAAU,GAAY,EAAE;IAK1C;aAZS,IAAA,CAAA,aAAa,GAAW,MAAX,CAAkB;AAStC,IAAA,IAAI,CAAC,GAAgB,EAAA;AACnB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1B;;AALgBC,gBAAA,CAAA;IAAfC,uBAAI,CAAC,QAAQ;AAAyB,CAAA,EAAAC,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AACvBF,gBAAA,CAAA;IAAfC,uBAAI,CAAC,QAAQ;AAA2B,CAAA,EAAAC,MAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;;AC7B3C,MAAM,gBAAgB,GAAGC,iCAAkB;AAE3C,MAAM,mBAAmB,GAAG;AAC1B,IAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;IACtC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACpD,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB;AACD,MAAM,mBAAmB,GAAG;AAC1B,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,OAAO,EAAE,aAAa;CACvB;AAED,IAAK,SAQJ;AARD,CAAA,UAAK,SAAS,EAAA;AACZ,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EARI,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAaC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQC,uBAAQ,CAAA;AAA3B,IAAA,WAAA,GAAA;;QAEb,IAAA,CAAA,IAAI,GAAW,MAAM;QACrB,IAAA,CAAA,YAAY,GAAoC,EAAE;QAClD,IAAA,CAAA,eAAe,GAAyC,EAAE;IAgK5D;aAnKS,IAAA,CAAA,UAAU,GAAG,MAAH,CAAU;IAO3B,IAAI,GAAA;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAACC,6BAAc,CAAmB;QACzE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClD;IACA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACxB;AACA,IAAA,gBAAgB,CAAC,OAAyB,EAAA;AACxC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;YAAE;AACvC,QAAA,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAKC,oBAAa,CAAC,GAAG;AACpB,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBACjB;YACF,KAAKA,oBAAa,CAAC,MAAM;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpB;YACF,KAAKA,oBAAa,CAAC,MAAM;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpB;;IAEN;AACA,IAAA,GAAG,CAAC,OAAyB,EAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAA0B;QACpD,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC;QACzD;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1D;AAEA,QAAA,IAAI,IAAI;AACR,QAAA,QAAQ,SAAS,CAAC,IAAI;YACpB,KAAK,SAAS,CAAC,MAAM;AACnB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,IAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,WAAW;AACxB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,GAAG;AAChB,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBACnC;YACF,KAAK,SAAS,CAAC,MAAM;AACnB,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBACnC;;QAEJ,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,SAAS,CAAC,IAAI,CAAC;QACrF;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,SAAS,CAAC,IAAI,GAAG,IAAI;IACvB;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;AAC9B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAA4B;AACtD,QAAA,SAAS,CAAC,IAAI,GAAG,IAAI;QACrB,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACpD;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAAE;AAC9C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAA0B;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IACE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AAC9D,gBAAA,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EACtC;AACA,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACpB,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACjB,gBAAA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI;YACtC;iBAAO;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B;QACF;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AAClE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnC;iBAAO;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B;QACF;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;YAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC9B;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YAChD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC9B;IACF;AACA,IAAA,cAAc,CAAC,SAAwB,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAIC,wBAAQ,EAAE;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC9B,QAAA,OAAO,QAAQ;IACjB;AACA,IAAA,cAAc,CAAC,OAAO,EAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAgB;QAC3C,QAAQ,CAAC,KAAK,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC;IACxC;IACA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAA;QACtB,MAAM,MAAM,GAAG,EAAE;QACjB,KAAK,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC;AACA,QAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAExD,QAAQ,CAAC,OAAO,EAAE;IACpB;AACA,IAAA,YAAY,CAAC,SAAwB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAIC,sBAAY,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM;IACtB;AACA,IAAA,iBAAiB,CAAC,SAAwB,EAAA;AACxC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAiB;QAC5E,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM;AAC7C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C;AACA,IAAA,YAAY,CAAC,SAAwB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAiB;AAC5E,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IACnC;AACA,IAAA,MAAM,SAAS,CAAC,SAAwB,EAAE,MAAM,EAAA;AAC9C,QAAA,IAAI,GAAG;AACP,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,GAAG,GAAG,MAAMC,eAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;gBAAE;QAC/D;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;QAC7C;QACA,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC,UAAU;YACxE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjC,YAAA,MAAM,CAAC,KAAK,GAAG,OAAO;QACxB;aAAO;YACL,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK;QAC/B;QACA,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM;AAC7C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C;;AAnKmB,IAAI,GAAAT,gBAAA,CAAA;IAHxBU,iBAAU,CAAC,iBAAiB,CAAC;AAC5B,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC;KAC1E;AACoB,CAAA,EAAA,IAAI,CAoKxB;mBApKoB,IAAI;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin-renderer-mask.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp complex editing to be added later\n type: MaskParams['type'];\n // @decorators.IDEProp complex editing to be added later\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Component","__decorate","type","Mask","RESOURCE_KEY_SPLIT","Renderer","RendererSystem","OBSERVER_TYPE","Graphics","SpriteEngine","resource","decorators"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ var MASK_TYPE$1;
|
|
|
17
17
|
let Mask$1 = class Mask extends Component {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
20
|
-
// @decorators.IDEProp
|
|
20
|
+
// @decorators.IDEProp complex editing to be added later
|
|
21
21
|
this.style = {};
|
|
22
22
|
this.resource = '';
|
|
23
23
|
this.spriteName = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-renderer-mask.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n type: MaskParams['type'];\n // @decorators.IDEProp 复杂编辑后续添加\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Mask","SpriteEngine"],"mappings":";;;;;;IAGYA;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EARWA,WAAS,KAATA,WAAS,GAAA,EAAA,CAAA,CAAA;aAwBP,MAAO,IAAK,SAAQ,SAAqB,CAAA;AAAvD,IAAA,WAAA,GAAA;;;QAME,IAAA,CAAA,KAAK,GAAyB,EAAE;QAChB,IAAA,CAAA,QAAQ,GAAY,EAAE;QACtB,IAAA,CAAA,UAAU,GAAY,EAAE;IAK1C;aAZS,IAAA,CAAA,aAAa,GAAW,MAAX,CAAkB;AAStC,IAAA,IAAI,CAAC,GAAgB,EAAA;AACnB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1B;;AALgB,UAAA,CAAA;IAAf,IAAI,CAAC,QAAQ;AAAyB,CAAA,EAAAC,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AACvB,UAAA,CAAA;IAAf,IAAI,CAAC,QAAQ;AAA2B,CAAA,EAAAA,MAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;;AC7B3C,MAAM,gBAAgB,GAAG,kBAAkB;AAE3C,MAAM,mBAAmB,GAAG;AAC1B,IAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;IACtC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACpD,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB;AACD,MAAM,mBAAmB,GAAG;AAC1B,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,OAAO,EAAE,aAAa;CACvB;AAED,IAAK,SAQJ;AARD,CAAA,UAAK,SAAS,EAAA;AACZ,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EARI,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAaC,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,QAAQ,CAAA;AAA3B,IAAA,WAAA,GAAA;;QAEb,IAAA,CAAA,IAAI,GAAW,MAAM;QACrB,IAAA,CAAA,YAAY,GAAoC,EAAE;QAClD,IAAA,CAAA,eAAe,GAAyC,EAAE;IAgK5D;aAnKS,IAAA,CAAA,UAAU,GAAG,MAAH,CAAU;IAO3B,IAAI,GAAA;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAmB;QACzE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClD;IACA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACxB;AACA,IAAA,gBAAgB,CAAC,OAAyB,EAAA;AACxC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;YAAE;AACvC,QAAA,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAK,aAAa,CAAC,GAAG;AACpB,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBACjB;YACF,KAAK,aAAa,CAAC,MAAM;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpB;YACF,KAAK,aAAa,CAAC,MAAM;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpB;;IAEN;AACA,IAAA,GAAG,CAAC,OAAyB,EAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAA0B;QACpD,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC;QACzD;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1D;AAEA,QAAA,IAAI,IAAI;AACR,QAAA,QAAQ,SAAS,CAAC,IAAI;YACpB,KAAK,SAAS,CAAC,MAAM;AACnB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,IAAI;AACjB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,WAAW;AACxB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBACrC;YACF,KAAK,SAAS,CAAC,GAAG;AAChB,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBACnC;YACF,KAAK,SAAS,CAAC,MAAM;AACnB,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBACnC;;QAEJ,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,SAAS,CAAC,IAAI,CAAC;QACrF;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,SAAS,CAAC,IAAI,GAAG,IAAI;IACvB;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;AAC9B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAA4B;AACtD,QAAA,SAAS,CAAC,IAAI,GAAG,IAAI;QACrB,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACpD;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAAE;AAC9C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAA0B;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IACE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AAC9D,gBAAA,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EACtC;AACA,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACpB,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACjB,gBAAA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI;YACtC;iBAAO;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B;QACF;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AAClE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnC;iBAAO;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B;QACF;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;YAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC9B;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;YAChD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC9B;IACF;AACA,IAAA,cAAc,CAAC,SAAwB,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC9B,QAAA,OAAO,QAAQ;IACjB;AACA,IAAA,cAAc,CAAC,OAAO,EAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAgB;QAC3C,QAAQ,CAAC,KAAK,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC;IACxC;IACA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAA;QACtB,MAAM,MAAM,GAAG,EAAE;QACjB,KAAK,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC;AACA,QAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAExD,QAAQ,CAAC,OAAO,EAAE;IACpB;AACA,IAAA,YAAY,CAAC,SAAwB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAIC,MAAY,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM;IACtB;AACA,IAAA,iBAAiB,CAAC,SAAwB,EAAA;AACxC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAiB;QAC5E,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM;AAC7C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C;AACA,IAAA,YAAY,CAAC,SAAwB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAiB;AAC5E,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IACnC;AACA,IAAA,MAAM,SAAS,CAAC,SAAwB,EAAE,MAAM,EAAA;AAC9C,QAAA,IAAI,GAAG;AACP,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;gBAAE;QAC/D;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;QAC7C;QACA,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC,UAAU;YACxE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AACjC,YAAA,MAAM,CAAC,KAAK,GAAG,OAAO;QACxB;aAAO;YACL,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK;QAC/B;QACA,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM;AAC7C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C;;AAnKmB,IAAI,GAAA,UAAA,CAAA;IAHxB,UAAU,CAAC,iBAAiB,CAAC;AAC5B,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC;KAC1E;AACoB,CAAA,EAAA,IAAI,CAoKxB;mBApKoB,IAAI;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin-renderer-mask.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport {type } from '@combos-fun/inspector-decorator'\n\nexport enum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\nexport interface MaskParams {\n type: MASK_TYPE;\n style?: {\n x?: number;\n y?: number;\n radius?: number;\n width?: number;\n height?: number;\n paths?: number[];\n };\n resource?: string;\n spriteName?: string;\n}\n\nexport default class Mask extends Component<MaskParams> {\n static componentName: string = 'Mask';\n _lastType: MaskParams['type'];\n // @decorators.IDEProp complex editing to be added later\n type: MaskParams['type'];\n // @decorators.IDEProp complex editing to be added later\n style?: MaskParams['style'] = {};\n @type('string') resource?: string = '';\n @type('string') spriteName?: string = '';\n\n init(obj?: MaskParams) {\n Object.assign(this, obj);\n }\n}\n","import { decorators, resource, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { Renderer, RendererManager, ContainerManager, RendererSystem, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\nimport { Sprite as SpriteEngine, Graphics } from '@combos-fun/renderer-adapter';\nimport type { Container as PixiContainer } from 'pixi.js';\nimport MaskComponent from './component';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nconst propertyForGraphics = {\n Circle: ['x', 'y', 'radius'],\n Ellipse: ['x', 'y', 'width', 'height'],\n Rect: ['x', 'y', 'width', 'height'],\n RoundedRect: ['x', 'y', 'width', 'height', 'radius'],\n Polygon: ['paths'],\n};\nconst functionForGraphics = {\n Circle: 'drawCircle',\n Ellipse: 'drawEllipse',\n Rect: 'drawRect',\n RoundedRect: 'drawRoundedRect',\n Polygon: 'drawPolygon',\n};\n\nenum MASK_TYPE {\n Circle = 'Circle',\n Ellipse = 'Ellipse',\n Rect = 'Rect',\n RoundedRect = 'RoundedRect',\n Polygon = 'Polygon',\n Img = 'Img',\n Sprite = 'Sprite',\n}\n\n@decorators.componentObserver({\n Mask: ['type', { prop: ['style'], deep: true }, 'resource', 'spriteName'],\n})\nexport default class Mask extends Renderer {\n static systemName = 'Mask';\n name: string = 'Mask';\n changedCache: { [propName: number]: boolean } = {};\n maskSpriteCache: { [propName: number]: SpriteEngine } = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n }\n rendererUpdate() {\n this.changedCache = {};\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.component.name !== 'Mask') return;\n switch (changed.type) {\n case OBSERVER_TYPE.ADD:\n this.add(changed);\n break;\n case OBSERVER_TYPE.REMOVE:\n this.remove(changed);\n break;\n case OBSERVER_TYPE.CHANGE:\n this.change(changed);\n break;\n }\n }\n add(changed: ComponentChanged) {\n const component = changed.component as MaskComponent;\n if (!(component.type in MASK_TYPE)) {\n throw new Error('no have Mask type: ' + component.type);\n }\n\n if (!component.style) {\n throw new Error('no have Mask style: ' + component.type);\n }\n\n let mask;\n switch (component.type) {\n case MASK_TYPE.Circle:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Ellipse:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Rect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.RoundedRect:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Polygon:\n mask = this.createGraphics(component);\n break;\n case MASK_TYPE.Img:\n mask = this.createSprite(component);\n break;\n case MASK_TYPE.Sprite:\n mask = this.createSprite(component);\n break;\n }\n if (!mask) {\n throw new Error('no have mask instance, check your mask params: ' + component.type);\n }\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.mask = mask;\n }\n remove(changed: ComponentChanged) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const maskObj = container.mask as PixiContainer | null;\n container.mask = null;\n maskObj?.destroy({ children: true });\n delete this.maskSpriteCache[changed.gameObject.id];\n }\n change(changed: ComponentChanged) {\n if (this.changedCache[changed.gameObject.id]) return;\n const component = changed.component as MaskComponent;\n if (changed.prop.prop[0] === 'type') {\n this.changedCache[changed.gameObject.id] = true;\n if (\n [MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1 ||\n component._lastType !== component.type\n ) {\n this.remove(changed);\n this.add(changed);\n component._lastType = component.type\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'style') {\n if ([MASK_TYPE.Sprite, MASK_TYPE.Img].indexOf(component.type) > -1) {\n this.changeSpriteStyle(component);\n } else {\n this.redrawGraphics(changed);\n }\n } else if (changed.prop.prop[0] === 'resource') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n } else if (changed.prop.prop[0] === 'spriteName') {\n this.changedCache[changed.gameObject.id] = true;\n this.changeSprite(component);\n }\n }\n createGraphics(component: MaskComponent) {\n const graphics = new Graphics();\n this.draw(graphics, component);\n return graphics;\n }\n redrawGraphics(changed) {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n const graphics = container.mask as Graphics;\n graphics.clear();\n this.draw(graphics, changed.component);\n }\n draw(graphics, component) {\n const params = [];\n for (const key of propertyForGraphics[component.type]) {\n params.push(component.style[key]);\n }\n graphics.beginFill(0x000000, 1);\n graphics[functionForGraphics[component.type]](...params);\n\n graphics.endFill();\n }\n createSprite(component: MaskComponent) {\n const sprite = new SpriteEngine(null);\n this.maskSpriteCache[component.gameObject.id] = sprite;\n this.setSprite(component, sprite);\n return sprite.sprite;\n }\n changeSpriteStyle(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n changeSprite(component: MaskComponent) {\n const sprite = this.maskSpriteCache[component.gameObject.id] as SpriteEngine;\n this.setSprite(component, sprite);\n }\n async setSprite(component: MaskComponent, sprite) {\n let res;\n try {\n const asyncId = this.increaseAsyncId(component.gameObject.id);\n res = await resource.getResource(component.resource);\n if (!this.validateAsyncId(component.gameObject.id, asyncId)) return;\n } catch (e) {\n throw new Error('mask resource load error');\n }\n if (component.type === MASK_TYPE.Sprite) {\n const img = component.resource + resourceKeySplit + component.spriteName;\n const texture = res.instance[img];\n sprite.image = texture;\n } else {\n sprite.image = res.data.image;\n }\n sprite.sprite.width = component.style.width;\n sprite.sprite.height = component.style.height;\n sprite.sprite.position.x = component.style.x;\n sprite.sprite.position.y = component.style.y;\n }\n}\n"],"names":["MASK_TYPE","Mask","SpriteEngine"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@combos-fun/plugin-renderer-mask",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "Pixi mask Component",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-mask.esm.js",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"author": "sun668 <q947692259@gmail.com>",
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"pixi.js": "^8.18.1",
|
|
40
|
-
"@combos-fun/plugin-renderer": "0.0.
|
|
41
|
-
"@combos-fun/engine": "0.0.
|
|
42
|
-
"@combos-fun/renderer-adapter": "0.0.
|
|
43
|
-
"@combos-fun/inspector-decorator": "0.0.
|
|
40
|
+
"@combos-fun/plugin-renderer": "0.0.30",
|
|
41
|
+
"@combos-fun/engine": "0.0.30",
|
|
42
|
+
"@combos-fun/renderer-adapter": "0.0.30",
|
|
43
|
+
"@combos-fun/inspector-decorator": "0.0.30"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|
|
46
46
|
"build": "node ../../scripts/build-package.mjs"
|