@combos-fun/plugin-renderer-sprite 0.0.37 → 0.0.39

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/agent-skill.md CHANGED
@@ -12,7 +12,7 @@ Read when you have a packed sprite atlas and need to draw a single named frame (
12
12
  import { Sprite, SpriteSystem, type SpriteParams } from '@combos-fun/plugin-renderer-sprite';
13
13
  ```
14
14
 
15
- `componentName = 'Sprite'`, `systemName = 'SpriteSystem'`.
15
+ `componentName = 'Sprite'`, `systemName = 'Sprite'` (class is `SpriteSystem` — use `game.getSystem(SpriteSystem)`, not the string).
16
16
 
17
17
  ### `SpriteParams`
18
18
 
@@ -30,9 +30,15 @@ Internal cache key: `resource + '_s|r|c_' + spriteName`.
30
30
  `RendererSystem` then `SpriteSystem`. Resource must be registered with both `image` and `json` URLs:
31
31
 
32
32
  ```ts
33
+ import { RESOURCE_TYPE, resource } from '@combos-fun/engine';
34
+
33
35
  resource.addResource([{
34
36
  name: 'icons',
35
- src: { image: 'icons.png', json: 'icons.json' },
37
+ type: RESOURCE_TYPE.SPRITE,
38
+ src: {
39
+ image: { type: 'png', url: 'https://cdn.example/icons.png' },
40
+ json: { type: 'json', url: 'https://cdn.example/icons.json' },
41
+ },
36
42
  preload: true,
37
43
  }]);
38
44
  ```
@@ -48,8 +54,7 @@ resource.addResource([{
48
54
  ## Minimal example
49
55
 
50
56
  ```ts
51
- const icon = new GameObject('coin-icon');
52
- icon.addComponent(new Transform({ position: { x: 50, y: 50 } }));
57
+ const icon = new GameObject('coin-icon', { position: { x: 50, y: 50 }, size: { width: 64, height: 64 } });
53
58
  icon.addComponent(new Sprite({ resource: 'icons', spriteName: 'coin' }));
54
59
  ```
55
60
 
@@ -42,7 +42,7 @@ tslib.__decorate([
42
42
 
43
43
  const resourceKeySplit = pluginRenderer.RESOURCE_KEY_SPLIT;
44
44
  engine.resource.registerInstance(engine.RESOURCE_TYPE.SPRITE, async ({ name, data }) => {
45
- const textureObj = data.json;
45
+ const textureObj = engine.normalizeSpritesheetData(data.json);
46
46
  const texture = pixi_js.Texture.from(data.image);
47
47
  const frames = textureObj.frames || {};
48
48
  const animations = textureObj.animations || {};
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-sprite.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface SpriteParams {\n resource: string;\n spriteName: string;\n}\n\nexport default class Sprite extends Component<SpriteParams> {\n static componentName: string = 'Sprite';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'resource',\n description: 'Atlas or sprite sheet resource id.',\n editor: 'text',\n })\n resource: string = '';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'spriteName',\n description: 'Frame name inside the atlas resource.',\n editor: 'text',\n })\n spriteName: string = '';\n\n init(obj?: SpriteParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n this.spriteName = obj.spriteName;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\n\nimport SpriteComponent from './component';\nimport { Sprite as SpriteEngine } from '@combos-fun/renderer-adapter';\nimport { Spritesheet, Texture } from 'pixi.js';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nresource.registerInstance(RESOURCE_TYPE.SPRITE, async ({ name, data }) => {\n const textureObj = data.json;\n const texture = Texture.from(data.image);\n const frames = textureObj.frames || {};\n const animations = textureObj.animations || {};\n const newFrames = {};\n for (const key in frames) {\n const newKey = name + resourceKeySplit + key;\n newFrames[newKey] = frames[key];\n }\n for (const key in animations) {\n const spriteList = [];\n if (animations[key] && animations[key].length >= 0) {\n for (const spriteName of animations[key]) {\n const newSpriteName = name + resourceKeySplit + spriteName;\n spriteList.push(newSpriteName);\n }\n }\n animations[key] = spriteList;\n }\n textureObj.frames = newFrames;\n const spriteSheet = new Spritesheet(texture, textureObj);\n const textures = await spriteSheet.parse();\n return textures;\n});\n\nresource.registerDestroy(RESOURCE_TYPE.SPRITE, ({ instance }) => {\n if (!instance) return;\n for (const key in instance) {\n instance[key].destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Sprite: ['spriteName'],\n})\nexport default class Sprite extends Renderer {\n static systemName = 'Sprite';\n name: string = 'Sprite';\n sprites: { [propName: number]: SpriteEngine } = {};\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.sprites[gameObject.id]) {\n this.sprites[gameObject.id].sprite.width = width;\n this.sprites[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Sprite') {\n const gameObjectId = changed.gameObject.id;\n const component: SpriteComponent = changed.component as SpriteComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new SpriteEngine(null);\n this.sprites[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n this.sprites[changed.gameObject.id].image =\n instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(gameObjectId);\n const sprite = this.sprites[changed.gameObject.id];\n this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.sprites[changed.gameObject.id];\n }\n }\n }\n}\n"],"names":["Component","__decorate","Field","Sprite","RESOURCE_KEY_SPLIT","resource","RESOURCE_TYPE","Texture","Spritesheet","Renderer","RendererSystem","OBSERVER_TYPE","SpriteEngine","decorators"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-sprite.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface SpriteParams {\n resource: string;\n spriteName: string;\n}\n\nexport default class Sprite extends Component<SpriteParams> {\n static componentName: string = 'Sprite';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'resource',\n description: 'Atlas or sprite sheet resource id.',\n editor: 'text',\n })\n resource: string = '';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'spriteName',\n description: 'Frame name inside the atlas resource.',\n editor: 'text',\n })\n spriteName: string = '';\n\n init(obj?: SpriteParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n this.spriteName = obj.spriteName;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE, normalizeSpritesheetData } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\n\nimport SpriteComponent from './component';\nimport { Sprite as SpriteEngine } from '@combos-fun/renderer-adapter';\nimport { Spritesheet, Texture } from 'pixi.js';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nresource.registerInstance(RESOURCE_TYPE.SPRITE, async ({ name, data }) => {\n const textureObj = normalizeSpritesheetData(data.json);\n const texture = Texture.from(data.image);\n const frames = textureObj.frames || {};\n const animations = textureObj.animations || {};\n const newFrames = {};\n for (const key in frames) {\n const newKey = name + resourceKeySplit + key;\n newFrames[newKey] = frames[key];\n }\n for (const key in animations) {\n const spriteList = [];\n if (animations[key] && animations[key].length >= 0) {\n for (const spriteName of animations[key]) {\n const newSpriteName = name + resourceKeySplit + spriteName;\n spriteList.push(newSpriteName);\n }\n }\n animations[key] = spriteList;\n }\n textureObj.frames = newFrames;\n const spriteSheet = new Spritesheet(texture, textureObj);\n const textures = await spriteSheet.parse();\n return textures;\n});\n\nresource.registerDestroy(RESOURCE_TYPE.SPRITE, ({ instance }) => {\n if (!instance) return;\n for (const key in instance) {\n instance[key].destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Sprite: ['spriteName'],\n})\nexport default class Sprite extends Renderer {\n static systemName = 'Sprite';\n name: string = 'Sprite';\n sprites: { [propName: number]: SpriteEngine } = {};\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.sprites[gameObject.id]) {\n this.sprites[gameObject.id].sprite.width = width;\n this.sprites[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Sprite') {\n const gameObjectId = changed.gameObject.id;\n const component: SpriteComponent = changed.component as SpriteComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new SpriteEngine(null);\n this.sprites[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n this.sprites[changed.gameObject.id].image =\n instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(gameObjectId);\n const sprite = this.sprites[changed.gameObject.id];\n this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.sprites[changed.gameObject.id];\n }\n }\n }\n}\n"],"names":["Component","__decorate","Field","Sprite","RESOURCE_KEY_SPLIT","resource","RESOURCE_TYPE","normalizeSpritesheetData","Texture","Spritesheet","Renderer","RendererSystem","OBSERVER_TYPE","SpriteEngine","decorators"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";var e=require("tslib"),r=require("@combos-fun/engine"),t=require("@combos-fun/inspector-decorator"),s=require("@combos-fun/plugin-renderer"),i=require("@combos-fun/renderer-adapter"),o=require("pixi.js");let n=class extends r.Component{constructor(){super(...arguments),this.resource="",this.spriteName=""}static{this.componentName="Sprite"}init(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)}};e.__decorate([t.Field({type:"string",group:"Sprite",label:"resource",description:"Atlas or sprite sheet resource id.",editor:"text"})],n.prototype,"resource",void 0),e.__decorate([t.Field({type:"string",group:"Sprite",label:"spriteName",description:"Frame name inside the atlas resource.",editor:"text"})],n.prototype,"spriteName",void 0);const a=s.RESOURCE_KEY_SPLIT;r.resource.registerInstance(r.RESOURCE_TYPE.SPRITE,async({name:e,data:r})=>{const t=r.json,s=o.Texture.from(r.image),i=t.frames||{},n=t.animations||{},c={};for(const r in i){c[e+a+r]=i[r]}for(const r in n){const t=[];if(n[r]&&n[r].length>=0)for(const s of n[r]){const r=e+a+s;t.push(r)}n[r]=t}t.frames=c;const p=new o.Spritesheet(s,t);return await p.parse()}),r.resource.registerDestroy(r.RESOURCE_TYPE.SPRITE,({instance:e})=>{if(e)for(const r in e)e[r].destroy(!0)});let c=class extends s.Renderer{constructor(){super(...arguments),this.name="Sprite",this.sprites={}}static{this.systemName="Sprite"}init(){this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const{width:r,height:t}=e.transform.size;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=t)}async componentChanged(e){if("Sprite"===e.componentName){const t=e.gameObject.id,s=e.component;if(e.type===r.OBSERVER_TYPE.ADD){const o=new i.Sprite(null);this.sprites[e.gameObject.id]=o,this.containerManager.getContainer(e.gameObject.id).addChildAt(o.sprite,0);const n=this.increaseAsyncId(t),{instance:c}=await r.resource.getResource(s.resource);if(!this.validateAsyncId(t,n))return;if(!c)return void console.error(`GameObject:${e.gameObject.name}'s Sprite resource load error`);o.image=c[s.resource+a+s.spriteName]}else if(e.type===r.OBSERVER_TYPE.CHANGE){const i=this.increaseAsyncId(t),{instance:o}=await r.resource.getResource(s.resource);if(!this.validateAsyncId(t,i))return;if(!o)return void console.error(`GameObject:${e.gameObject.name}'s Sprite resource load error`);this.sprites[e.gameObject.id].image=o[s.resource+a+s.spriteName]}else if(e.type===r.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(t);const r=this.sprites[e.gameObject.id];this.containerManager.getContainer(e.gameObject.id).removeChild(r.sprite),r.sprite.destroy({children:!0}),delete this.sprites[e.gameObject.id]}}}};c=e.__decorate([r.decorators.componentObserver({Sprite:["spriteName"]})],c);var p=c;exports.Sprite=n,exports.SpriteSystem=p;
1
+ "use strict";var e=require("tslib"),r=require("@combos-fun/engine"),t=require("@combos-fun/inspector-decorator"),s=require("@combos-fun/plugin-renderer"),i=require("@combos-fun/renderer-adapter"),o=require("pixi.js");let n=class extends r.Component{constructor(){super(...arguments),this.resource="",this.spriteName=""}static{this.componentName="Sprite"}init(e){e&&e.resource&&(this.resource=e.resource,this.spriteName=e.spriteName)}};e.__decorate([t.Field({type:"string",group:"Sprite",label:"resource",description:"Atlas or sprite sheet resource id.",editor:"text"})],n.prototype,"resource",void 0),e.__decorate([t.Field({type:"string",group:"Sprite",label:"spriteName",description:"Frame name inside the atlas resource.",editor:"text"})],n.prototype,"spriteName",void 0);const a=s.RESOURCE_KEY_SPLIT;r.resource.registerInstance(r.RESOURCE_TYPE.SPRITE,async({name:e,data:t})=>{const s=r.normalizeSpritesheetData(t.json),i=o.Texture.from(t.image),n=s.frames||{},c=s.animations||{},p={};for(const r in n){p[e+a+r]=n[r]}for(const r in c){const t=[];if(c[r]&&c[r].length>=0)for(const s of c[r]){const r=e+a+s;t.push(r)}c[r]=t}s.frames=p;const d=new o.Spritesheet(i,s);return await d.parse()}),r.resource.registerDestroy(r.RESOURCE_TYPE.SPRITE,({instance:e})=>{if(e)for(const r in e)e[r].destroy(!0)});let c=class extends s.Renderer{constructor(){super(...arguments),this.name="Sprite",this.sprites={}}static{this.systemName="Sprite"}init(){this.renderSystem=this.game.getSystem(s.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const{width:r,height:t}=e.transform.size;this.sprites[e.id]&&(this.sprites[e.id].sprite.width=r,this.sprites[e.id].sprite.height=t)}async componentChanged(e){if("Sprite"===e.componentName){const t=e.gameObject.id,s=e.component;if(e.type===r.OBSERVER_TYPE.ADD){const o=new i.Sprite(null);this.sprites[e.gameObject.id]=o,this.containerManager.getContainer(e.gameObject.id).addChildAt(o.sprite,0);const n=this.increaseAsyncId(t),{instance:c}=await r.resource.getResource(s.resource);if(!this.validateAsyncId(t,n))return;if(!c)return void console.error(`GameObject:${e.gameObject.name}'s Sprite resource load error`);o.image=c[s.resource+a+s.spriteName]}else if(e.type===r.OBSERVER_TYPE.CHANGE){const i=this.increaseAsyncId(t),{instance:o}=await r.resource.getResource(s.resource);if(!this.validateAsyncId(t,i))return;if(!o)return void console.error(`GameObject:${e.gameObject.name}'s Sprite resource load error`);this.sprites[e.gameObject.id].image=o[s.resource+a+s.spriteName]}else if(e.type===r.OBSERVER_TYPE.REMOVE){this.increaseAsyncId(t);const r=this.sprites[e.gameObject.id];this.containerManager.getContainer(e.gameObject.id).removeChild(r.sprite),r.sprite.destroy({children:!0}),delete this.sprites[e.gameObject.id]}}}};c=e.__decorate([r.decorators.componentObserver({Sprite:["spriteName"]})],c);var p=c;exports.Sprite=n,exports.SpriteSystem=p;
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from 'tslib';
2
- import { Component, resource, RESOURCE_TYPE, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
2
+ import { Component, resource, RESOURCE_TYPE, normalizeSpritesheetData, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
3
3
  import { Field } from '@combos-fun/inspector-decorator';
4
4
  import { Renderer, RendererSystem, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';
5
5
  import { Sprite as Sprite$2 } from '@combos-fun/renderer-adapter';
@@ -40,7 +40,7 @@ __decorate([
40
40
 
41
41
  const resourceKeySplit = RESOURCE_KEY_SPLIT;
42
42
  resource.registerInstance(RESOURCE_TYPE.SPRITE, async ({ name, data }) => {
43
- const textureObj = data.json;
43
+ const textureObj = normalizeSpritesheetData(data.json);
44
44
  const texture = Texture.from(data.image);
45
45
  const frames = textureObj.frames || {};
46
46
  const animations = textureObj.animations || {};
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-sprite.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface SpriteParams {\n resource: string;\n spriteName: string;\n}\n\nexport default class Sprite extends Component<SpriteParams> {\n static componentName: string = 'Sprite';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'resource',\n description: 'Atlas or sprite sheet resource id.',\n editor: 'text',\n })\n resource: string = '';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'spriteName',\n description: 'Frame name inside the atlas resource.',\n editor: 'text',\n })\n spriteName: string = '';\n\n init(obj?: SpriteParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n this.spriteName = obj.spriteName;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\n\nimport SpriteComponent from './component';\nimport { Sprite as SpriteEngine } from '@combos-fun/renderer-adapter';\nimport { Spritesheet, Texture } from 'pixi.js';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nresource.registerInstance(RESOURCE_TYPE.SPRITE, async ({ name, data }) => {\n const textureObj = data.json;\n const texture = Texture.from(data.image);\n const frames = textureObj.frames || {};\n const animations = textureObj.animations || {};\n const newFrames = {};\n for (const key in frames) {\n const newKey = name + resourceKeySplit + key;\n newFrames[newKey] = frames[key];\n }\n for (const key in animations) {\n const spriteList = [];\n if (animations[key] && animations[key].length >= 0) {\n for (const spriteName of animations[key]) {\n const newSpriteName = name + resourceKeySplit + spriteName;\n spriteList.push(newSpriteName);\n }\n }\n animations[key] = spriteList;\n }\n textureObj.frames = newFrames;\n const spriteSheet = new Spritesheet(texture, textureObj);\n const textures = await spriteSheet.parse();\n return textures;\n});\n\nresource.registerDestroy(RESOURCE_TYPE.SPRITE, ({ instance }) => {\n if (!instance) return;\n for (const key in instance) {\n instance[key].destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Sprite: ['spriteName'],\n})\nexport default class Sprite extends Renderer {\n static systemName = 'Sprite';\n name: string = 'Sprite';\n sprites: { [propName: number]: SpriteEngine } = {};\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.sprites[gameObject.id]) {\n this.sprites[gameObject.id].sprite.width = width;\n this.sprites[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Sprite') {\n const gameObjectId = changed.gameObject.id;\n const component: SpriteComponent = changed.component as SpriteComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new SpriteEngine(null);\n this.sprites[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n this.sprites[changed.gameObject.id].image =\n instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(gameObjectId);\n const sprite = this.sprites[changed.gameObject.id];\n this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.sprites[changed.gameObject.id];\n }\n }\n }\n}\n"],"names":["Sprite","SpriteEngine"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-sprite.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface SpriteParams {\n resource: string;\n spriteName: string;\n}\n\nexport default class Sprite extends Component<SpriteParams> {\n static componentName: string = 'Sprite';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'resource',\n description: 'Atlas or sprite sheet resource id.',\n editor: 'text',\n })\n resource: string = '';\n\n @Field({\n type: 'string',\n group: 'Sprite',\n label: 'spriteName',\n description: 'Frame name inside the atlas resource.',\n editor: 'text',\n })\n spriteName: string = '';\n\n init(obj?: SpriteParams) {\n if (obj && obj.resource) {\n this.resource = obj.resource;\n this.spriteName = obj.spriteName;\n }\n }\n}\n","import { GameObject, decorators, resource, ComponentChanged, RESOURCE_TYPE, OBSERVER_TYPE, normalizeSpritesheetData } from '@combos-fun/engine';\nimport { RendererManager, ContainerManager, RendererSystem, Renderer, RESOURCE_KEY_SPLIT } from '@combos-fun/plugin-renderer';\n\nimport SpriteComponent from './component';\nimport { Sprite as SpriteEngine } from '@combos-fun/renderer-adapter';\nimport { Spritesheet, Texture } from 'pixi.js';\n\nconst resourceKeySplit = RESOURCE_KEY_SPLIT;\n\nresource.registerInstance(RESOURCE_TYPE.SPRITE, async ({ name, data }) => {\n const textureObj = normalizeSpritesheetData(data.json);\n const texture = Texture.from(data.image);\n const frames = textureObj.frames || {};\n const animations = textureObj.animations || {};\n const newFrames = {};\n for (const key in frames) {\n const newKey = name + resourceKeySplit + key;\n newFrames[newKey] = frames[key];\n }\n for (const key in animations) {\n const spriteList = [];\n if (animations[key] && animations[key].length >= 0) {\n for (const spriteName of animations[key]) {\n const newSpriteName = name + resourceKeySplit + spriteName;\n spriteList.push(newSpriteName);\n }\n }\n animations[key] = spriteList;\n }\n textureObj.frames = newFrames;\n const spriteSheet = new Spritesheet(texture, textureObj);\n const textures = await spriteSheet.parse();\n return textures;\n});\n\nresource.registerDestroy(RESOURCE_TYPE.SPRITE, ({ instance }) => {\n if (!instance) return;\n for (const key in instance) {\n instance[key].destroy(true);\n }\n});\n\n@decorators.componentObserver({\n Sprite: ['spriteName'],\n})\nexport default class Sprite extends Renderer {\n static systemName = 'Sprite';\n name: string = 'Sprite';\n sprites: { [propName: number]: SpriteEngine } = {};\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.sprites[gameObject.id]) {\n this.sprites[gameObject.id].sprite.width = width;\n this.sprites[gameObject.id].sprite.height = height;\n }\n }\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Sprite') {\n const gameObjectId = changed.gameObject.id;\n const component: SpriteComponent = changed.component as SpriteComponent;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const sprite = new SpriteEngine(null);\n this.sprites[changed.gameObject.id] = sprite;\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(sprite.sprite, 0);\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n sprite.image = instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n const asyncId = this.increaseAsyncId(gameObjectId);\n const { instance } = await resource.getResource(component.resource);\n if (!this.validateAsyncId(gameObjectId, asyncId)) return;\n if (!instance) {\n console.error(`GameObject:${changed.gameObject.name}'s Sprite resource load error`);\n return;\n }\n this.sprites[changed.gameObject.id].image =\n instance[component.resource + resourceKeySplit + component.spriteName];\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.increaseAsyncId(gameObjectId);\n const sprite = this.sprites[changed.gameObject.id];\n this.containerManager.getContainer(changed.gameObject.id).removeChild(sprite.sprite);\n sprite.sprite.destroy({ children: true });\n delete this.sprites[changed.gameObject.id];\n }\n }\n }\n}\n"],"names":["Sprite","SpriteEngine"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer-sprite",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "description": "Sprite atlas rendering",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-sprite.esm.js",
@@ -35,11 +35,11 @@
35
35
  ],
36
36
  "author": "sun668 <q947692259@gmail.com>",
37
37
  "dependencies": {
38
- "@combos-fun/renderer-adapter": "0.0.37",
39
- "@combos-fun/plugin-renderer": "0.0.37",
40
- "@combos-fun/engine": "0.0.37",
38
+ "@combos-fun/renderer-adapter": "0.0.39",
39
+ "@combos-fun/plugin-renderer": "0.0.39",
40
+ "@combos-fun/engine": "0.0.39",
41
41
  "pixi.js": "^8.18.1",
42
- "@combos-fun/inspector-decorator": "0.0.37"
42
+ "@combos-fun/inspector-decorator": "0.0.39"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "node ../../scripts/build-package.mjs"