@combos-fun/plugin-renderer-render 0.0.54 → 0.2.0
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.
|
@@ -76,7 +76,7 @@ let Render = class Render extends pluginRenderer.Renderer {
|
|
|
76
76
|
container.alpha = component.alpha;
|
|
77
77
|
container.visible = component.visible;
|
|
78
78
|
if (component.sortDirty && component.sortableChildren) {
|
|
79
|
-
const gameObjects = gameObject.
|
|
79
|
+
const gameObjects = gameObject.children;
|
|
80
80
|
const children = gameObjects
|
|
81
81
|
.sort((a, b) => {
|
|
82
82
|
const aRender = a.getComponent('Render');
|
|
@@ -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 {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.
|
|
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.children;\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":";;;;;;;eAUc,MAAO,MAAO,SAAQA,gBAAuB,CAAA;AAA3D,IAAA,WAAA,GAAA;;QAEE,IAAA,CAAA,SAAS,GAAY,KAAK;QAS1B,IAAA,CAAA,OAAO,GAAY,IAAI;QAYvB,IAAA,CAAA,KAAK,GAAW,CAAC;QAUjB,IAAA,CAAA,MAAM,GAAW,CAAC;QASlB,IAAA,CAAA,gBAAgB,GAAY,KAAK;IAKnC;aA9CS,IAAA,CAAA,aAAa,GAAW,QAAX,CAAoB;AA2CxC,IAAA,IAAI,CAAC,GAAkB,EAAA;QACrB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;IACjC;;AAnCAC,gBAAA,CAAA;AAPC,IAAAC,wBAAK,CAAC;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,+BAA+B;AAC5C,QAAA,MAAM,EAAE,QAAQ;KACjB;AACuB,CAAA,EAAAC,QAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAYxBF,gBAAA,CAAA;AAVC,IAAAC,wBAAK,CAAC;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,iDAAiD;AAC9D,QAAA,MAAM,EAAE,eAAe;KACxB;AACiB,CAAA,EAAAC,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAUlBF,gBAAA,CAAA;AARC,IAAAC,wBAAK,CAAC;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,0CAA0C;AACvD,QAAA,MAAM,EAAE,gBAAgB;KACzB;AACkB,CAAA,EAAAC,QAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AASnBF,gBAAA,CAAA;AAPC,IAAAC,wBAAK,CAAC;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,WAAW,EAAE,+DAA+D;AAC5E,QAAA,MAAM,EAAE,QAAQ;KACjB;AACiC,CAAA,EAAAC,QAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;;AC3CrB,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQC,uBAAQ,CAAA;AAA7B,IAAA,WAAA,GAAA;;QAEb,IAAA,CAAA,IAAI,GAAW,QAAQ;IAuEzB;aAxES,IAAA,CAAA,UAAU,GAAW,QAAX,CAAoB;IAKrC,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;AACA,IAAA,cAAc,CAAC,UAAsB,EAAA;QACnC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAoB;AACtE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AACnE,QAAA,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;AACjC,QAAA,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO;QACrC,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,gBAAgB,EAAE;AACrD,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ;YACvC,MAAM,QAAQ,GAAG;AACd,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACb,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAoB;gBAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAoB;gBAC3D,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,EAAE;gBACX;gBACA,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,OAAO,CAAC;gBACV;AACA,gBAAA,OAAO,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AACxC,YAAA,CAAC;iBACA,GAAG,CAAC,UAAU,IAAG;gBAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1D,YAAA,CAAC,CAAC;AACJ,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ;YACxF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAc,CAAC,KAAK,EAAE,CAAC;AACjF,YAAA,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;AAC1C,YAAA,SAAS,CAAC,SAAS,GAAG,KAAK;QAC7B;IACF;AACA,IAAA,gBAAgB,CAAC,OAAyB,EAAA;QACxC,IAAI,OAAO,CAAC,IAAI,KAAKC,oBAAa,CAAC,GAAG,EAAE;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACnB;QACA,IAAI,OAAO,CAAC,IAAI,KAAKA,oBAAa,CAAC,MAAM,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtB;QACA,IAAI,OAAO,CAAC,IAAI,KAAKA,oBAAa,CAAC,MAAM,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtB;IACF;AACA,IAAA,GAAG,CAAC,OAAyB,EAAA;QAC3B,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxB;IACF;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC5E,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxB;IACF;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;QAC9B,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3E,YAAA,SAAS,CAAC,KAAK,GAAG,CAAC;QACrB;IACF;AACA,IAAA,QAAQ,CAAC,OAAyB,EAAA;AAChC,QAAA,MAAM,YAAY,GAChB,OAAO,CAAC,UAAU,CAAC,MAAM,IAAK,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAqB;QACpG,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,SAAS,GAAG,IAAI;QAC/B;IACF;;AAxEmB,MAAM,GAAAL,gBAAA,CAAA;IAH1BM,iBAAU,CAAC,iBAAiB,CAAC;QAC5B,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB;AACoB,CAAA,EAAA,MAAM,CAyE1B;qBAzEoB,MAAM;;;;;"}
|
|
@@ -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 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.
|
|
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.children.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;
|
|
@@ -74,7 +74,7 @@ let Render = class Render extends Renderer {
|
|
|
74
74
|
container.alpha = component.alpha;
|
|
75
75
|
container.visible = component.visible;
|
|
76
76
|
if (component.sortDirty && component.sortableChildren) {
|
|
77
|
-
const gameObjects = gameObject.
|
|
77
|
+
const gameObjects = gameObject.children;
|
|
78
78
|
const children = gameObjects
|
|
79
79
|
.sort((a, b) => {
|
|
80
80
|
const aRender = a.getComponent('Render');
|
|
@@ -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 {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.
|
|
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.children;\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
|
|
3
|
+
"version": "0.2.0",
|
|
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/renderer
|
|
40
|
-
"@combos-fun/
|
|
41
|
-
"@combos-fun/inspector-decorator": "0.0
|
|
42
|
-
"@combos-fun/engine": "0.0
|
|
39
|
+
"@combos-fun/plugin-renderer": "0.2.0",
|
|
40
|
+
"@combos-fun/renderer-adapter": "0.2.0",
|
|
41
|
+
"@combos-fun/inspector-decorator": "0.2.0",
|
|
42
|
+
"@combos-fun/engine": "0.2.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "node ../../scripts/build-package.mjs"
|