@combos-fun/plugin-renderer-img 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-img
2
+
3
+ Internal workspace package (Combos Fun monorepo).
@@ -0,0 +1,112 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var inspectorDecorator = require('@combos-fun/inspector-decorator');
5
+ var engine = require('@combos-fun/engine');
6
+ var pluginRenderer = require('@combos-fun/plugin-renderer');
7
+ var rendererAdapter = require('@combos-fun/renderer-adapter');
8
+ var pixi_js = require('pixi.js');
9
+
10
+ let Img$1 = class Img extends engine.Component {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.resource = '';
14
+ }
15
+ static { this.componentName = 'Img'; }
16
+ init(obj) {
17
+ if (obj && obj.resource) {
18
+ this.resource = obj.resource;
19
+ }
20
+ }
21
+ };
22
+ tslib.__decorate([
23
+ inspectorDecorator.type('string')
24
+ ], Img$1.prototype, "resource", void 0);
25
+
26
+ engine.resource.registerInstance(engine.RESOURCE_TYPE.IMAGE, ({ data = {} }) => {
27
+ const { image } = data;
28
+ if (image) {
29
+ const texture = pixi_js.Texture.from(image);
30
+ return texture;
31
+ }
32
+ return;
33
+ });
34
+ engine.resource.registerDestroy(engine.RESOURCE_TYPE.IMAGE, ({ instance }) => {
35
+ if (instance) {
36
+ instance.destroy(true);
37
+ }
38
+ });
39
+ let Img = class Img extends pluginRenderer.Renderer {
40
+ constructor() {
41
+ super(...arguments);
42
+ this.name = 'Img';
43
+ this.imgs = {};
44
+ }
45
+ static { this.systemName = 'Img'; }
46
+ init() {
47
+ this.renderSystem = this.game.getSystem(pluginRenderer.RendererSystem);
48
+ this.renderSystem.rendererManager.register(this);
49
+ }
50
+ rendererUpdate(gameObject) {
51
+ const { width, height } = gameObject.transform.size;
52
+ if (this.imgs[gameObject.id]) {
53
+ this.imgs[gameObject.id].sprite.width = width;
54
+ this.imgs[gameObject.id].sprite.height = height;
55
+ }
56
+ }
57
+ async componentChanged(changed) {
58
+ if (changed.componentName === 'Img') {
59
+ const component = changed.component;
60
+ if (changed.type === engine.OBSERVER_TYPE.ADD) {
61
+ const sprite = new rendererAdapter.Sprite(null);
62
+ this.imgs[changed.gameObject.id] = sprite;
63
+ this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);
64
+ const asyncId = this.increaseAsyncId(changed.gameObject.id);
65
+ const { instance } = await engine.resource.getResource(component.resource);
66
+ if (!this.validateAsyncId(changed.gameObject.id, asyncId))
67
+ return;
68
+ if (!instance) {
69
+ console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);
70
+ }
71
+ this.imgs[changed.gameObject.id].image = instance;
72
+ }
73
+ else if (changed.type === engine.OBSERVER_TYPE.CHANGE) {
74
+ const asyncId = this.increaseAsyncId(changed.gameObject.id);
75
+ const { instance } = await engine.resource.getResource(component.resource);
76
+ if (!this.validateAsyncId(changed.gameObject.id, asyncId))
77
+ return;
78
+ if (!instance) {
79
+ console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);
80
+ }
81
+ this.imgs[changed.gameObject.id].image = instance;
82
+ }
83
+ else if (changed.type === engine.OBSERVER_TYPE.REMOVE) {
84
+ this.increaseAsyncId(changed.gameObject.id);
85
+ const sprite = this.imgs[changed.gameObject.id];
86
+ if (!sprite)
87
+ return;
88
+ this.containerManager?.getContainer(changed.gameObject.id)?.removeChild(sprite.sprite);
89
+ sprite.sprite.destroy({ children: true });
90
+ delete this.imgs[changed.gameObject.id];
91
+ }
92
+ }
93
+ }
94
+ destroy() {
95
+ for (const key in this.imgs) {
96
+ const sprite = this.imgs[key];
97
+ this.containerManager?.getContainer(parseInt(key))?.removeChild(sprite.sprite);
98
+ sprite.sprite.destroy({ children: true });
99
+ delete this.imgs[key];
100
+ }
101
+ }
102
+ };
103
+ Img = tslib.__decorate([
104
+ engine.decorators.componentObserver({
105
+ Img: [{ prop: ['resource'], deep: false }],
106
+ })
107
+ ], Img);
108
+ var Img_default = Img;
109
+
110
+ exports.Img = Img$1;
111
+ exports.ImgSystem = Img_default;
112
+ //# sourceMappingURL=plugin-renderer-img.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-renderer-img.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { type } from '@combos-fun/inspector-decorator';\nimport { Component } from '@combos-fun/engine';\n\nexport interface ImgParams {\n resource: string;\n}\n\nexport default class Img extends Component<ImgParams> {\n static componentName: string = 'Img';\n @type('string') resource: string = '';\n init(obj?: ImgParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, ({ data = {} }) => {\n const { image } = data;\n if (image) {\n const texture = Texture.from(image);\n return texture;\n }\n return;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (instance) {\n (instance as Texture).destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Img: [{ prop: ['resource'], deep: false }],\n})\nexport default class Img extends Renderer {\n static systemName = 'Img';\n name: string = 'Img';\n imgs: { [propName: number]: Sprite } = {};\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 { width, height } = gameObject.transform.size;\n if (this.imgs[gameObject.id]) {\n this.imgs[gameObject.id].sprite.width = width;\n this.imgs[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Img') {\n const component: ImgComponent = changed.component as ImgComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new Sprite(null);\n this.imgs[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(changed.gameObject.id);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(changed.gameObject.id, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);\n }\n this.imgs[changed.gameObject.id].image = instance;\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(changed.gameObject.id);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(changed.gameObject.id, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);\n }\n this.imgs[changed.gameObject.id].image = instance;\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(changed.gameObject.id);\n const sprite = this.imgs[changed.gameObject.id];\n if (!sprite) return;\n this.containerManager?.getContainer(changed.gameObject.id)?.removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.imgs[changed.gameObject.id];\n }\n }\n }\n destroy(): void {\n for (const key in this.imgs) {\n const sprite = this.imgs[key]\n this.containerManager?.getContainer(parseInt(key))?.removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.imgs[key];\n }\n }\n}\n"],"names":["Component","__decorate","type","Img","resource","RESOURCE_TYPE","Texture","Renderer","RendererSystem","OBSERVER_TYPE","Sprite","decorators"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("tslib"),t=require("@combos-fun/inspector-decorator"),r=require("@combos-fun/engine"),s=require("@combos-fun/plugin-renderer"),i=require("@combos-fun/renderer-adapter"),n=require("pixi.js");let o=class extends r.Component{constructor(){super(...arguments),this.resource=""}static{this.componentName="Img"}init(e){e&&e.resource&&(this.resource=e.resource)}};e.__decorate([t.type("string")],o.prototype,"resource",void 0),r.resource.registerInstance(r.RESOURCE_TYPE.IMAGE,({data:e={}})=>{const{image:t}=e;if(t){return n.Texture.from(t)}}),r.resource.registerDestroy(r.RESOURCE_TYPE.IMAGE,({instance:e})=>{e&&e.destroy(!0)});let c=class extends s.Renderer{constructor(){super(...arguments),this.name="Img",this.imgs={}}static{this.systemName="Img"}init(){this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const{width:t,height:r}=e.transform.size;this.imgs[e.id]&&(this.imgs[e.id].sprite.width=t,this.imgs[e.id].sprite.height=r)}async componentChanged(e){if("Img"===e.componentName){const t=e.component;if(e.type===r.OBSERVER_TYPE.ADD){const s=new i.Sprite(null);this.imgs[e.gameObject.id]=s,this.containerManager.getContainer(e.gameObject.id).addChildAt(s.sprite,0);const n=this.increaseAsyncId(e.gameObject.id),{instance:o}=await r.resource.getResource(t.resource);if(!this.validateAsyncId(e.gameObject.id,n))return;o||console.error(`GameObject:${e.gameObject.name}'s Img resource load error`),this.imgs[e.gameObject.id].image=o}else if(e.type===r.OBSERVER_TYPE.CHANGE){const s=this.increaseAsyncId(e.gameObject.id),{instance:i}=await r.resource.getResource(t.resource);if(!this.validateAsyncId(e.gameObject.id,s))return;i||console.error(`GameObject:${e.gameObject.name}'s Img resource load error`),this.imgs[e.gameObject.id].image=i}else if(e.type===r.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(e.gameObject.id);const t=this.imgs[e.gameObject.id];if(!t)return;this.containerManager?.getContainer(e.gameObject.id)?.removeChild(t.sprite),t.sprite.destroy({children:!0}),delete this.imgs[e.gameObject.id]}}}destroy(){for(const e in this.imgs){const t=this.imgs[e];this.containerManager?.getContainer(parseInt(e))?.removeChild(t.sprite),t.sprite.destroy({children:!0}),delete this.imgs[e]}}};c=e.__decorate([r.decorators.componentObserver({Img:[{prop:["resource"],deep:!1}]})],c);var a=c;exports.Img=o,exports.ImgSystem=a;
@@ -0,0 +1,30 @@
1
+ import { Component, GameObject, ComponentChanged } from '@combos-fun/engine';
2
+ import { Renderer, RendererSystem, RendererManager, ContainerManager } from '@combos-fun/plugin-renderer';
3
+ import { Sprite } from '@combos-fun/renderer-adapter';
4
+
5
+ interface ImgParams {
6
+ resource: string;
7
+ }
8
+ declare class Img$1 extends Component<ImgParams> {
9
+ static componentName: string;
10
+ resource: string;
11
+ init(obj?: ImgParams): void;
12
+ }
13
+
14
+ declare class Img extends Renderer {
15
+ static systemName: string;
16
+ name: string;
17
+ imgs: {
18
+ [propName: number]: Sprite;
19
+ };
20
+ renderSystem: RendererSystem;
21
+ rendererManager: RendererManager;
22
+ containerManager: ContainerManager;
23
+ init(): void;
24
+ rendererUpdate(gameObject: GameObject): void;
25
+ componentChanged(changed: ComponentChanged): Promise<void>;
26
+ destroy(): void;
27
+ }
28
+
29
+ export { Img$1 as Img, Img as ImgSystem };
30
+ export type { ImgParams };
@@ -0,0 +1,109 @@
1
+ import { __decorate } from 'tslib';
2
+ import { type } from '@combos-fun/inspector-decorator';
3
+ import { Component, resource, RESOURCE_TYPE, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
4
+ import { Renderer, RendererSystem } from '@combos-fun/plugin-renderer';
5
+ import { Sprite } from '@combos-fun/renderer-adapter';
6
+ import { Texture } from 'pixi.js';
7
+
8
+ let Img$1 = class Img extends Component {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.resource = '';
12
+ }
13
+ static { this.componentName = 'Img'; }
14
+ init(obj) {
15
+ if (obj && obj.resource) {
16
+ this.resource = obj.resource;
17
+ }
18
+ }
19
+ };
20
+ __decorate([
21
+ type('string')
22
+ ], Img$1.prototype, "resource", void 0);
23
+
24
+ resource.registerInstance(RESOURCE_TYPE.IMAGE, ({ data = {} }) => {
25
+ const { image } = data;
26
+ if (image) {
27
+ const texture = Texture.from(image);
28
+ return texture;
29
+ }
30
+ return;
31
+ });
32
+ resource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {
33
+ if (instance) {
34
+ instance.destroy(true);
35
+ }
36
+ });
37
+ let Img = class Img extends Renderer {
38
+ constructor() {
39
+ super(...arguments);
40
+ this.name = 'Img';
41
+ this.imgs = {};
42
+ }
43
+ static { this.systemName = 'Img'; }
44
+ init() {
45
+ this.renderSystem = this.game.getSystem(RendererSystem);
46
+ this.renderSystem.rendererManager.register(this);
47
+ }
48
+ rendererUpdate(gameObject) {
49
+ const { width, height } = gameObject.transform.size;
50
+ if (this.imgs[gameObject.id]) {
51
+ this.imgs[gameObject.id].sprite.width = width;
52
+ this.imgs[gameObject.id].sprite.height = height;
53
+ }
54
+ }
55
+ async componentChanged(changed) {
56
+ if (changed.componentName === 'Img') {
57
+ const component = changed.component;
58
+ if (changed.type === OBSERVER_TYPE.ADD) {
59
+ const sprite = new Sprite(null);
60
+ this.imgs[changed.gameObject.id] = sprite;
61
+ this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);
62
+ const asyncId = this.increaseAsyncId(changed.gameObject.id);
63
+ const { instance } = await resource.getResource(component.resource);
64
+ if (!this.validateAsyncId(changed.gameObject.id, asyncId))
65
+ return;
66
+ if (!instance) {
67
+ console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);
68
+ }
69
+ this.imgs[changed.gameObject.id].image = instance;
70
+ }
71
+ else if (changed.type === OBSERVER_TYPE.CHANGE) {
72
+ const asyncId = this.increaseAsyncId(changed.gameObject.id);
73
+ const { instance } = await resource.getResource(component.resource);
74
+ if (!this.validateAsyncId(changed.gameObject.id, asyncId))
75
+ return;
76
+ if (!instance) {
77
+ console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);
78
+ }
79
+ this.imgs[changed.gameObject.id].image = instance;
80
+ }
81
+ else if (changed.type === OBSERVER_TYPE.REMOVE) {
82
+ this.increaseAsyncId(changed.gameObject.id);
83
+ const sprite = this.imgs[changed.gameObject.id];
84
+ if (!sprite)
85
+ return;
86
+ this.containerManager?.getContainer(changed.gameObject.id)?.removeChild(sprite.sprite);
87
+ sprite.sprite.destroy({ children: true });
88
+ delete this.imgs[changed.gameObject.id];
89
+ }
90
+ }
91
+ }
92
+ destroy() {
93
+ for (const key in this.imgs) {
94
+ const sprite = this.imgs[key];
95
+ this.containerManager?.getContainer(parseInt(key))?.removeChild(sprite.sprite);
96
+ sprite.sprite.destroy({ children: true });
97
+ delete this.imgs[key];
98
+ }
99
+ }
100
+ };
101
+ Img = __decorate([
102
+ decorators.componentObserver({
103
+ Img: [{ prop: ['resource'], deep: false }],
104
+ })
105
+ ], Img);
106
+ var Img_default = Img;
107
+
108
+ export { Img$1 as Img, Img_default as ImgSystem };
109
+ //# sourceMappingURL=plugin-renderer-img.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-renderer-img.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { type } from '@combos-fun/inspector-decorator';\nimport { Component } from '@combos-fun/engine';\n\nexport interface ImgParams {\n resource: string;\n}\n\nexport default class Img extends Component<ImgParams> {\n static componentName: string = 'Img';\n @type('string') resource: string = '';\n init(obj?: ImgParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, ({ data = {} }) => {\n const { image } = data;\n if (image) {\n const texture = Texture.from(image);\n return texture;\n }\n return;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (instance) {\n (instance as Texture).destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Img: [{ prop: ['resource'], deep: false }],\n})\nexport default class Img extends Renderer {\n static systemName = 'Img';\n name: string = 'Img';\n imgs: { [propName: number]: Sprite } = {};\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 { width, height } = gameObject.transform.size;\n if (this.imgs[gameObject.id]) {\n this.imgs[gameObject.id].sprite.width = width;\n this.imgs[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Img') {\n const component: ImgComponent = changed.component as ImgComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new Sprite(null);\n this.imgs[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(changed.gameObject.id);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(changed.gameObject.id, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);\n }\n this.imgs[changed.gameObject.id].image = instance;\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(changed.gameObject.id);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(changed.gameObject.id, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Img resource load error`);\n }\n this.imgs[changed.gameObject.id].image = instance;\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(changed.gameObject.id);\n const sprite = this.imgs[changed.gameObject.id];\n if (!sprite) return;\n this.containerManager?.getContainer(changed.gameObject.id)?.removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.imgs[changed.gameObject.id];\n }\n }\n }\n destroy(): void {\n for (const key in this.imgs) {\n const sprite = this.imgs[key]\n this.containerManager?.getContainer(parseInt(key))?.removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.imgs[key];\n }\n }\n}\n"],"names":["Img"],"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-img.cjs.prod.js');
5
+ } else {
6
+ module.exports = require('./dist/plugin-renderer-img.cjs.js');
7
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@combos-fun/plugin-renderer-img",
3
+ "version": "0.0.1",
4
+ "description": "@combos-fun/plugin-renderer-img",
5
+ "main": "index.js",
6
+ "module": "dist/plugin-renderer-img.esm.js",
7
+ "bundle": "CombosFun.plugin.renderer.img",
8
+ "unpkg": "dist/CombosFun.plugin.renderer.img.min.js",
9
+ "files": [
10
+ "index.js",
11
+ "dist"
12
+ ],
13
+ "types": "dist/plugin-renderer-img.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/inspector-decorator": "0.0.1",
23
+ "@combos-fun/renderer-adapter": "0.0.1",
24
+ "@combos-fun/engine": "0.0.1"
25
+ },
26
+ "scripts": {
27
+ "build": "node ../../scripts/build-package.mjs"
28
+ }
29
+ }