@combos-fun/plugin-renderer-img 0.1.13 → 0.1.14-beta.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.
@@ -64,21 +64,18 @@ function attachTexture(name, texture) {
64
64
  sprite._image = texture;
65
65
  }
66
66
  }
67
- engine.resource.registerInstance(engine.RESOURCE_TYPE.IMAGE, ({ name, data = {} }) => {
68
- const { image } = data;
69
- if (image) {
70
- const texture = pixi_js.Texture.from(image);
71
- attachTexture(name, texture);
72
- return texture;
73
- }
74
- return;
67
+ engine.resource.registerInstance(engine.RESOURCE_TYPE.IMAGE, async (res) => {
68
+ const texture = await pluginRenderer.createImageTexture(res);
69
+ if (texture)
70
+ attachTexture(res.name, texture);
71
+ return texture;
75
72
  });
76
73
  engine.resource.registerDestroy(engine.RESOURCE_TYPE.IMAGE, ({ instance }) => {
77
74
  if (!instance || instance === pixi_js.Texture.EMPTY)
78
75
  return;
79
76
  const texture = instance;
80
77
  detachTexture(texture);
81
- texture.destroy(true);
78
+ pluginRenderer.releaseImageTexture(texture);
82
79
  });
83
80
  let Img = class Img extends pluginRenderer.Renderer {
84
81
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-img.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Field } 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\n @Field({\n type: 'string',\n group: 'Img',\n label: 'resource',\n description: 'Image resource id from the asset registry.',\n editor: 'text',\n })\n resource: string = '';\n\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, Transform2D } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nlet imgSystem: Img | null = null;\n\nfunction holdsTexture(sprite: Sprite, texture: Texture) {\n return sprite.image === texture || sprite.sprite.texture === texture;\n}\n\nfunction detachTexture(texture: Texture) {\n if (!imgSystem || texture === Texture.EMPTY) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n if (!holdsTexture(sprite, texture)) continue;\n // Assign directly. The adapter setter's HTMLImageElement branch calls destroy(false).\n sprite.sprite.texture = Texture.EMPTY;\n sprite._image = Texture.EMPTY;\n }\n}\n\nfunction attachTexture(name: string, texture: Texture) {\n if (!imgSystem || !name || texture === Texture.EMPTY) return;\n const gameObjects = imgSystem.game?.gameObjects;\n if (!gameObjects) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n const gameObject = gameObjects.find((item) => item.id === parseInt(key));\n if (gameObject?.getComponent(ImgComponent)?.resource !== name) continue;\n sprite.sprite.texture = texture;\n sprite._image = texture;\n }\n}\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, ({ name, data = {} }) => {\n const { image } = data;\n if (image) {\n const texture = Texture.from(image);\n attachTexture(name, texture);\n return texture;\n }\n return;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (!instance || instance === Texture.EMPTY) return;\n const texture = instance as Texture;\n detachTexture(texture);\n texture.destroy(true);\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 imgSystem = this;\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.getComponent(Transform2D)?.size ?? { width: 0, height: 0 };\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 if (imgSystem === this) {\n imgSystem = null;\n }\n }\n}\n"],"names":["Component","__decorate","Field","Img","Texture","ImgComponent","resource","RESOURCE_TYPE","Renderer","RendererSystem","Transform2D","OBSERVER_TYPE","Sprite","decorators"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-img.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Field } 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\n @Field({\n type: 'string',\n group: 'Img',\n label: 'resource',\n description: 'Image resource id from the asset registry.',\n editor: 'text',\n })\n resource: string = '';\n\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, Transform2D, createImageTexture, releaseImageTexture } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nlet imgSystem: Img | null = null;\n\nfunction holdsTexture(sprite: Sprite, texture: Texture) {\n return sprite.image === texture || sprite.sprite.texture === texture;\n}\n\nfunction detachTexture(texture: Texture) {\n if (!imgSystem || texture === Texture.EMPTY) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n if (!holdsTexture(sprite, texture)) continue;\n // Assign directly. The adapter setter's HTMLImageElement branch calls destroy(false).\n sprite.sprite.texture = Texture.EMPTY;\n sprite._image = Texture.EMPTY;\n }\n}\n\nfunction attachTexture(name: string, texture: Texture) {\n if (!imgSystem || !name || texture === Texture.EMPTY) return;\n const gameObjects = imgSystem.game?.gameObjects;\n if (!gameObjects) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n const gameObject = gameObjects.find((item) => item.id === parseInt(key));\n if (gameObject?.getComponent(ImgComponent)?.resource !== name) continue;\n sprite.sprite.texture = texture;\n sprite._image = texture;\n }\n}\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, async (res) => {\n const texture = await createImageTexture(res);\n if (texture) attachTexture(res.name, texture);\n return texture;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (!instance || instance === Texture.EMPTY) return;\n const texture = instance as Texture;\n detachTexture(texture);\n releaseImageTexture(texture);\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 imgSystem = this;\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.getComponent(Transform2D)?.size ?? { width: 0, height: 0 };\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 if (imgSystem === this) {\n imgSystem = null;\n }\n }\n}\n"],"names":["Component","__decorate","Field","Img","Texture","ImgComponent","resource","RESOURCE_TYPE","createImageTexture","releaseImageTexture","Renderer","RendererSystem","Transform2D","OBSERVER_TYPE","Sprite","decorators"],"mappings":"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"}
@@ -1 +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.Field({type:"string",group:"Img",label:"resource",description:"Image resource id from the asset registry.",editor:"text"})],o.prototype,"resource",void 0);let c=null;function a(e,t){return e.image===t||e.sprite.texture===t}r.resource.registerInstance(r.RESOURCE_TYPE.IMAGE,({name:e,data:t={}})=>{const{image:r}=t;if(r){const t=n.Texture.from(r);return function(e,t){if(!c||!e||t===n.Texture.EMPTY)return;const r=c.game?.gameObjects;if(r)for(const s in c.imgs){const i=c.imgs[s];if(!i?.sprite||i.sprite.destroyed)continue;const n=r.find(e=>e.id===parseInt(s));n?.getComponent(o)?.resource===e&&(i.sprite.texture=t,i._image=t)}}(e,t),t}}),r.resource.registerDestroy(r.RESOURCE_TYPE.IMAGE,({instance:e})=>{if(!e||e===n.Texture.EMPTY)return;const t=e;!function(e){if(c&&e!==n.Texture.EMPTY)for(const t in c.imgs){const r=c.imgs[t];r?.sprite&&!r.sprite.destroyed&&a(r,e)&&(r.sprite.texture=n.Texture.EMPTY,r._image=n.Texture.EMPTY)}}(t),t.destroy(!0)});let m=class extends s.Renderer{constructor(){super(...arguments),this.name="Img",this.imgs={}}static{this.systemName="Img"}init(){c=this,this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const{width:t,height:r}=e.getComponent(s.Transform2D)?.size??{width:0,height:0};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===this&&(c=null)}};m=e.__decorate([r.decorators.componentObserver({Img:[{prop:["resource"],deep:!1}]})],m);var g=m;exports.Img=o,exports.ImgSystem=g;
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.Field({type:"string",group:"Img",label:"resource",description:"Image resource id from the asset registry.",editor:"text"})],o.prototype,"resource",void 0);let c=null;function a(e,t){return e.image===t||e.sprite.texture===t}r.resource.registerInstance(r.RESOURCE_TYPE.IMAGE,async e=>{const t=await s.createImageTexture(e);return t&&function(e,t){if(!c||!e||t===n.Texture.EMPTY)return;const r=c.game?.gameObjects;if(r)for(const s in c.imgs){const i=c.imgs[s];if(!i?.sprite||i.sprite.destroyed)continue;const n=r.find(e=>e.id===parseInt(s));n?.getComponent(o)?.resource===e&&(i.sprite.texture=t,i._image=t)}}(e.name,t),t}),r.resource.registerDestroy(r.RESOURCE_TYPE.IMAGE,({instance:e})=>{if(!e||e===n.Texture.EMPTY)return;const t=e;!function(e){if(c&&e!==n.Texture.EMPTY)for(const t in c.imgs){const r=c.imgs[t];r?.sprite&&!r.sprite.destroyed&&a(r,e)&&(r.sprite.texture=n.Texture.EMPTY,r._image=n.Texture.EMPTY)}}(t),s.releaseImageTexture(t)});let m=class extends s.Renderer{constructor(){super(...arguments),this.name="Img",this.imgs={}}static{this.systemName="Img"}init(){c=this,this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const{width:t,height:r}=e.getComponent(s.Transform2D)?.size??{width:0,height:0};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===this&&(c=null)}};m=e.__decorate([r.decorators.componentObserver({Img:[{prop:["resource"],deep:!1}]})],m);var g=m;exports.Img=o,exports.ImgSystem=g;
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { Field } from '@combos-fun/inspector-decorator';
3
3
  import { Component, resource, RESOURCE_TYPE, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
4
- import { Renderer, RendererSystem, Transform2D } from '@combos-fun/plugin-renderer';
4
+ import { createImageTexture, releaseImageTexture, Renderer, RendererSystem, Transform2D } from '@combos-fun/plugin-renderer';
5
5
  import { Sprite } from '@combos-fun/renderer-adapter';
6
6
  import { Texture } from 'pixi.js';
7
7
 
@@ -62,21 +62,18 @@ function attachTexture(name, texture) {
62
62
  sprite._image = texture;
63
63
  }
64
64
  }
65
- resource.registerInstance(RESOURCE_TYPE.IMAGE, ({ name, data = {} }) => {
66
- const { image } = data;
67
- if (image) {
68
- const texture = Texture.from(image);
69
- attachTexture(name, texture);
70
- return texture;
71
- }
72
- return;
65
+ resource.registerInstance(RESOURCE_TYPE.IMAGE, async (res) => {
66
+ const texture = await createImageTexture(res);
67
+ if (texture)
68
+ attachTexture(res.name, texture);
69
+ return texture;
73
70
  });
74
71
  resource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {
75
72
  if (!instance || instance === Texture.EMPTY)
76
73
  return;
77
74
  const texture = instance;
78
75
  detachTexture(texture);
79
- texture.destroy(true);
76
+ releaseImageTexture(texture);
80
77
  });
81
78
  let Img = class Img extends Renderer {
82
79
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-img.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Field } 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\n @Field({\n type: 'string',\n group: 'Img',\n label: 'resource',\n description: 'Image resource id from the asset registry.',\n editor: 'text',\n })\n resource: string = '';\n\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, Transform2D } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nlet imgSystem: Img | null = null;\n\nfunction holdsTexture(sprite: Sprite, texture: Texture) {\n return sprite.image === texture || sprite.sprite.texture === texture;\n}\n\nfunction detachTexture(texture: Texture) {\n if (!imgSystem || texture === Texture.EMPTY) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n if (!holdsTexture(sprite, texture)) continue;\n // Assign directly. The adapter setter's HTMLImageElement branch calls destroy(false).\n sprite.sprite.texture = Texture.EMPTY;\n sprite._image = Texture.EMPTY;\n }\n}\n\nfunction attachTexture(name: string, texture: Texture) {\n if (!imgSystem || !name || texture === Texture.EMPTY) return;\n const gameObjects = imgSystem.game?.gameObjects;\n if (!gameObjects) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n const gameObject = gameObjects.find((item) => item.id === parseInt(key));\n if (gameObject?.getComponent(ImgComponent)?.resource !== name) continue;\n sprite.sprite.texture = texture;\n sprite._image = texture;\n }\n}\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, ({ name, data = {} }) => {\n const { image } = data;\n if (image) {\n const texture = Texture.from(image);\n attachTexture(name, texture);\n return texture;\n }\n return;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (!instance || instance === Texture.EMPTY) return;\n const texture = instance as Texture;\n detachTexture(texture);\n texture.destroy(true);\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 imgSystem = this;\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.getComponent(Transform2D)?.size ?? { width: 0, height: 0 };\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 if (imgSystem === this) {\n imgSystem = null;\n }\n }\n}\n"],"names":["Img","ImgComponent"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-img.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Field } 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\n @Field({\n type: 'string',\n group: 'Img',\n label: 'resource',\n description: 'Image resource id from the asset registry.',\n editor: 'text',\n })\n resource: string = '';\n\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, Transform2D, createImageTexture, releaseImageTexture } from '@combos-fun/plugin-renderer';\nimport { Sprite } from '@combos-fun/renderer-adapter';\nimport { Texture } from 'pixi.js';\nimport ImgComponent from './component';\n\nlet imgSystem: Img | null = null;\n\nfunction holdsTexture(sprite: Sprite, texture: Texture) {\n return sprite.image === texture || sprite.sprite.texture === texture;\n}\n\nfunction detachTexture(texture: Texture) {\n if (!imgSystem || texture === Texture.EMPTY) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n if (!holdsTexture(sprite, texture)) continue;\n // Assign directly. The adapter setter's HTMLImageElement branch calls destroy(false).\n sprite.sprite.texture = Texture.EMPTY;\n sprite._image = Texture.EMPTY;\n }\n}\n\nfunction attachTexture(name: string, texture: Texture) {\n if (!imgSystem || !name || texture === Texture.EMPTY) return;\n const gameObjects = imgSystem.game?.gameObjects;\n if (!gameObjects) return;\n for (const key in imgSystem.imgs) {\n const sprite = imgSystem.imgs[key];\n if (!sprite?.sprite || sprite.sprite.destroyed) continue;\n const gameObject = gameObjects.find((item) => item.id === parseInt(key));\n if (gameObject?.getComponent(ImgComponent)?.resource !== name) continue;\n sprite.sprite.texture = texture;\n sprite._image = texture;\n }\n}\n\nresource.registerInstance(RESOURCE_TYPE.IMAGE, async (res) => {\n const texture = await createImageTexture(res);\n if (texture) attachTexture(res.name, texture);\n return texture;\n});\nresource.registerDestroy(RESOURCE_TYPE.IMAGE, ({ instance }) => {\n if (!instance || instance === Texture.EMPTY) return;\n const texture = instance as Texture;\n detachTexture(texture);\n releaseImageTexture(texture);\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 imgSystem = this;\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.getComponent(Transform2D)?.size ?? { width: 0, height: 0 };\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 if (imgSystem === this) {\n imgSystem = null;\n }\n }\n}\n"],"names":["Img","ImgComponent"],"mappings":";;;;;;;YAOc,MAAO,GAAI,SAAQ,SAAoB,CAAA;AAArD,IAAA,WAAA,GAAA;;QAUE,IAAA,CAAA,QAAQ,GAAW,EAAE;IAOvB;aAhBS,IAAA,CAAA,aAAa,GAAW,KAAX,CAAiB;AAWrC,IAAA,IAAI,CAAC,GAAe,EAAA;AAClB,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;QAC9B;IACF;;AANA,UAAA,CAAA;AAPC,IAAA,KAAK,CAAC;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,WAAW,EAAE,4CAA4C;AACzD,QAAA,MAAM,EAAE,MAAM;KACf;AACqB,CAAA,EAAAA,KAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;;ACXxB,IAAI,SAAS,GAAe,IAAI;AAEhC,SAAS,YAAY,CAAC,MAAc,EAAE,OAAgB,EAAA;AACpD,IAAA,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO;AACtE;AAEA,SAAS,aAAa,CAAC,OAAgB,EAAA;AACrC,IAAA,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK;QAAE;AAC7C,IAAA,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YAAE;AAChD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;YAAE;;QAEpC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK;AACrC,QAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;IAC/B;AACF;AAEA,SAAS,aAAa,CAAC,IAAY,EAAE,OAAgB,EAAA;IACnD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK;QAAE;AACtD,IAAA,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW;AAC/C,IAAA,IAAI,CAAC,WAAW;QAAE;AAClB,IAAA,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS;YAAE;QAChD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,YAAY,CAACC,KAAY,CAAC,EAAE,QAAQ,KAAK,IAAI;YAAE;AAC/D,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,OAAO;IACzB;AACF;AAEA,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAI;AAC3D,IAAA,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC;AAC7C,IAAA,IAAI,OAAO;AAAE,QAAA,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AAC7C,IAAA,OAAO,OAAO;AAChB,CAAC,CAAC;AACF,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC7D,IAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC,KAAK;QAAE;IAC7C,MAAM,OAAO,GAAG,QAAmB;IACnC,aAAa,CAAC,OAAO,CAAC;IACtB,mBAAmB,CAAC,OAAO,CAAC;AAC9B,CAAC,CAAC;AAKa,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,QAAQ,CAAA;AAA1B,IAAA,WAAA,GAAA;;QAEb,IAAA,CAAA,IAAI,GAAW,KAAK;QACpB,IAAA,CAAA,IAAI,GAAmC,EAAE;IA2D3C;aA7DS,IAAA,CAAA,UAAU,GAAG,KAAH,CAAS;IAM1B,IAAI,GAAA;QACF,SAAS,GAAG,IAAI;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAmB;QACzE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClD;AACA,IAAA,cAAc,CAAC,UAAsB,EAAA;QACnC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/F,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;AAC7C,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;QACjD;IACF;IACA,MAAM,gBAAgB,CAAC,OAAyB,EAAA;AAC9C,QAAA,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE;AACnC,YAAA,MAAM,SAAS,GAAiB,OAAO,CAAC,SAAyB;YACjE,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE;AACtC,gBAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM;gBACzC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACtF,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3D,gBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnE,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;oBAAE;gBAC3D,IAAI,CAAC,QAAQ,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,CAAA,WAAA,EAAc,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA,0BAAA,CAA4B,CAAC;gBAClF;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ;YACnD;iBAAO,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE;AAChD,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3D,gBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnE,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;oBAAE;gBAC3D,IAAI,CAAC,QAAQ,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,CAAA,WAAA,EAAc,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA,0BAAA,CAA4B,CAAC;gBAClF;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ;YACnD;iBAAO,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE;gBAChD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3C,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/C,gBAAA,IAAI,CAAC,MAAM;oBAAE;AACb,gBAAA,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;gBACtF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC;QACF;IACF;IACA,OAAO,GAAA;AACL,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzC,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB;AACA,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,SAAS,GAAG,IAAI;QAClB;IACF;;AA7DmB,GAAG,GAAA,UAAA,CAAA;IAHvB,UAAU,CAAC,iBAAiB,CAAC;AAC5B,QAAA,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC3C;AACoB,CAAA,EAAA,GAAG,CA8DvB;kBA9DoB,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer-img",
3
- "version": "0.1.13",
3
+ "version": "0.1.14-beta.1",
4
4
  "description": "Static image rendering",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-img.esm.js",
@@ -35,10 +35,10 @@
35
35
  "author": "sun668 <q947692259@gmail.com>",
36
36
  "dependencies": {
37
37
  "pixi.js": "^8.18.1",
38
- "@combos-fun/plugin-renderer": "0.1.13",
39
- "@combos-fun/renderer-adapter": "0.1.13",
40
- "@combos-fun/inspector-decorator": "0.1.13",
41
- "@combos-fun/engine": "0.1.13"
38
+ "@combos-fun/plugin-renderer": "0.1.14-beta.1",
39
+ "@combos-fun/renderer-adapter": "0.1.14-beta.1",
40
+ "@combos-fun/inspector-decorator": "0.1.14-beta.1",
41
+ "@combos-fun/engine": "0.1.14-beta.1"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "node ../../scripts/build-package.mjs"