@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 +3 -0
- package/dist/plugin-renderer-render.cjs.js +119 -0
- package/dist/plugin-renderer-render.cjs.js.map +1 -0
- package/dist/plugin-renderer-render.cjs.prod.js +1 -0
- package/dist/plugin-renderer-render.d.ts +36 -0
- package/dist/plugin-renderer-render.esm.js +116 -0
- package/dist/plugin-renderer-render.esm.js.map +1 -0
- package/index.js +7 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -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
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
|
+
}
|