@combos-fun/plugin-renderer-text 0.0.33 → 0.0.35

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.
@@ -10,7 +10,7 @@ let Text$1 = class Text extends engine.Component {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.text = '';
13
- // @decorators.IDEProp complex editing to be added later
13
+ // Complex style object Scene Edit exposes leaf fields later if needed.
14
14
  this.style = {};
15
15
  }
16
16
  static { this.componentName = 'Text'; }
@@ -23,7 +23,13 @@ let Text$1 = class Text extends engine.Component {
23
23
  }
24
24
  };
25
25
  tslib.__decorate([
26
- inspectorDecorator.type('string')
26
+ inspectorDecorator.Field({
27
+ type: 'string',
28
+ group: 'Text',
29
+ label: 'text',
30
+ description: 'Visible text content.',
31
+ editor: 'text',
32
+ })
27
33
  ], Text$1.prototype, "text", void 0);
28
34
 
29
35
  let Text = class Text extends pluginRenderer.Renderer {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-text.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import type { TextStyle } from 'pixi.js';\nimport { Component } from '@combos-fun/engine';\nimport { type } from '@combos-fun/inspector-decorator';\n\nexport interface TextParams {\n text: string;\n style?: Partial<TextStyle>;\n}\n\nexport default class Text extends Component<TextParams> {\n static componentName: string = 'Text';\n @type('string') text: string = '';\n // @decorators.IDEProp complex editing to be added later\n style: TextParams['style'] = {};\n init(obj?: TextParams) {\n this.style = { fontSize: 20 };\n if (obj) {\n this.text = obj.text;\n Object.assign(this.style, obj.style);\n }\n }\n}\n","import { decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\n\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Text as TextEngine } from '@combos-fun/renderer-adapter';\n\nimport TextComponent from './component';\n@decorators.componentObserver({\n Text: ['text', { prop: ['style'], deep: true }],\n})\nexport default class Text extends Renderer {\n static systemName = 'Text';\n name: string = 'Text';\n texts: {\n [propName: number]: { text: TextEngine; component: TextComponent };\n } = {};\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 async componentChanged(changed: ComponentChanged) {\n if (changed.componentName !== 'Text') return;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const component = changed.component as TextComponent;\n const text = new TextEngine(component.text, component.style);\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(text, 0);\n this.texts[changed.gameObject.id] = {\n text,\n component: changed.component as TextComponent,\n };\n this.setSize(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.containerManager.getContainer(changed.gameObject.id).removeChild(this.texts[changed.gameObject.id].text);\n this.texts[changed.gameObject.id].text.destroy({ children: true });\n delete this.texts[changed.gameObject.id];\n } else {\n this.change(changed);\n this.setSize(changed);\n }\n }\n change(changed: ComponentChanged) {\n const { text, component } = this.texts[changed.gameObject.id];\n if (changed.prop.prop[0] === 'text') {\n text.text = component.text;\n } else if (changed.prop.prop[0] === 'style') {\n Object.assign(text.style, (changed.component as TextComponent).style);\n }\n }\n setSize(changed: ComponentChanged) {\n const { transform } = changed.gameObject;\n if (!transform) return;\n transform.size.width = this.texts[changed.gameObject.id].text.width;\n transform.size.height = this.texts[changed.gameObject.id].text.height;\n }\n}\n"],"names":["Component","__decorate","type","Text","Renderer","RendererSystem","OBSERVER_TYPE","TextEngine","decorators"],"mappings":";;;;;;;;aASc,MAAO,IAAK,SAAQA,gBAAqB,CAAA;AAAvD,IAAA,WAAA,GAAA;;QAEkB,IAAA,CAAA,IAAI,GAAW,EAAE;;QAEjC,IAAA,CAAA,KAAK,GAAwB,EAAE;IAQjC;aAXS,IAAA,CAAA,aAAa,GAAW,MAAX,CAAkB;AAItC,IAAA,IAAI,CAAC,GAAgB,EAAA;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACtC;IACF;;AATgBC,gBAAA,CAAA;IAAfC,uBAAI,CAAC,QAAQ;AAAoB,CAAA,EAAAC,MAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;;ACFrB,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQC,uBAAQ,CAAA;AAA3B,IAAA,WAAA,GAAA;;QAEb,IAAA,CAAA,IAAI,GAAW,MAAM;QACrB,IAAA,CAAA,KAAK,GAED,EAAE;IA0CR;aA9CS,IAAA,CAAA,UAAU,GAAG,MAAH,CAAU;IAQ3B,IAAI,GAAA;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAACC,6BAAc,CAAmB;QACzE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClD;IACA,MAAM,gBAAgB,CAAC,OAAyB,EAAA;AAC9C,QAAA,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM;YAAE;QACtC,IAAI,OAAO,CAAC,IAAI,KAAKC,oBAAa,CAAC,GAAG,EAAE;AACtC,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAA0B;AACpD,YAAA,MAAM,IAAI,GAAG,IAAIC,oBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;AAC5D,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG;gBAClC,IAAI;gBACJ,SAAS,EAAE,OAAO,CAAC,SAA0B;aAC9C;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB;aAAO,IAAI,OAAO,CAAC,IAAI,KAAKD,oBAAa,CAAC,MAAM,EAAE;YAChD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;YAC7G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB;IACF;AACA,IAAA,MAAM,CAAC,OAAyB,EAAA;AAC9B,QAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;AACnC,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;QAC5B;aAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAC3C,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAG,OAAO,CAAC,SAA2B,CAAC,KAAK,CAAC;QACvE;IACF;AACA,IAAA,OAAO,CAAC,OAAyB,EAAA;AAC/B,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU;AACxC,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;AACnE,QAAA,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;IACvE;;AA9CmB,IAAI,GAAAL,gBAAA,CAAA;IAHxBO,iBAAU,CAAC,iBAAiB,CAAC;AAC5B,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KAChD;AACoB,CAAA,EAAA,IAAI,CA+CxB;mBA/CoB,IAAI;;;;;"}
1
+ {"version":3,"file":"plugin-renderer-text.cjs.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import type { TextStyle } from 'pixi.js';\nimport { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface TextParams {\n text: string;\n style?: Partial<TextStyle>;\n}\n\nexport default class Text extends Component<TextParams> {\n static componentName: string = 'Text';\n\n @Field({\n type: 'string',\n group: 'Text',\n label: 'text',\n description: 'Visible text content.',\n editor: 'text',\n })\n text: string = '';\n\n // Complex style object Scene Edit exposes leaf fields later if needed.\n style: TextParams['style'] = {};\n\n init(obj?: TextParams) {\n this.style = { fontSize: 20 };\n if (obj) {\n this.text = obj.text;\n Object.assign(this.style, obj.style);\n }\n }\n}\n","import { decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\n\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Text as TextEngine } from '@combos-fun/renderer-adapter';\n\nimport TextComponent from './component';\n@decorators.componentObserver({\n Text: ['text', { prop: ['style'], deep: true }],\n})\nexport default class Text extends Renderer {\n static systemName = 'Text';\n name: string = 'Text';\n texts: {\n [propName: number]: { text: TextEngine; component: TextComponent };\n } = {};\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 async componentChanged(changed: ComponentChanged) {\n if (changed.componentName !== 'Text') return;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const component = changed.component as TextComponent;\n const text = new TextEngine(component.text, component.style);\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(text, 0);\n this.texts[changed.gameObject.id] = {\n text,\n component: changed.component as TextComponent,\n };\n this.setSize(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.containerManager.getContainer(changed.gameObject.id).removeChild(this.texts[changed.gameObject.id].text);\n this.texts[changed.gameObject.id].text.destroy({ children: true });\n delete this.texts[changed.gameObject.id];\n } else {\n this.change(changed);\n this.setSize(changed);\n }\n }\n change(changed: ComponentChanged) {\n const { text, component } = this.texts[changed.gameObject.id];\n if (changed.prop.prop[0] === 'text') {\n text.text = component.text;\n } else if (changed.prop.prop[0] === 'style') {\n Object.assign(text.style, (changed.component as TextComponent).style);\n }\n }\n setSize(changed: ComponentChanged) {\n const { transform } = changed.gameObject;\n if (!transform) return;\n transform.size.width = this.texts[changed.gameObject.id].text.width;\n transform.size.height = this.texts[changed.gameObject.id].text.height;\n }\n}\n"],"names":["Component","__decorate","Field","Text","Renderer","RendererSystem","OBSERVER_TYPE","TextEngine","decorators"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),s=require("@combos-fun/inspector-decorator"),i=require("@combos-fun/plugin-renderer"),r=require("@combos-fun/renderer-adapter");let n=class extends t.Component{constructor(){super(...arguments),this.text="",this.style={}}static{this.componentName="Text"}init(e){this.style={fontSize:20},e&&(this.text=e.text,Object.assign(this.style,e.style))}};e.__decorate([s.type("string")],n.prototype,"text",void 0);let o=class extends i.Renderer{constructor(){super(...arguments),this.name="Text",this.texts={}}static{this.systemName="Text"}init(){this.renderSystem=this.game.getSystem(i.RendererSystem),this.renderSystem.rendererManager.register(this)}async componentChanged(e){if("Text"===e.componentName)if(e.type===t.OBSERVER_TYPE.ADD){const t=e.component,s=new r.Text(t.text,t.style);this.containerManager.getContainer(e.gameObject.id).addChildAt(s,0),this.texts[e.gameObject.id]={text:s,component:e.component},this.setSize(e)}else e.type===t.OBSERVER_TYPE.REMOVE?(this.containerManager.getContainer(e.gameObject.id).removeChild(this.texts[e.gameObject.id].text),this.texts[e.gameObject.id].text.destroy({children:!0}),delete this.texts[e.gameObject.id]):(this.change(e),this.setSize(e))}change(e){const{text:t,component:s}=this.texts[e.gameObject.id];"text"===e.prop.prop[0]?t.text=s.text:"style"===e.prop.prop[0]&&Object.assign(t.style,e.component.style)}setSize(e){const{transform:t}=e.gameObject;t&&(t.size.width=this.texts[e.gameObject.id].text.width,t.size.height=this.texts[e.gameObject.id].text.height)}};o=e.__decorate([t.decorators.componentObserver({Text:["text",{prop:["style"],deep:!0}]})],o);var c=o;exports.Text=n,exports.TextSystem=c;
1
+ "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),s=require("@combos-fun/inspector-decorator"),i=require("@combos-fun/plugin-renderer"),r=require("@combos-fun/renderer-adapter");let n=class extends t.Component{constructor(){super(...arguments),this.text="",this.style={}}static{this.componentName="Text"}init(e){this.style={fontSize:20},e&&(this.text=e.text,Object.assign(this.style,e.style))}};e.__decorate([s.Field({type:"string",group:"Text",label:"text",description:"Visible text content.",editor:"text"})],n.prototype,"text",void 0);let o=class extends i.Renderer{constructor(){super(...arguments),this.name="Text",this.texts={}}static{this.systemName="Text"}init(){this.renderSystem=this.game.getSystem(i.RendererSystem),this.renderSystem.rendererManager.register(this)}async componentChanged(e){if("Text"===e.componentName)if(e.type===t.OBSERVER_TYPE.ADD){const t=e.component,s=new r.Text(t.text,t.style);this.containerManager.getContainer(e.gameObject.id).addChildAt(s,0),this.texts[e.gameObject.id]={text:s,component:e.component},this.setSize(e)}else e.type===t.OBSERVER_TYPE.REMOVE?(this.containerManager.getContainer(e.gameObject.id).removeChild(this.texts[e.gameObject.id].text),this.texts[e.gameObject.id].text.destroy({children:!0}),delete this.texts[e.gameObject.id]):(this.change(e),this.setSize(e))}change(e){const{text:t,component:s}=this.texts[e.gameObject.id];"text"===e.prop.prop[0]?t.text=s.text:"style"===e.prop.prop[0]&&Object.assign(t.style,e.component.style)}setSize(e){const{transform:t}=e.gameObject;t&&(t.size.width=this.texts[e.gameObject.id].text.width,t.size.height=this.texts[e.gameObject.id].text.height)}};o=e.__decorate([t.decorators.componentObserver({Text:["text",{prop:["style"],deep:!0}]})],o);var c=o;exports.Text=n,exports.TextSystem=c;
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { Component, OBSERVER_TYPE, decorators } from '@combos-fun/engine';
3
- import { type } from '@combos-fun/inspector-decorator';
3
+ import { Field } from '@combos-fun/inspector-decorator';
4
4
  import { Renderer, RendererSystem } from '@combos-fun/plugin-renderer';
5
5
  import { Text as Text$2 } from '@combos-fun/renderer-adapter';
6
6
 
@@ -8,7 +8,7 @@ let Text$1 = class Text extends Component {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.text = '';
11
- // @decorators.IDEProp complex editing to be added later
11
+ // Complex style object Scene Edit exposes leaf fields later if needed.
12
12
  this.style = {};
13
13
  }
14
14
  static { this.componentName = 'Text'; }
@@ -21,7 +21,13 @@ let Text$1 = class Text extends Component {
21
21
  }
22
22
  };
23
23
  __decorate([
24
- type('string')
24
+ Field({
25
+ type: 'string',
26
+ group: 'Text',
27
+ label: 'text',
28
+ description: 'Visible text content.',
29
+ editor: 'text',
30
+ })
25
31
  ], Text$1.prototype, "text", void 0);
26
32
 
27
33
  let Text = class Text extends Renderer {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer-text.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import type { TextStyle } from 'pixi.js';\nimport { Component } from '@combos-fun/engine';\nimport { type } from '@combos-fun/inspector-decorator';\n\nexport interface TextParams {\n text: string;\n style?: Partial<TextStyle>;\n}\n\nexport default class Text extends Component<TextParams> {\n static componentName: string = 'Text';\n @type('string') text: string = '';\n // @decorators.IDEProp complex editing to be added later\n style: TextParams['style'] = {};\n init(obj?: TextParams) {\n this.style = { fontSize: 20 };\n if (obj) {\n this.text = obj.text;\n Object.assign(this.style, obj.style);\n }\n }\n}\n","import { decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\n\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Text as TextEngine } from '@combos-fun/renderer-adapter';\n\nimport TextComponent from './component';\n@decorators.componentObserver({\n Text: ['text', { prop: ['style'], deep: true }],\n})\nexport default class Text extends Renderer {\n static systemName = 'Text';\n name: string = 'Text';\n texts: {\n [propName: number]: { text: TextEngine; component: TextComponent };\n } = {};\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 async componentChanged(changed: ComponentChanged) {\n if (changed.componentName !== 'Text') return;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const component = changed.component as TextComponent;\n const text = new TextEngine(component.text, component.style);\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(text, 0);\n this.texts[changed.gameObject.id] = {\n text,\n component: changed.component as TextComponent,\n };\n this.setSize(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.containerManager.getContainer(changed.gameObject.id).removeChild(this.texts[changed.gameObject.id].text);\n this.texts[changed.gameObject.id].text.destroy({ children: true });\n delete this.texts[changed.gameObject.id];\n } else {\n this.change(changed);\n this.setSize(changed);\n }\n }\n change(changed: ComponentChanged) {\n const { text, component } = this.texts[changed.gameObject.id];\n if (changed.prop.prop[0] === 'text') {\n text.text = component.text;\n } else if (changed.prop.prop[0] === 'style') {\n Object.assign(text.style, (changed.component as TextComponent).style);\n }\n }\n setSize(changed: ComponentChanged) {\n const { transform } = changed.gameObject;\n if (!transform) return;\n transform.size.width = this.texts[changed.gameObject.id].text.width;\n transform.size.height = this.texts[changed.gameObject.id].text.height;\n }\n}\n"],"names":["Text","TextEngine"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer-text.esm.js","sources":["../lib/component.ts","../lib/system.ts"],"sourcesContent":["import type { TextStyle } from 'pixi.js';\nimport { Component } from '@combos-fun/engine';\nimport { Field } from '@combos-fun/inspector-decorator';\n\nexport interface TextParams {\n text: string;\n style?: Partial<TextStyle>;\n}\n\nexport default class Text extends Component<TextParams> {\n static componentName: string = 'Text';\n\n @Field({\n type: 'string',\n group: 'Text',\n label: 'text',\n description: 'Visible text content.',\n editor: 'text',\n })\n text: string = '';\n\n // Complex style object Scene Edit exposes leaf fields later if needed.\n style: TextParams['style'] = {};\n\n init(obj?: TextParams) {\n this.style = { fontSize: 20 };\n if (obj) {\n this.text = obj.text;\n Object.assign(this.style, obj.style);\n }\n }\n}\n","import { decorators, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\n\nimport { RendererManager, ContainerManager, RendererSystem, Renderer } from '@combos-fun/plugin-renderer';\nimport { Text as TextEngine } from '@combos-fun/renderer-adapter';\n\nimport TextComponent from './component';\n@decorators.componentObserver({\n Text: ['text', { prop: ['style'], deep: true }],\n})\nexport default class Text extends Renderer {\n static systemName = 'Text';\n name: string = 'Text';\n texts: {\n [propName: number]: { text: TextEngine; component: TextComponent };\n } = {};\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 async componentChanged(changed: ComponentChanged) {\n if (changed.componentName !== 'Text') return;\n if (changed.type === OBSERVER_TYPE.ADD) {\n const component = changed.component as TextComponent;\n const text = new TextEngine(component.text, component.style);\n this.containerManager.getContainer(changed.gameObject.id).addChildAt(text, 0);\n this.texts[changed.gameObject.id] = {\n text,\n component: changed.component as TextComponent,\n };\n this.setSize(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.containerManager.getContainer(changed.gameObject.id).removeChild(this.texts[changed.gameObject.id].text);\n this.texts[changed.gameObject.id].text.destroy({ children: true });\n delete this.texts[changed.gameObject.id];\n } else {\n this.change(changed);\n this.setSize(changed);\n }\n }\n change(changed: ComponentChanged) {\n const { text, component } = this.texts[changed.gameObject.id];\n if (changed.prop.prop[0] === 'text') {\n text.text = component.text;\n } else if (changed.prop.prop[0] === 'style') {\n Object.assign(text.style, (changed.component as TextComponent).style);\n }\n }\n setSize(changed: ComponentChanged) {\n const { transform } = changed.gameObject;\n if (!transform) return;\n transform.size.width = this.texts[changed.gameObject.id].text.width;\n transform.size.height = this.texts[changed.gameObject.id].text.height;\n }\n}\n"],"names":["Text","TextEngine"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer-text",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "Text rendering",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-text.esm.js",
@@ -36,10 +36,10 @@
36
36
  "author": "sun668 <q947692259@gmail.com>",
37
37
  "dependencies": {
38
38
  "pixi.js": "^8.18.1",
39
- "@combos-fun/plugin-renderer": "0.0.33",
40
- "@combos-fun/renderer-adapter": "0.0.33",
41
- "@combos-fun/inspector-decorator": "0.0.33",
42
- "@combos-fun/engine": "0.0.33"
39
+ "@combos-fun/plugin-renderer": "0.0.35",
40
+ "@combos-fun/renderer-adapter": "0.0.35",
41
+ "@combos-fun/engine": "0.0.35",
42
+ "@combos-fun/inspector-decorator": "0.0.35"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "node ../../scripts/build-package.mjs"