@combos-fun/plugin-renderer-render 0.0.1

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.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @combos-fun/plugin-renderer-render
2
+
3
+ Internal workspace package (Combos Fun monorepo).
@@ -0,0 +1,119 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var engine = require('@combos-fun/engine');
5
+ var inspectorDecorator = require('@combos-fun/inspector-decorator');
6
+ var pluginRenderer = require('@combos-fun/plugin-renderer');
7
+
8
+ let Render$1 = class Render extends engine.Component {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.sortDirty = false;
12
+ this.visible = true;
13
+ this.alpha = 1;
14
+ this.zIndex = 0;
15
+ this.sortableChildren = false;
16
+ }
17
+ static { this.componentName = 'Render'; }
18
+ init(obj) {
19
+ obj && Object.assign(this, obj);
20
+ }
21
+ };
22
+ tslib.__decorate([
23
+ inspectorDecorator.type('boolean')
24
+ ], Render$1.prototype, "visible", void 0);
25
+ tslib.__decorate([
26
+ inspectorDecorator.type('number'),
27
+ inspectorDecorator.step(0.1)
28
+ ], Render$1.prototype, "alpha", void 0);
29
+ tslib.__decorate([
30
+ inspectorDecorator.type('number'),
31
+ inspectorDecorator.step(1)
32
+ ], Render$1.prototype, "zIndex", void 0);
33
+ tslib.__decorate([
34
+ inspectorDecorator.type('boolean')
35
+ ], Render$1.prototype, "sortableChildren", void 0);
36
+
37
+ let Render = class Render extends pluginRenderer.Renderer {
38
+ constructor() {
39
+ super(...arguments);
40
+ this.name = 'Render';
41
+ }
42
+ static { this.systemName = 'Render'; }
43
+ init() {
44
+ this.renderSystem = this.game.getSystem(pluginRenderer.RendererSystem);
45
+ this.renderSystem.rendererManager.register(this);
46
+ }
47
+ rendererUpdate(gameObject) {
48
+ const component = gameObject.getComponent('Render');
49
+ const container = this.containerManager.getContainer(gameObject.id);
50
+ container.alpha = component.alpha;
51
+ container.visible = component.visible;
52
+ if (component.sortDirty && component.sortableChildren) {
53
+ const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);
54
+ const children = gameObjects
55
+ .sort((a, b) => {
56
+ const aRender = a.getComponent('Render');
57
+ const bRender = b.getComponent('Render');
58
+ if (!aRender) {
59
+ return -1;
60
+ }
61
+ if (!bRender) {
62
+ return 1;
63
+ }
64
+ return aRender.zIndex - bRender.zIndex;
65
+ })
66
+ .map(gameObject => {
67
+ return this.containerManager.getContainer(gameObject.id);
68
+ });
69
+ const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;
70
+ const elements = oldChildren.filter(c => children.indexOf(c) === -1);
71
+ oldChildren.length = 0;
72
+ oldChildren.push(...elements, ...children);
73
+ component.sortDirty = false;
74
+ }
75
+ }
76
+ componentChanged(changed) {
77
+ if (changed.type === engine.OBSERVER_TYPE.ADD || changed.type === engine.OBSERVER_TYPE.REMOVE) {
78
+ this.add(changed);
79
+ }
80
+ if (changed.type === engine.OBSERVER_TYPE.CHANGE) {
81
+ this.change(changed);
82
+ }
83
+ if (changed.type === engine.OBSERVER_TYPE.REMOVE) {
84
+ this.remove(changed);
85
+ }
86
+ }
87
+ add(changed) {
88
+ if (changed.component.name === 'Render') {
89
+ this.setDirty(changed);
90
+ }
91
+ }
92
+ change(changed) {
93
+ if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {
94
+ this.setDirty(changed);
95
+ }
96
+ }
97
+ remove(changed) {
98
+ if (changed.component.name === 'Render') {
99
+ const container = this.containerManager.getContainer(changed.gameObject.id);
100
+ container.alpha = 1;
101
+ }
102
+ }
103
+ setDirty(changed) {
104
+ const parentRender = changed.gameObject.parent && changed.gameObject.parent.getComponent('Render');
105
+ if (parentRender) {
106
+ parentRender.sortDirty = true;
107
+ }
108
+ }
109
+ };
110
+ Render = tslib.__decorate([
111
+ engine.decorators.componentObserver({
112
+ Render: ['zIndex'],
113
+ })
114
+ ], Render);
115
+ var Render_default = Render;
116
+
117
+ exports.Render = Render$1;
118
+ exports.RenderSystem = Render_default;
119
+ //# sourceMappingURL=plugin-renderer-render.cjs.js.map
@@ -0,0 +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 || changed.type === OBSERVER_TYPE.REMOVE) {\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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"}
@@ -0,0 +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&&e.type!==t.OBSERVER_TYPE.REMOVE||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;
@@ -0,0 +1,36 @@
1
+ import { Component, GameObject, ComponentChanged } from '@combos-fun/engine';
2
+ import { Renderer, RendererSystem, RendererManager, ContainerManager } from '@combos-fun/plugin-renderer';
3
+
4
+ interface RenderParams {
5
+ alpha?: number;
6
+ zIndex?: number;
7
+ visible?: boolean;
8
+ sortableChildren?: boolean;
9
+ }
10
+ declare class Render$1 extends Component<RenderParams> {
11
+ static componentName: string;
12
+ sortDirty: boolean;
13
+ visible: boolean;
14
+ alpha: number;
15
+ zIndex: number;
16
+ sortableChildren: boolean;
17
+ init(obj?: RenderParams): void;
18
+ }
19
+
20
+ declare class Render extends Renderer {
21
+ static systemName: string;
22
+ name: string;
23
+ renderSystem: RendererSystem;
24
+ rendererManager: RendererManager;
25
+ containerManager: ContainerManager;
26
+ init(): void;
27
+ rendererUpdate(gameObject: GameObject): void;
28
+ componentChanged(changed: ComponentChanged): void;
29
+ add(changed: ComponentChanged): void;
30
+ change(changed: ComponentChanged): void;
31
+ remove(changed: ComponentChanged): void;
32
+ setDirty(changed: ComponentChanged): void;
33
+ }
34
+
35
+ export { Render$1 as Render, Render as RenderSystem };
36
+ export type { RenderParams };
@@ -0,0 +1,116 @@
1
+ import { __decorate } from 'tslib';
2
+ import { Component, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
3
+ import { type, step } from '@combos-fun/inspector-decorator';
4
+ import { Renderer, RendererSystem } from '@combos-fun/plugin-renderer';
5
+
6
+ let Render$1 = class Render extends Component {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.sortDirty = false;
10
+ this.visible = true;
11
+ this.alpha = 1;
12
+ this.zIndex = 0;
13
+ this.sortableChildren = false;
14
+ }
15
+ static { this.componentName = 'Render'; }
16
+ init(obj) {
17
+ obj && Object.assign(this, obj);
18
+ }
19
+ };
20
+ __decorate([
21
+ type('boolean')
22
+ ], Render$1.prototype, "visible", void 0);
23
+ __decorate([
24
+ type('number'),
25
+ step(0.1)
26
+ ], Render$1.prototype, "alpha", void 0);
27
+ __decorate([
28
+ type('number'),
29
+ step(1)
30
+ ], Render$1.prototype, "zIndex", void 0);
31
+ __decorate([
32
+ type('boolean')
33
+ ], Render$1.prototype, "sortableChildren", void 0);
34
+
35
+ let Render = class Render extends Renderer {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.name = 'Render';
39
+ }
40
+ static { this.systemName = 'Render'; }
41
+ init() {
42
+ this.renderSystem = this.game.getSystem(RendererSystem);
43
+ this.renderSystem.rendererManager.register(this);
44
+ }
45
+ rendererUpdate(gameObject) {
46
+ const component = gameObject.getComponent('Render');
47
+ const container = this.containerManager.getContainer(gameObject.id);
48
+ container.alpha = component.alpha;
49
+ container.visible = component.visible;
50
+ if (component.sortDirty && component.sortableChildren) {
51
+ const gameObjects = gameObject.transform.children.map(({ gameObject }) => gameObject);
52
+ const children = gameObjects
53
+ .sort((a, b) => {
54
+ const aRender = a.getComponent('Render');
55
+ const bRender = b.getComponent('Render');
56
+ if (!aRender) {
57
+ return -1;
58
+ }
59
+ if (!bRender) {
60
+ return 1;
61
+ }
62
+ return aRender.zIndex - bRender.zIndex;
63
+ })
64
+ .map(gameObject => {
65
+ return this.containerManager.getContainer(gameObject.id);
66
+ });
67
+ const oldChildren = this.containerManager.getContainer(component.gameObject.id).children;
68
+ const elements = oldChildren.filter(c => children.indexOf(c) === -1);
69
+ oldChildren.length = 0;
70
+ oldChildren.push(...elements, ...children);
71
+ component.sortDirty = false;
72
+ }
73
+ }
74
+ componentChanged(changed) {
75
+ if (changed.type === OBSERVER_TYPE.ADD || changed.type === OBSERVER_TYPE.REMOVE) {
76
+ this.add(changed);
77
+ }
78
+ if (changed.type === OBSERVER_TYPE.CHANGE) {
79
+ this.change(changed);
80
+ }
81
+ if (changed.type === OBSERVER_TYPE.REMOVE) {
82
+ this.remove(changed);
83
+ }
84
+ }
85
+ add(changed) {
86
+ if (changed.component.name === 'Render') {
87
+ this.setDirty(changed);
88
+ }
89
+ }
90
+ change(changed) {
91
+ if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {
92
+ this.setDirty(changed);
93
+ }
94
+ }
95
+ remove(changed) {
96
+ if (changed.component.name === 'Render') {
97
+ const container = this.containerManager.getContainer(changed.gameObject.id);
98
+ container.alpha = 1;
99
+ }
100
+ }
101
+ setDirty(changed) {
102
+ const parentRender = changed.gameObject.parent && changed.gameObject.parent.getComponent('Render');
103
+ if (parentRender) {
104
+ parentRender.sortDirty = true;
105
+ }
106
+ }
107
+ };
108
+ Render = __decorate([
109
+ decorators.componentObserver({
110
+ Render: ['zIndex'],
111
+ })
112
+ ], Render);
113
+ var Render_default = Render;
114
+
115
+ export { Render$1 as Render, Render_default as RenderSystem };
116
+ //# sourceMappingURL=plugin-renderer-render.esm.js.map
@@ -0,0 +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 || changed.type === OBSERVER_TYPE.REMOVE) {\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/index.js ADDED
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./dist/plugin-renderer-render.cjs.prod.js');
5
+ } else {
6
+ module.exports = require('./dist/plugin-renderer-render.cjs.js');
7
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@combos-fun/plugin-renderer-render",
3
+ "version": "0.0.1",
4
+ "description": "@combos-fun/plugin-renderer-render",
5
+ "main": "index.js",
6
+ "module": "dist/plugin-renderer-render.esm.js",
7
+ "bundle": "CombosFun.plugin.renderer.render",
8
+ "unpkg": "dist/CombosFun.plugin.renderer.render.min.js",
9
+ "files": [
10
+ "index.js",
11
+ "dist"
12
+ ],
13
+ "types": "dist/plugin-renderer-render.d.ts",
14
+ "keywords": [
15
+ "combos-fun",
16
+ "game"
17
+ ],
18
+ "author": "sun668 <q947692259@gmail.com>",
19
+ "dependencies": {
20
+ "pixi.js": "^8.18.1",
21
+ "@combos-fun/plugin-renderer": "0.0.1",
22
+ "@combos-fun/renderer-adapter": "0.0.1",
23
+ "@combos-fun/inspector-decorator": "0.0.1",
24
+ "@combos-fun/engine": "0.0.1"
25
+ },
26
+ "scripts": {
27
+ "build": "node ../../scripts/build-package.mjs"
28
+ }
29
+ }