@combos-fun/plugin-renderer-render 0.0.33 → 0.0.35

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.
@@ -20,18 +20,44 @@ let Render$1 = class Render extends engine.Component {
20
20
  }
21
21
  };
22
22
  tslib.__decorate([
23
- inspectorDecorator.type('boolean')
23
+ inspectorDecorator.Field({
24
+ type: 'boolean',
25
+ group: 'Render',
26
+ label: 'Visible',
27
+ description: 'Whether this object is drawn.',
28
+ editor: 'toggle',
29
+ })
24
30
  ], Render$1.prototype, "visible", void 0);
25
31
  tslib.__decorate([
26
- inspectorDecorator.type('number'),
27
- inspectorDecorator.step(0.1)
32
+ inspectorDecorator.Field({
33
+ type: 'number',
34
+ min: 0,
35
+ max: 1,
36
+ step: 0.01,
37
+ group: 'Render',
38
+ label: 'Opacity',
39
+ description: 'Opacity from 0 (invisible) to 1 (fully opaque).',
40
+ editor: 'number-slider',
41
+ })
28
42
  ], Render$1.prototype, "alpha", void 0);
29
43
  tslib.__decorate([
30
- inspectorDecorator.type('number'),
31
- inspectorDecorator.step(1)
44
+ inspectorDecorator.Field({
45
+ type: 'number',
46
+ step: 1,
47
+ group: 'Render',
48
+ label: 'Z-index',
49
+ description: 'Draw order; higher values render on top.',
50
+ editor: 'number-stepper',
51
+ })
32
52
  ], Render$1.prototype, "zIndex", void 0);
33
53
  tslib.__decorate([
34
- inspectorDecorator.type('boolean')
54
+ inspectorDecorator.Field({
55
+ type: 'boolean',
56
+ group: 'Render',
57
+ label: 'Sort children',
58
+ description: 'When on, children are sorted by their z-index before drawing.',
59
+ editor: 'toggle',
60
+ })
35
61
  ], Render$1.prototype, "sortableChildren", void 0);
36
62
 
37
63
  let Render = class Render extends pluginRenderer.Renderer {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-render.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import {Component} from '@combos-fun/engine';\nimport {type, step} from '@combos-fun/inspector-decorator';\nexport interface RenderParams {\n alpha?: number;\n zIndex?: number;\n visible?: boolean;\n sortableChildren?: boolean;\n}\nexport default class Render extends Component<RenderParams> {\n static componentName: string = 'Render';\n sortDirty: boolean = false;\n @type('boolean') visible: boolean = true;\n @type('number') @step(0.1) alpha: number = 1;\n @type('number') @step(1) zIndex: number = 0;\n @type('boolean') sortableChildren: boolean = false;\n init(obj?: RenderParams) {\n obj && Object.assign(this, obj);\n }\n}\n","import { GameObject, decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\n\nimport RenderComponent from './component';\nimport type { Container } from '@combos-fun/renderer-adapter';\n\n@decorators.componentObserver({\n Render: ['zIndex'],\n})\nexport default class Render extends Renderer {\n static systemName: string = 'Render';\n name: string = 'Render';\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(gameObject: GameObject) {\n const component = gameObject.getComponent('Render') as RenderComponent;\n const container = this.containerManager.getContainer(gameObject.id);\n container.alpha = component.alpha;\n container.visible = component.visible;\n if (component.sortDirty && component.sortableChildren) {\n const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);\n const children = gameObjects\n .sort((a, b) => {\n const aRender = a.getComponent('Render') as RenderComponent;\n const bRender = b.getComponent('Render') as RenderComponent;\n if (!aRender) {\n return -1;\n }\n if (!bRender) {\n return 1;\n }\n return aRender.zIndex - bRender.zIndex;\n })\n .map(gameObject => {\n return this.containerManager.getContainer(gameObject.id);\n });\n const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;\n const elements = oldChildren.filter(c => children.indexOf(c as Container) === -1);\n oldChildren.length = 0;\n oldChildren.push(...elements, ...children);\n component.sortDirty = false;\n }\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.add(changed);\n }\n if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n }\n if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.remove(changed);\n }\n }\n add(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n this.setDirty(changed);\n }\n }\n change(changed: ComponentChanged) {\n if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {\n this.setDirty(changed);\n }\n }\n remove(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.alpha = 1;\n }\n }\n setDirty(changed: ComponentChanged) {\n const parentRender =\n changed.gameObject.parent && (changed.gameObject.parent.getComponent('Render') as RenderComponent);\n if (parentRender) {\n parentRender.sortDirty = true;\n }\n }\n}\n"],"names":["Component","__decorate","type","Render","step","Renderer","RendererSystem","OBSERVER_TYPE","decorators"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-render.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import {Component} from '@combos-fun/engine';\nimport {Field} from '@combos-fun/inspector-decorator';\n\nexport interface RenderParams {\n alpha?: number;\n zIndex?: number;\n visible?: boolean;\n sortableChildren?: boolean;\n}\n\nexport default class Render extends Component<RenderParams> {\n static componentName: string = 'Render';\n sortDirty: boolean = false;\n\n @Field({\n type: 'boolean',\n group: 'Render',\n label: 'Visible',\n description: 'Whether this object is drawn.',\n editor: 'toggle',\n })\n visible: boolean = true;\n\n @Field({\n type: 'number',\n min: 0,\n max: 1,\n step: 0.01,\n group: 'Render',\n label: 'Opacity',\n description: 'Opacity from 0 (invisible) to 1 (fully opaque).',\n editor: 'number-slider',\n })\n alpha: number = 1;\n\n @Field({\n type: 'number',\n step: 1,\n group: 'Render',\n label: 'Z-index',\n description: 'Draw order; higher values render on top.',\n editor: 'number-stepper',\n })\n zIndex: number = 0;\n\n @Field({\n type: 'boolean',\n group: 'Render',\n label: 'Sort children',\n description: 'When on, children are sorted by their z-index before drawing.',\n editor: 'toggle',\n })\n sortableChildren: boolean = false;\n\n init(obj?: RenderParams) {\n obj && Object.assign(this, obj);\n }\n}\n","import { GameObject, decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\n\nimport RenderComponent from './component';\nimport type { Container } from '@combos-fun/renderer-adapter';\n\n@decorators.componentObserver({\n Render: ['zIndex'],\n})\nexport default class Render extends Renderer {\n static systemName: string = 'Render';\n name: string = 'Render';\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(gameObject: GameObject) {\n const component = gameObject.getComponent('Render') as RenderComponent;\n const container = this.containerManager.getContainer(gameObject.id);\n container.alpha = component.alpha;\n container.visible = component.visible;\n if (component.sortDirty && component.sortableChildren) {\n const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);\n const children = gameObjects\n .sort((a, b) => {\n const aRender = a.getComponent('Render') as RenderComponent;\n const bRender = b.getComponent('Render') as RenderComponent;\n if (!aRender) {\n return -1;\n }\n if (!bRender) {\n return 1;\n }\n return aRender.zIndex - bRender.zIndex;\n })\n .map(gameObject => {\n return this.containerManager.getContainer(gameObject.id);\n });\n const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;\n const elements = oldChildren.filter(c => children.indexOf(c as Container) === -1);\n oldChildren.length = 0;\n oldChildren.push(...elements, ...children);\n component.sortDirty = false;\n }\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.add(changed);\n }\n if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n }\n if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.remove(changed);\n }\n }\n add(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n this.setDirty(changed);\n }\n }\n change(changed: ComponentChanged) {\n if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {\n this.setDirty(changed);\n }\n }\n remove(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.alpha = 1;\n }\n }\n setDirty(changed: ComponentChanged) {\n const parentRender =\n changed.gameObject.parent && (changed.gameObject.parent.getComponent('Render') as RenderComponent);\n if (parentRender) {\n parentRender.sortDirty = true;\n }\n }\n}\n"],"names":["Component","__decorate","Field","Render","Renderer","RendererSystem","OBSERVER_TYPE","decorators"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),r=require("@combos-fun/inspector-decorator"),n=require("@combos-fun/plugin-renderer");let o=class extends t.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1}static{this.componentName="Render"}init(e){e&&Object.assign(this,e)}};e.__decorate([r.type("boolean")],o.prototype,"visible",void 0),e.__decorate([r.type("number"),r.step(.1)],o.prototype,"alpha",void 0),e.__decorate([r.type("number"),r.step(1)],o.prototype,"zIndex",void 0),e.__decorate([r.type("boolean")],o.prototype,"sortableChildren",void 0);let i=class extends n.Renderer{constructor(){super(...arguments),this.name="Render"}static{this.systemName="Render"}init(){this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const t=e.getComponent("Render"),r=this.containerManager.getContainer(e.id);if(r.alpha=t.alpha,r.visible=t.visible,t.sortDirty&&t.sortableChildren){const r=e.transform.children.map(({gameObject:e})=>e).sort((e,t)=>{const r=e.getComponent("Render"),n=t.getComponent("Render");return r?n?r.zIndex-n.zIndex:1:-1}).map(e=>this.containerManager.getContainer(e.id)),n=this.containerManager.getContainer(t.gameObject.id).children,o=n.filter(e=>-1===r.indexOf(e));n.length=0,n.push(...o,...r),t.sortDirty=!1}}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD&&this.add(e),e.type===t.OBSERVER_TYPE.CHANGE&&this.change(e),e.type===t.OBSERVER_TYPE.REMOVE&&this.remove(e)}add(e){"Render"===e.component.name&&this.setDirty(e)}change(e){"Render"===e.component.name&&"zIndex"===e.prop.prop[0]&&this.setDirty(e)}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const t=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");t&&(t.sortDirty=!0)}};i=e.__decorate([t.decorators.componentObserver({Render:["zIndex"]})],i);var s=i;exports.Render=o,exports.RenderSystem=s;
1
+ "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),r=require("@combos-fun/inspector-decorator"),n=require("@combos-fun/plugin-renderer");let i=class extends t.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1}static{this.componentName="Render"}init(e){e&&Object.assign(this,e)}};e.__decorate([r.Field({type:"boolean",group:"Render",label:"Visible",description:"Whether this object is drawn.",editor:"toggle"})],i.prototype,"visible",void 0),e.__decorate([r.Field({type:"number",min:0,max:1,step:.01,group:"Render",label:"Opacity",description:"Opacity from 0 (invisible) to 1 (fully opaque).",editor:"number-slider"})],i.prototype,"alpha",void 0),e.__decorate([r.Field({type:"number",step:1,group:"Render",label:"Z-index",description:"Draw order; higher values render on top.",editor:"number-stepper"})],i.prototype,"zIndex",void 0),e.__decorate([r.Field({type:"boolean",group:"Render",label:"Sort children",description:"When on, children are sorted by their z-index before drawing.",editor:"toggle"})],i.prototype,"sortableChildren",void 0);let o=class extends n.Renderer{constructor(){super(...arguments),this.name="Render"}static{this.systemName="Render"}init(){this.renderSystem=this.game.getSystem(n.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const t=e.getComponent("Render"),r=this.containerManager.getContainer(e.id);if(r.alpha=t.alpha,r.visible=t.visible,t.sortDirty&&t.sortableChildren){const r=e.transform.children.map(({gameObject:e})=>e).sort((e,t)=>{const r=e.getComponent("Render"),n=t.getComponent("Render");return r?n?r.zIndex-n.zIndex:1:-1}).map(e=>this.containerManager.getContainer(e.id)),n=this.containerManager.getContainer(t.gameObject.id).children,i=n.filter(e=>-1===r.indexOf(e));n.length=0,n.push(...i,...r),t.sortDirty=!1}}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD&&this.add(e),e.type===t.OBSERVER_TYPE.CHANGE&&this.change(e),e.type===t.OBSERVER_TYPE.REMOVE&&this.remove(e)}add(e){"Render"===e.component.name&&this.setDirty(e)}change(e){"Render"===e.component.name&&"zIndex"===e.prop.prop[0]&&this.setDirty(e)}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const t=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");t&&(t.sortDirty=!0)}};o=e.__decorate([t.decorators.componentObserver({Render:["zIndex"]})],o);var s=o;exports.Render=i,exports.RenderSystem=s;
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { Component, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
3
- import { type, step } from '@combos-fun/inspector-decorator';
3
+ import { Field } from '@combos-fun/inspector-decorator';
4
4
  import { Renderer, RendererSystem } from '@combos-fun/plugin-renderer';
5
5
 
6
6
  let Render$1 = class Render extends Component {
@@ -18,18 +18,44 @@ let Render$1 = class Render extends Component {
18
18
  }
19
19
  };
20
20
  __decorate([
21
- type('boolean')
21
+ Field({
22
+ type: 'boolean',
23
+ group: 'Render',
24
+ label: 'Visible',
25
+ description: 'Whether this object is drawn.',
26
+ editor: 'toggle',
27
+ })
22
28
  ], Render$1.prototype, "visible", void 0);
23
29
  __decorate([
24
- type('number'),
25
- step(0.1)
30
+ Field({
31
+ type: 'number',
32
+ min: 0,
33
+ max: 1,
34
+ step: 0.01,
35
+ group: 'Render',
36
+ label: 'Opacity',
37
+ description: 'Opacity from 0 (invisible) to 1 (fully opaque).',
38
+ editor: 'number-slider',
39
+ })
26
40
  ], Render$1.prototype, "alpha", void 0);
27
41
  __decorate([
28
- type('number'),
29
- step(1)
42
+ Field({
43
+ type: 'number',
44
+ step: 1,
45
+ group: 'Render',
46
+ label: 'Z-index',
47
+ description: 'Draw order; higher values render on top.',
48
+ editor: 'number-stepper',
49
+ })
30
50
  ], Render$1.prototype, "zIndex", void 0);
31
51
  __decorate([
32
- type('boolean')
52
+ Field({
53
+ type: 'boolean',
54
+ group: 'Render',
55
+ label: 'Sort children',
56
+ description: 'When on, children are sorted by their z-index before drawing.',
57
+ editor: 'toggle',
58
+ })
33
59
  ], Render$1.prototype, "sortableChildren", void 0);
34
60
 
35
61
  let Render = class Render extends Renderer {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-render.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import {Component} from '@combos-fun/engine';\nimport {type, step} from '@combos-fun/inspector-decorator';\nexport interface RenderParams {\n alpha?: number;\n zIndex?: number;\n visible?: boolean;\n sortableChildren?: boolean;\n}\nexport default class Render extends Component<RenderParams> {\n static componentName: string = 'Render';\n sortDirty: boolean = false;\n @type('boolean') visible: boolean = true;\n @type('number') @step(0.1) alpha: number = 1;\n @type('number') @step(1) zIndex: number = 0;\n @type('boolean') sortableChildren: boolean = false;\n init(obj?: RenderParams) {\n obj && Object.assign(this, obj);\n }\n}\n","import { GameObject, decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\n\nimport RenderComponent from './component';\nimport type { Container } from '@combos-fun/renderer-adapter';\n\n@decorators.componentObserver({\n Render: ['zIndex'],\n})\nexport default class Render extends Renderer {\n static systemName: string = 'Render';\n name: string = 'Render';\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(gameObject: GameObject) {\n const component = gameObject.getComponent('Render') as RenderComponent;\n const container = this.containerManager.getContainer(gameObject.id);\n container.alpha = component.alpha;\n container.visible = component.visible;\n if (component.sortDirty && component.sortableChildren) {\n const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);\n const children = gameObjects\n .sort((a, b) => {\n const aRender = a.getComponent('Render') as RenderComponent;\n const bRender = b.getComponent('Render') as RenderComponent;\n if (!aRender) {\n return -1;\n }\n if (!bRender) {\n return 1;\n }\n return aRender.zIndex - bRender.zIndex;\n })\n .map(gameObject => {\n return this.containerManager.getContainer(gameObject.id);\n });\n const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;\n const elements = oldChildren.filter(c => children.indexOf(c as Container) === -1);\n oldChildren.length = 0;\n oldChildren.push(...elements, ...children);\n component.sortDirty = false;\n }\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.add(changed);\n }\n if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n }\n if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.remove(changed);\n }\n }\n add(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n this.setDirty(changed);\n }\n }\n change(changed: ComponentChanged) {\n if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {\n this.setDirty(changed);\n }\n }\n remove(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.alpha = 1;\n }\n }\n setDirty(changed: ComponentChanged) {\n const parentRender =\n changed.gameObject.parent && (changed.gameObject.parent.getComponent('Render') as RenderComponent);\n if (parentRender) {\n parentRender.sortDirty = true;\n }\n }\n}\n"],"names":["Render"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-render.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import {Component} from '@combos-fun/engine';\nimport {Field} from '@combos-fun/inspector-decorator';\n\nexport interface RenderParams {\n alpha?: number;\n zIndex?: number;\n visible?: boolean;\n sortableChildren?: boolean;\n}\n\nexport default class Render extends Component<RenderParams> {\n static componentName: string = 'Render';\n sortDirty: boolean = false;\n\n @Field({\n type: 'boolean',\n group: 'Render',\n label: 'Visible',\n description: 'Whether this object is drawn.',\n editor: 'toggle',\n })\n visible: boolean = true;\n\n @Field({\n type: 'number',\n min: 0,\n max: 1,\n step: 0.01,\n group: 'Render',\n label: 'Opacity',\n description: 'Opacity from 0 (invisible) to 1 (fully opaque).',\n editor: 'number-slider',\n })\n alpha: number = 1;\n\n @Field({\n type: 'number',\n step: 1,\n group: 'Render',\n label: 'Z-index',\n description: 'Draw order; higher values render on top.',\n editor: 'number-stepper',\n })\n zIndex: number = 0;\n\n @Field({\n type: 'boolean',\n group: 'Render',\n label: 'Sort children',\n description: 'When on, children are sorted by their z-index before drawing.',\n editor: 'toggle',\n })\n sortableChildren: boolean = false;\n\n init(obj?: RenderParams) {\n obj && Object.assign(this, obj);\n }\n}\n","import { GameObject, decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\n\nimport RenderComponent from './component';\nimport type { Container } from '@combos-fun/renderer-adapter';\n\n@decorators.componentObserver({\n Render: ['zIndex'],\n})\nexport default class Render extends Renderer {\n static systemName: string = 'Render';\n name: string = 'Render';\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(gameObject: GameObject) {\n const component = gameObject.getComponent('Render') as RenderComponent;\n const container = this.containerManager.getContainer(gameObject.id);\n container.alpha = component.alpha;\n container.visible = component.visible;\n if (component.sortDirty && component.sortableChildren) {\n const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);\n const children = gameObjects\n .sort((a, b) => {\n const aRender = a.getComponent('Render') as RenderComponent;\n const bRender = b.getComponent('Render') as RenderComponent;\n if (!aRender) {\n return -1;\n }\n if (!bRender) {\n return 1;\n }\n return aRender.zIndex - bRender.zIndex;\n })\n .map(gameObject => {\n return this.containerManager.getContainer(gameObject.id);\n });\n const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;\n const elements = oldChildren.filter(c => children.indexOf(c as Container) === -1);\n oldChildren.length = 0;\n oldChildren.push(...elements, ...children);\n component.sortDirty = false;\n }\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.add(changed);\n }\n if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n }\n if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.remove(changed);\n }\n }\n add(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n this.setDirty(changed);\n }\n }\n change(changed: ComponentChanged) {\n if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {\n this.setDirty(changed);\n }\n }\n remove(changed: ComponentChanged) {\n if (changed.component.name === 'Render') {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n container.alpha = 1;\n }\n }\n setDirty(changed: ComponentChanged) {\n const parentRender =\n changed.gameObject.parent && (changed.gameObject.parent.getComponent('Render') as RenderComponent);\n if (parentRender) {\n parentRender.sortDirty = true;\n }\n }\n}\n"],"names":["Render"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer-render",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "Per-GameObject visibility / alpha / zIndex / sortable-children control",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-render.esm.js",
@@ -36,10 +36,10 @@
36
36
  "author": "sun668 <q947692259@gmail.com>",
37
37
  "dependencies": {
38
38
  "pixi.js": "^8.18.1",
39
- "@combos-fun/plugin-renderer": "0.0.33",
40
- "@combos-fun/renderer-adapter": "0.0.33",
41
- "@combos-fun/engine": "0.0.33",
42
- "@combos-fun/inspector-decorator": "0.0.33"
39
+ "@combos-fun/plugin-renderer": "0.0.35",
40
+ "@combos-fun/renderer-adapter": "0.0.35",
41
+ "@combos-fun/inspector-decorator": "0.0.35",
42
+ "@combos-fun/engine": "0.0.35"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "node ../../scripts/build-package.mjs"