@safe-engine/pixi 8.5.6 → 8.6.3

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.
Files changed (37) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +2 -5
  3. package/dist/components/NodeComp.d.ts +10 -5
  4. package/dist/components/NodeComp.d.ts.map +1 -1
  5. package/dist/components/NodeComp.js +16 -10
  6. package/dist/core/math.d.ts +1 -0
  7. package/dist/core/math.d.ts.map +1 -1
  8. package/dist/core/math.js +3 -0
  9. package/dist/gui/GUIComponent.d.ts +2 -50
  10. package/dist/gui/GUIComponent.d.ts.map +1 -1
  11. package/dist/gui/GUIComponent.js +2 -56
  12. package/dist/gui/GUISystem.d.ts +0 -1
  13. package/dist/gui/GUISystem.d.ts.map +1 -1
  14. package/dist/gui/GUISystem.js +2 -63
  15. package/dist/gui/index.d.ts +4 -0
  16. package/dist/gui/index.d.ts.map +1 -0
  17. package/dist/gui/index.js +9 -0
  18. package/dist/index.d.ts +2 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -4
  21. package/dist/norender/NoRenderComponent.d.ts +11 -1
  22. package/dist/norender/NoRenderComponent.d.ts.map +1 -1
  23. package/dist/norender/NoRenderComponent.js +2 -0
  24. package/dist/norender/NoRenderSystem.d.ts.map +1 -1
  25. package/dist/norender/NoRenderSystem.js +27 -2
  26. package/dist/norender/index.d.ts +3 -0
  27. package/dist/norender/index.d.ts.map +1 -0
  28. package/dist/norender/index.js +2 -0
  29. package/dist/render/RenderComponent.d.ts +29 -2
  30. package/dist/render/RenderComponent.d.ts.map +1 -1
  31. package/dist/render/RenderComponent.js +50 -1
  32. package/dist/render/RenderSystem.d.ts +1 -0
  33. package/dist/render/RenderSystem.d.ts.map +1 -1
  34. package/dist/render/RenderSystem.js +33 -2
  35. package/package.json +5 -5
  36. package/dist/@types/index.d.ts +0 -2
  37. package/dist/@types/safex.d.ts +0 -15
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAO5D,wBAAsB,SAAS,CAC7B,WAAW,KAAA,EACX,kBAAkB;;;CAA+B,EACjD,YAAY,EAAE,WAAW,EACzB,EAAE,SAAe,GAChB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CA6BhC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAM5D,wBAAsB,SAAS,CAC7B,WAAW,KAAA,EACX,kBAAkB;;;CAA+B,EACjD,YAAY,EAAE,WAAW,EACzB,EAAE,SAAe,GAChB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CA6BhC"}
package/dist/app.js CHANGED
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { actionManager } from 'pixi-action-ease';
11
11
  import { Application } from 'pixi.js';
12
12
  import { GameWorld } from './base';
13
- import { GUISystem } from './gui/GUISystem';
14
13
  import { NoRenderSystem } from './norender/NoRenderSystem';
15
14
  import { RenderSystem } from './render/RenderSystem';
16
15
  export function startGame(defaultFont_1) {
@@ -57,13 +56,11 @@ function startGameLoop(world) {
57
56
  function initWorld(defaultFont) {
58
57
  const world = GameWorld.Instance;
59
58
  world.systems.add(RenderSystem);
60
- world.systems.add(GUISystem);
61
59
  world.systems.add(NoRenderSystem);
62
60
  world.systems.configureOnce(RenderSystem);
63
- world.systems.configureOnce(GUISystem);
64
61
  world.systems.configureOnce(NoRenderSystem);
65
62
  if (defaultFont) {
66
- const guiSystem = world.systems.get(GUISystem);
67
- guiSystem.defaultFont = defaultFont;
63
+ const fontSystem = world.systems.get(RenderSystem);
64
+ fontSystem.defaultFont = defaultFont;
68
65
  }
69
66
  }
@@ -1,15 +1,16 @@
1
1
  import { ComponentType, Constructor, Entity } from 'entityx-ts';
2
- import { Action, Animation } from 'pixi-action-ease';
2
+ import { Action } from 'pixi-action-ease';
3
3
  import { ColorSource, Container, Point } from 'pixi.js';
4
4
  import { EnhancedComponent } from '..';
5
5
  import { Vec2 } from '../core';
6
6
  import { Size } from '../core/Size';
7
+ import { EventRegister } from '../norender/NoRenderComponent';
7
8
  export declare class NodeComp<C extends Container = Container> {
8
9
  entity: Entity;
9
10
  instance: C;
10
11
  parent: NodeComp;
11
12
  children: NodeComp[];
12
- actionsList: Animation[];
13
+ private actionsList;
13
14
  name: string;
14
15
  private _group;
15
16
  private _active;
@@ -116,19 +117,23 @@ export declare class NodeComp<C extends Container = Container> {
116
117
  angle(other: Vec2): number;
117
118
  distance(other: /*elided*/ any): number;
118
119
  };
120
+ getBoundingBox(): import("pixi.js").Bounds;
119
121
  get contentSize(): Size;
120
122
  set contentSize(size: Size);
121
123
  runAction(act: Action): void;
122
124
  stopAllActions(): void;
123
- pauseAllActions(): void;
124
- resumeAllActions(): void;
125
+ pauseAllActionsAndSchedule(): void;
126
+ resumeAllActionsAndSchedule(): void;
125
127
  destroy(): void;
126
128
  removeFromParent(): void;
127
129
  addChild(child: NodeComp, zOrder?: number): void;
128
130
  destroyAllChildren(): void;
129
131
  removeAllChildren(): void;
130
- resolveComponent(component: EnhancedComponent<object, NodeComp>): void;
132
+ resolveComponent(component: EnhancedComponent<object, NodeComp> & {
133
+ start?: () => void;
134
+ }): void;
131
135
  getData<T>(key: string): T;
132
136
  setData<T>(key: string, value: T): void;
137
+ get event(): ComponentType | EventRegister;
133
138
  }
134
139
  //# sourceMappingURL=NodeComp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeComp.d.ts","sourceRoot":"","sources":["../../src/components/NodeComp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeComp.d.ts","sourceRoot":"","sources":["../../src/components/NodeComp.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Point, Sprite, Text } from 'pixi.js';
3
3
  import { instantiate } from '..';
4
4
  import { updatePoint, Vec2 } from '../core';
5
5
  import { ProgressBarComp } from '../gui/GUIComponent';
6
- import { ExtraDataComp } from '../norender/NoRenderComponent';
6
+ import { EventRegister, ExtraDataComp } from '../norender/NoRenderComponent';
7
7
  export class NodeComp {
8
8
  constructor(instance, entity) {
9
9
  this.children = [];
@@ -185,13 +185,10 @@ export class NodeComp {
185
185
  // getAnchorPoint() {
186
186
  // return this.instance.getAnchorPoint()
187
187
  // }
188
- // getBoundingBox() {
189
- // const box = this.instance.getBoundingBox()
190
- // box.contains = function (point) {
191
- // return this.x <= point.x && this.x + this.width >= point.x && this.y <= point.y && this.y + this.height >= point.y
192
- // }
193
- // return box
194
- // }
188
+ getBoundingBox() {
189
+ const box = this.instance.getBounds();
190
+ return box;
191
+ }
195
192
  get contentSize() {
196
193
  return this.instance.getSize();
197
194
  }
@@ -208,12 +205,12 @@ export class NodeComp {
208
205
  });
209
206
  this.actionsList = [];
210
207
  }
211
- pauseAllActions() {
208
+ pauseAllActionsAndSchedule() {
212
209
  this.actionsList.forEach((anim) => {
213
210
  anim.isPause = true;
214
211
  });
215
212
  }
216
- resumeAllActions() {
213
+ resumeAllActionsAndSchedule() {
217
214
  this.actionsList.forEach((anim) => {
218
215
  anim.isPause = false;
219
216
  });
@@ -260,6 +257,8 @@ export class NodeComp {
260
257
  }
261
258
  else {
262
259
  this.addComponent(component);
260
+ if (component.start)
261
+ component.start();
263
262
  if (component instanceof ProgressBarComp) {
264
263
  this.addChild(component.node);
265
264
  }
@@ -281,4 +280,11 @@ export class NodeComp {
281
280
  data.setData(key, value);
282
281
  }
283
282
  }
283
+ get event() {
284
+ const _event = this.getComponent(EventRegister);
285
+ if (!_event) {
286
+ return this.addComponent(instantiate(EventRegister));
287
+ }
288
+ return _event;
289
+ }
284
290
  }
@@ -1,4 +1,5 @@
1
1
  export declare function randomRangeInt(minInclude: Integer, maxExclude: Integer): number;
2
+ export declare function randomRange(minInclude: Float, maxExclude: Float): number;
2
3
  export declare function degreesToRadians(deg: Float): number;
3
4
  export declare function radiansToDegrees(rad: Float): number;
4
5
  export declare function clampf(theta: number, arg1: number, arg2: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/core/math.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,UAEtE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,UAE1C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,UAE1C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxE"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/core/math.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,UAEtE;AACD,wBAAgB,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,UAE/D;AACD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,UAE1C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,UAE1C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxE"}
package/dist/core/math.js CHANGED
@@ -2,6 +2,9 @@ import { DEG_TO_RAD, RAD_TO_DEG } from 'pixi.js';
2
2
  export function randomRangeInt(minInclude, maxExclude) {
3
3
  return Math.round(Math.random() * (maxExclude - minInclude - 1)) + minInclude;
4
4
  }
5
+ export function randomRange(minInclude, maxExclude) {
6
+ return Math.random() * (maxExclude - minInclude - 1) + minInclude;
7
+ }
5
8
  export function degreesToRadians(deg) {
6
9
  return DEG_TO_RAD * deg;
7
10
  }
@@ -1,23 +1,13 @@
1
1
  import { CheckBox, CheckBoxOptions, Input, List, ProgressBar, RadioGroup, Slider, SliderOptions } from '@pixi/ui';
2
- import { Container, Point, Text } from 'pixi.js';
2
+ import { Container } from 'pixi.js';
3
3
  import { BaseComponentProps } from '..';
4
4
  import { ComponentX, NoRenderComponentX } from '../components/BaseComponent';
5
- import { Color4B } from '../core/Color';
6
- import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
5
+ import { LoadingBarMode } from '../core/LoadingBar';
7
6
  export declare const FillType: {
8
7
  HORIZONTAL: number;
9
8
  VERTICAL: number;
10
9
  RADIAL: number;
11
10
  };
12
- interface ButtonCompProps extends BaseComponentProps<ButtonComp> {
13
- normalImage?: string;
14
- selectedImage?: string;
15
- disableImage?: string;
16
- zoomScale?: number;
17
- onPress: (target: ButtonComp) => void;
18
- }
19
- export declare class ButtonComp extends NoRenderComponentX<ButtonCompProps> {
20
- }
21
11
  export declare class ProgressBarComp extends ComponentX<{}, ProgressBar> {
22
12
  mode: LoadingBarMode;
23
13
  isReverse: boolean;
@@ -26,19 +16,6 @@ export declare class ProgressBarComp extends ComponentX<{}, ProgressBar> {
26
16
  get progress(): number;
27
17
  set progress(val: number);
28
18
  }
29
- interface LabelCompProps extends BaseComponentProps<LabelComp> {
30
- font?: string;
31
- string?: string;
32
- size?: number;
33
- }
34
- export declare class LabelComp extends ComponentX<LabelCompProps, Text> {
35
- get string(): string;
36
- set string(val: string);
37
- get size(): number;
38
- set size(val: number);
39
- get font(): string;
40
- set font(val: string);
41
- }
42
19
  interface ScrollViewProps {
43
20
  width: number;
44
21
  height: number;
@@ -47,31 +24,6 @@ export declare class ScrollView extends NoRenderComponentX<ScrollViewProps> {
47
24
  }
48
25
  export declare class BlockInputEventsComp extends NoRenderComponentX {
49
26
  }
50
- interface ProgressTimerProps extends BaseComponentProps<ProgressTimerComp> {
51
- spriteFrame: string;
52
- fillType?: number;
53
- fillRange?: number;
54
- fillCenter?: Point;
55
- isReverse?: boolean;
56
- }
57
- export declare class ProgressTimerComp extends ComponentX<ProgressTimerProps, ProgressTimer> {
58
- getFillRange(): number;
59
- setFillStart(val: number): void;
60
- setFillRange(val: number): void;
61
- }
62
- interface LabelOutlineCompProps {
63
- color: Color4B;
64
- width: number;
65
- }
66
- export declare class LabelOutlineComp extends NoRenderComponentX<LabelOutlineCompProps> {
67
- }
68
- interface LabelShadowCompProps extends BaseComponentProps<LabelShadowComp> {
69
- color: Color4B;
70
- blur: number;
71
- offset?: Point;
72
- }
73
- export declare class LabelShadowComp extends NoRenderComponentX<LabelShadowCompProps> {
74
- }
75
27
  interface InputCompProps extends BaseComponentProps<InputComp> {
76
28
  placeHolder?: string;
77
29
  font?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,eAAO,MAAM,QAAQ;;;;CAIpB,CAAA;AAID,qBAAa,eAAgB,SAAQ,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC;IAC9D,IAAI,iBAAqB;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IAEZ,IAAI,QAAQ,IAIM,MAAM,CAFvB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAEvB;CACF;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AACD,qBAAa,UAAW,SAAQ,kBAAkB,CAAC,eAAe,CAAC;CAAG;AAEtE,qBAAa,oBAAqB,SAAQ,kBAAkB;CAAG;AAE/D,UAAU,cAAe,SAAQ,kBAAkB,CAAC,SAAS,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;CAEZ;AACD,qBAAa,SAAU,SAAQ,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC;IAC9D,IAAI,MAAM,WAET;CACF;AAED,qBAAa,QAAS,SAAQ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;CAAG;AACrD,qBAAa,UAAW,SAAQ,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,EAAE,SAAS,CAAA;CAClB;AACD,qBAAa,cAAe,SAAQ,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC;CAAG;AACjE,qBAAa,YAAa,SAAQ,UAAU,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;CAAE,EAAE,QAAQ,CAAC;CAAG"}
@@ -1,4 +1,3 @@
1
- import { Assets, Text } from 'pixi.js';
2
1
  import { ComponentX, NoRenderComponentX } from '../components/BaseComponent';
3
2
  import { LoadingBarMode } from '../core/LoadingBar';
4
3
  export const FillType = {
@@ -6,8 +5,8 @@ export const FillType = {
6
5
  VERTICAL: 1,
7
6
  RADIAL: 2,
8
7
  };
9
- export class ButtonComp extends NoRenderComponentX {
10
- }
8
+ // type Keys = keyof typeof FillType
9
+ // type Values = (typeof FillType)[Keys]
11
10
  export class ProgressBarComp extends ComponentX {
12
11
  constructor() {
13
12
  super(...arguments);
@@ -20,63 +19,10 @@ export class ProgressBarComp extends ComponentX {
20
19
  this.node.instance.progress = val;
21
20
  }
22
21
  }
23
- export class LabelComp extends ComponentX {
24
- get string() {
25
- return this.props.string;
26
- }
27
- set string(val) {
28
- this.props.string = val;
29
- if (!this.node)
30
- return;
31
- if (this.node.instance instanceof Text) {
32
- this.node.instance.text = val;
33
- }
34
- }
35
- get size() {
36
- return this.props.size;
37
- }
38
- set size(val) {
39
- this.props.size = val;
40
- if (!this.node)
41
- return;
42
- if (this.node.instance instanceof Text) {
43
- this.node.instance.style.fontSize = val;
44
- }
45
- }
46
- get font() {
47
- return this.props.font;
48
- }
49
- set font(val) {
50
- this.props.font = val;
51
- if (!this.node)
52
- return;
53
- // console.log('set font', val, Assets.get(val))
54
- if (this.node.instance instanceof Text) {
55
- if (Assets.get(val))
56
- this.node.instance.style.fontFamily = Assets.get(val).family;
57
- }
58
- }
59
- }
60
22
  export class ScrollView extends NoRenderComponentX {
61
23
  }
62
24
  export class BlockInputEventsComp extends NoRenderComponentX {
63
25
  }
64
- export class ProgressTimerComp extends ComponentX {
65
- getFillRange() {
66
- return this.node.instance.progress;
67
- }
68
- setFillStart(val) {
69
- this.node.instance.fillCenter.x = val;
70
- }
71
- setFillRange(val) {
72
- // console.log('setFillRange', this.node.instance);
73
- this.node.instance.progress = val;
74
- }
75
- }
76
- export class LabelOutlineComp extends NoRenderComponentX {
77
- }
78
- export class LabelShadowComp extends NoRenderComponentX {
79
- }
80
26
  export class InputComp extends ComponentX {
81
27
  get string() {
82
28
  return this.node.instance.value;
@@ -1,7 +1,6 @@
1
1
  import { EventManager, System } from 'entityx-ts';
2
2
  import { GameWorld } from '../base';
3
3
  export declare class GUISystem implements System {
4
- defaultFont: string;
5
4
  configure(event_manager: EventManager<GameWorld>): void;
6
5
  }
7
6
  //# sourceMappingURL=GUISystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAK7D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAenC,qBAAa,SAAU,YAAW,MAAM;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;CAoGjD"}
1
+ {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,qBAAa,SAAU,YAAW,MAAM;IACtC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;CAwCjD"}
@@ -1,49 +1,14 @@
1
- import { Button, CheckBox, Input, List, RadioGroup, ScrollBox } from '@pixi/ui';
1
+ import { CheckBox, Input, List, RadioGroup, ScrollBox } from '@pixi/ui';
2
2
  import { EventTypes } from 'entityx-ts';
3
- import { callFunc, easeBackIn, scaleTo, sequence } from 'pixi-action-ease';
4
- import { Text } from 'pixi.js';
5
3
  import { Color4B, NodeComp } from '..';
6
- import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
7
- import { ButtonComp, CheckBoxComp, InputComp, LabelComp, LabelOutlineComp, LabelShadowComp, ListComp, ProgressTimerComp, RadioGroupComp, ScrollView, } from './GUIComponent';
4
+ import { CheckBoxComp, InputComp, ListComp, RadioGroupComp, ScrollView } from './GUIComponent';
8
5
  export class GUISystem {
9
6
  configure(event_manager) {
10
- event_manager.subscribe(EventTypes.ComponentAdded, ButtonComp, ({ entity, component }) => {
11
- const nodeComp = entity.getComponent(NodeComp);
12
- const { zoomScale = 1.2 } = component.props;
13
- const button = new Button(nodeComp.instance);
14
- component.node = nodeComp;
15
- const lastScaleX = nodeComp.scaleX;
16
- const lastScaleY = nodeComp.scaleY;
17
- button.onPress.connect(() => {
18
- if (!component.enabled)
19
- return;
20
- // console.log('onPress.connect')
21
- const scale = scaleTo(0.3, zoomScale * lastScaleX, lastScaleY * zoomScale);
22
- const scaleDown = scaleTo(0.3, lastScaleX, lastScaleY);
23
- const seq = sequence(scale, callFunc(() => {
24
- if (Object.prototype.hasOwnProperty.call(component.props, 'onPress')) {
25
- component.props.onPress(component);
26
- }
27
- }), scaleDown);
28
- const ease = easeBackIn(seq);
29
- component.node.runAction(ease);
30
- });
31
- });
32
7
  // event_manager.subscribe(EventTypes.ComponentAdded, ProgressBarComp, ({ entity, component }) => {
33
8
  // const { progress = 1, bg, fill } = component.props
34
9
  // const node = new ProgressBar({ bg, fill, progress })
35
10
  // component.node = entity.assign(new NodeComp(node, entity))
36
11
  // })
37
- event_manager.subscribe(EventTypes.ComponentAdded, ProgressTimerComp, ({ entity, component }) => {
38
- // console.log(component, '.progress')
39
- const { spriteFrame, fillCenter, fillRange = 0 } = component.props;
40
- const node = new ProgressTimer(LoadingBarMode.BAR, spriteFrame);
41
- if (fillCenter) {
42
- node.fillCenter = fillCenter;
43
- }
44
- node.progress = fillRange * 100;
45
- component.node = entity.assign(new NodeComp(node, entity));
46
- });
47
12
  event_manager.subscribe(EventTypes.ComponentAdded, ScrollView, ({ entity, component }) => {
48
13
  const { width, height } = component.props;
49
14
  const view = new ScrollBox({ width, height });
@@ -72,32 +37,6 @@ export class GUISystem {
72
37
  const view = new Input({ bg, textStyle: { fontSize: size, fill: { color: Color4B(255, 255, 255, 255) } } });
73
38
  component.node = entity.assign(new NodeComp(view, entity));
74
39
  });
75
- event_manager.subscribe(EventTypes.ComponentAdded, LabelComp, ({ entity, component }) => {
76
- // console.log('ComponentAddedEvent LabelComp', component)
77
- const node = new Text();
78
- // node.texture.rotate = 8
79
- node.style.fill = '#fff';
80
- component.node = entity.assign(new NodeComp(node, entity));
81
- const { string = '', font = this.defaultFont, size = 64 } = component.props;
82
- if (font)
83
- component.font = font;
84
- component.size = size;
85
- component.string = string;
86
- });
87
- event_manager.subscribe(EventTypes.ComponentAdded, LabelOutlineComp, ({ entity, component }) => {
88
- const { color, width } = component.props;
89
- const node = entity.getComponent(NodeComp);
90
- if (node.instance instanceof Text) {
91
- node.instance.style.stroke = { color, width };
92
- }
93
- });
94
- event_manager.subscribe(EventTypes.ComponentAdded, LabelShadowComp, ({ entity, component }) => {
95
- const { color, blur } = component.props;
96
- const node = entity.getComponent(NodeComp);
97
- if (node.instance instanceof Text) {
98
- node.instance.style.dropShadow = { color, blur, alpha: 1, angle: 0, distance: 0 };
99
- }
100
- });
101
40
  // event_manager.subscribe(EventTypes.ComponentAdded, BlockInputEventsComp), this);
102
41
  }
103
42
  }
@@ -0,0 +1,4 @@
1
+ export * from './GUIComponent';
2
+ export * from './GUISystem';
3
+ export declare function setupGUI(): void;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gui/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAE3B,wBAAgB,QAAQ,SAIvB"}
@@ -0,0 +1,9 @@
1
+ import { GameWorld } from '..';
2
+ import { GUISystem } from './GUISystem';
3
+ export * from './GUIComponent';
4
+ export * from './GUISystem';
5
+ export function setupGUI() {
6
+ const world = GameWorld.Instance;
7
+ world.systems.add(GUISystem);
8
+ world.systems.configureOnce(GUISystem);
9
+ }
package/dist/index.d.ts CHANGED
@@ -6,11 +6,9 @@ export * from './components/BaseComponent';
6
6
  export * from './components/NodeComp';
7
7
  export * from './components/Scene';
8
8
  export * from './core';
9
- export * from './gui/GUIComponent';
10
- export * from './gui/GUISystem';
9
+ export * from './gui';
11
10
  export * from './helper/utils';
12
- export * from './norender/NoRenderComponent';
13
- export * from './norender/Touch';
11
+ export * from './norender';
14
12
  export * from './render/RenderComponent';
15
13
  export * from './render/RenderSystem';
16
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA"}
package/dist/index.js CHANGED
@@ -6,10 +6,8 @@ export * from './components/BaseComponent';
6
6
  export * from './components/NodeComp';
7
7
  export * from './components/Scene';
8
8
  export * from './core';
9
- export * from './gui/GUIComponent';
10
- export * from './gui/GUISystem';
9
+ export * from './gui';
11
10
  export * from './helper/utils';
12
- export * from './norender/NoRenderComponent';
13
- export * from './norender/Touch';
11
+ export * from './norender';
14
12
  export * from './render/RenderComponent';
15
13
  export * from './render/RenderSystem';
@@ -1,3 +1,4 @@
1
+ import { BaseComponentProps } from '..';
1
2
  import { NoRenderComponentX } from '../components/BaseComponent';
2
3
  import { NodeComp } from '../components/NodeComp';
3
4
  import { Touch } from './Touch';
@@ -7,7 +8,7 @@ export interface EventMap {
7
8
  }
8
9
  export type TouchEventCallback = (touch?: Touch, node?: NodeComp) => void;
9
10
  export declare class EventRegister extends NoRenderComponentX {
10
- events: EventMap;
11
+ private events;
11
12
  on(name: string, callback: EventCallbackType, target?: any): void;
12
13
  off(name: string, callback?: EventCallbackType, target?: any): any;
13
14
  emit(name: string, ...params: any): void;
@@ -33,5 +34,14 @@ export declare class ExtraDataComp extends NoRenderComponentX<ExtraDataProps> {
33
34
  getData<T>(key: string): T;
34
35
  setData<T>(key: string, val: T): void;
35
36
  }
37
+ interface ButtonCompProps extends BaseComponentProps<ButtonComp> {
38
+ normalImage?: string;
39
+ selectedImage?: string;
40
+ disableImage?: string;
41
+ zoomScale?: number;
42
+ onPress: (target: ButtonComp) => void;
43
+ }
44
+ export declare class ButtonComp extends NoRenderComponentX<ButtonCompProps> {
45
+ }
36
46
  export {};
37
47
  //# sourceMappingURL=NoRenderComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoRenderComponent.d.ts","sourceRoot":"","sources":["../../src/norender/NoRenderComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,OAAA,KAAK,IAAI,CAAA;AACjD,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAA;AAEzE,qBAAa,aAAc,SAAQ,kBAAkB;IACnD,MAAM,EAAE,QAAQ,CAAK;IAErB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,GAAG;IAS1D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,GAAG;IAK5D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG;CAKlC;AAED,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B,aAAa,CAAC,EAAE,kBAAkB,CAAA;CACnC;AACD,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,eAAe,CAAC;IACzE,QAAQ,EAAE,aAAa,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,GAAG,CAAA;CACX;AACD,qBAAa,aAAc,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IACnE,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAK;IAEjC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;IAG1B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAG/B"}
1
+ {"version":3,"file":"NoRenderComponent.d.ts","sourceRoot":"","sources":["../../src/norender/NoRenderComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,OAAA,KAAK,IAAI,CAAA;AACjD,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAA;AAEzE,qBAAa,aAAc,SAAQ,kBAAkB;IACnD,OAAO,CAAC,MAAM,CAAe;IAE7B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,GAAG;IAS1D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,GAAG;IAK5D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG;CAKlC;AAED,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B,aAAa,CAAC,EAAE,kBAAkB,CAAA;CACnC;AACD,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,eAAe,CAAC;IACzE,QAAQ,EAAE,aAAa,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,GAAG,CAAA;CACX;AACD,qBAAa,aAAc,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IACnE,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAK;IAEjC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;IAG1B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAG/B;AAED,UAAU,eAAgB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AACD,qBAAa,UAAW,SAAQ,kBAAkB,CAAC,eAAe,CAAC;CAAG"}
@@ -36,3 +36,5 @@ export class ExtraDataComp extends NoRenderComponentX {
36
36
  this.data[key] = val;
37
37
  }
38
38
  }
39
+ export class ButtonComp extends NoRenderComponentX {
40
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"NoRenderSystem.d.ts","sourceRoot":"","sources":["../../src/norender/NoRenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAO7D,qBAAa,cAAe,YAAW,MAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,YAAY;CAwDtC"}
1
+ {"version":3,"file":"NoRenderSystem.d.ts","sourceRoot":"","sources":["../../src/norender/NoRenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAS7D,qBAAa,cAAe,YAAW,MAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,YAAY;CAkFtC"}
@@ -1,6 +1,8 @@
1
1
  import { EventTypes } from 'entityx-ts';
2
+ import { Button } from '@pixi/ui';
3
+ import { callFunc, easeBackIn, scaleTo, sequence } from 'pixi-action-ease';
2
4
  import { NodeComp } from '../components/NodeComp';
3
- import { ExtraDataComp, TouchEventRegister } from './NoRenderComponent';
5
+ import { ButtonComp, ExtraDataComp, TouchEventRegister } from './NoRenderComponent';
4
6
  import { Touch } from './Touch';
5
7
  export class NoRenderSystem {
6
8
  configure(event_manager) {
@@ -15,6 +17,7 @@ export class NoRenderSystem {
15
17
  touchComp.node = nodeComp;
16
18
  const container = nodeComp.instance;
17
19
  container.eventMode = 'static';
20
+ container.interactive = true;
18
21
  if (touchComp.props.onTouchStart) {
19
22
  container.on('pointerdown', (event) => {
20
23
  touchComp.props.onTouchStart(new Touch(event), nodeComp);
@@ -37,7 +40,7 @@ export class NoRenderSystem {
37
40
  }
38
41
  });
39
42
  event_manager.subscribe(EventTypes.ComponentRemoved, TouchEventRegister, ({ component }) => {
40
- console.log('ComponentRemovedEvent TouchEventRegister', component);
43
+ // console.log('ComponentRemovedEvent TouchEventRegister', component)
41
44
  const touchComp = component;
42
45
  const container = touchComp.node.instance;
43
46
  if (touchComp.props.onTouchStart) {
@@ -53,5 +56,27 @@ export class NoRenderSystem {
53
56
  container.removeListener('pointercancel');
54
57
  }
55
58
  });
59
+ event_manager.subscribe(EventTypes.ComponentAdded, ButtonComp, ({ entity, component }) => {
60
+ const nodeComp = entity.getComponent(NodeComp);
61
+ const { zoomScale = 1.2 } = component.props;
62
+ const button = new Button(nodeComp.instance);
63
+ component.node = nodeComp;
64
+ const lastScaleX = nodeComp.scaleX;
65
+ const lastScaleY = nodeComp.scaleY;
66
+ button.onPress.connect(() => {
67
+ if (!component.enabled)
68
+ return;
69
+ // console.log('onPress.connect')
70
+ const scale = scaleTo(0.3, zoomScale * lastScaleX, lastScaleY * zoomScale);
71
+ const scaleDown = scaleTo(0.3, lastScaleX, lastScaleY);
72
+ const seq = sequence(scale, callFunc(() => {
73
+ if (Object.prototype.hasOwnProperty.call(component.props, 'onPress')) {
74
+ component.props.onPress(component);
75
+ }
76
+ }), scaleDown);
77
+ const ease = easeBackIn(seq);
78
+ component.node.runAction(ease);
79
+ });
80
+ });
56
81
  }
57
82
  }
@@ -0,0 +1,3 @@
1
+ export * from './NoRenderComponent';
2
+ export * from './Touch';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/norender/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './NoRenderComponent';
2
+ export * from './Touch';
@@ -1,7 +1,7 @@
1
- import { Graphics, Sprite } from 'pixi.js';
1
+ import { Graphics, Point, Sprite, Text } from 'pixi.js';
2
2
  import { BaseComponentProps, Color4B, Vec2 } from '..';
3
3
  import { ComponentX } from '../components/BaseComponent';
4
- import { LoadingBarMode } from '../core/LoadingBar';
4
+ import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
5
5
  import { SpriteTypes } from './RenderSystem';
6
6
  export declare class NodeRender extends ComponentX {
7
7
  nodeName?: string;
@@ -38,5 +38,32 @@ interface MaskRenderProps extends BaseComponentProps<MaskRender> {
38
38
  }
39
39
  export declare class MaskRender extends ComponentX<MaskRenderProps> {
40
40
  }
41
+ interface LabelCompProps extends BaseComponentProps<LabelComp> {
42
+ font?: string;
43
+ string?: string;
44
+ size?: number;
45
+ outline?: [Color4B, number];
46
+ shadow?: [Color4B, number];
47
+ }
48
+ export declare class LabelComp extends ComponentX<LabelCompProps, Text> {
49
+ get string(): string;
50
+ set string(val: string);
51
+ get size(): number;
52
+ set size(val: number);
53
+ get font(): string;
54
+ set font(val: string);
55
+ }
56
+ interface ProgressTimerProps extends BaseComponentProps<ProgressTimerComp> {
57
+ spriteFrame: string;
58
+ fillType?: number;
59
+ fillRange?: number;
60
+ fillCenter?: Point;
61
+ isReverse?: boolean;
62
+ }
63
+ export declare class ProgressTimerComp extends ComponentX<ProgressTimerProps, ProgressTimer> {
64
+ getFillRange(): number;
65
+ setFillStart(val: number): void;
66
+ setFillRange(val: number): void;
67
+ }
41
68
  export {};
42
69
  //# sourceMappingURL=RenderComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../src/render/RenderComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAW,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,qBAAa,UAAW,SAAQ,UAAU;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,iBAAkB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;IAClE,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAA;CAI1B;AAED,qBAAa,YAAa,SAAQ,UAAU,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAcrE,IAAI,WAAW,WAEd;IAED,IAAI,WAAW,CAAC,KAAK,QAAA,EAkBpB;CACF;AACD,UAAU,mBAAoB,SAAQ,kBAAkB,CAAC,cAAc,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AACD,qBAAa,cAAe,SAAQ,UAAU,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IAK3E,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO;IAOzD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO;IAO9D,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO;IAKvD,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO;IAS5D,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO;IAIxC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO;IAK7C,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO;IAWpE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO;IAIzD,KAAK;CAGN;AAED,UAAU,eAAgB,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AACD,qBAAa,UAAW,SAAQ,UAAU,CAAC,eAAe,CAAC;CAAG"}
1
+ {"version":3,"file":"RenderComponent.d.ts","sourceRoot":"","sources":["../../src/render/RenderComponent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Texture } from 'pixi.js';
1
+ import { Assets, Text, Texture } from 'pixi.js';
2
2
  import { ComponentX } from '../components/BaseComponent';
3
3
  export class NodeRender extends ComponentX {
4
4
  }
@@ -101,3 +101,52 @@ export class GraphicsRender extends ComponentX {
101
101
  }
102
102
  export class MaskRender extends ComponentX {
103
103
  }
104
+ export class LabelComp extends ComponentX {
105
+ get string() {
106
+ return this.props.string;
107
+ }
108
+ set string(val) {
109
+ this.props.string = val;
110
+ if (!this.node)
111
+ return;
112
+ if (this.node.instance instanceof Text) {
113
+ this.node.instance.text = val;
114
+ }
115
+ }
116
+ get size() {
117
+ return this.props.size;
118
+ }
119
+ set size(val) {
120
+ this.props.size = val;
121
+ if (!this.node)
122
+ return;
123
+ if (this.node.instance instanceof Text) {
124
+ this.node.instance.style.fontSize = val;
125
+ }
126
+ }
127
+ get font() {
128
+ return this.props.font;
129
+ }
130
+ set font(val) {
131
+ this.props.font = val;
132
+ if (!this.node)
133
+ return;
134
+ // console.log('set font', val, Assets.get(val))
135
+ if (this.node.instance instanceof Text) {
136
+ if (Assets.get(val))
137
+ this.node.instance.style.fontFamily = Assets.get(val).family;
138
+ }
139
+ }
140
+ }
141
+ export class ProgressTimerComp extends ComponentX {
142
+ getFillRange() {
143
+ return this.node.instance.progress;
144
+ }
145
+ setFillStart(val) {
146
+ this.node.instance.fillCenter.x = val;
147
+ }
148
+ setFillRange(val) {
149
+ // console.log('setFillRange', this.node.instance);
150
+ this.node.instance.progress = val;
151
+ }
152
+ }
@@ -8,6 +8,7 @@ export declare enum SpriteTypes {
8
8
  ANIMATION = 5
9
9
  }
10
10
  export declare class RenderSystem implements System {
11
+ defaultFont: string;
11
12
  configure(event_manager: EventManager): void;
12
13
  }
13
14
  //# sourceMappingURL=RenderSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../src/render/RenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAM7D,oBAAY,WAAW;IACrB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,SAAS,IAAA;CACV;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,SAAS,CAAC,aAAa,EAAE,YAAY;CA+CtC"}
1
+ {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../src/render/RenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAO7D,oBAAY,WAAW;IACrB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,SAAS,IAAA;CACV;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,aAAa,EAAE,YAAY;CA4EtC"}
@@ -1,7 +1,8 @@
1
1
  import { EventTypes } from 'entityx-ts';
2
- import { Container, Graphics, Sprite } from 'pixi.js';
2
+ import { Container, Graphics, Sprite, Text } from 'pixi.js';
3
3
  import { NodeComp } from '..';
4
- import { GraphicsRender, MaskRender, NodeRender, SpriteRender } from './RenderComponent';
4
+ import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
5
+ import { GraphicsRender, LabelComp, MaskRender, NodeRender, ProgressTimerComp, SpriteRender } from './RenderComponent';
5
6
  export var SpriteTypes;
6
7
  (function (SpriteTypes) {
7
8
  SpriteTypes[SpriteTypes["SIMPLE"] = 0] = "SIMPLE";
@@ -49,6 +50,36 @@ export class RenderSystem {
49
50
  const node = new Graphics();
50
51
  component.node = entity.assign(new NodeComp(node, entity));
51
52
  });
53
+ event_manager.subscribe(EventTypes.ComponentAdded, ProgressTimerComp, ({ entity, component }) => {
54
+ // console.log(component, '.progress')
55
+ const { spriteFrame, fillCenter, fillRange = 0 } = component.props;
56
+ const node = new ProgressTimer(LoadingBarMode.BAR, spriteFrame);
57
+ if (fillCenter) {
58
+ node.fillCenter = fillCenter;
59
+ }
60
+ node.progress = fillRange * 100;
61
+ component.node = entity.assign(new NodeComp(node, entity));
62
+ });
63
+ event_manager.subscribe(EventTypes.ComponentAdded, LabelComp, ({ entity, component }) => {
64
+ // console.log('ComponentAddedEvent LabelComp', component)
65
+ const node = new Text();
66
+ // node.texture.rotate = 8
67
+ node.style.fill = '#fff';
68
+ component.node = entity.assign(new NodeComp(node, entity));
69
+ const { string = '', font = this.defaultFont, size = 64, outline, shadow } = component.props;
70
+ if (font)
71
+ component.font = font;
72
+ component.size = size;
73
+ component.string = string;
74
+ if (outline) {
75
+ const [color, width] = outline;
76
+ node.style.stroke = { color, width };
77
+ }
78
+ if (shadow) {
79
+ const [color, blur] = shadow;
80
+ node.style.dropShadow = { color, blur, alpha: 1, angle: 0, distance: 0 };
81
+ }
82
+ });
52
83
  event_manager.subscribe(EventTypes.ComponentRemoved, NodeComp, ({ component }) => {
53
84
  if (component) {
54
85
  component.instance.removeFromParent();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-engine/pixi",
3
- "version": "8.5.6",
3
+ "version": "8.6.3",
4
4
  "description": "safex pixi plugin",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,17 +17,17 @@
17
17
  "author": "",
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
- "@esotericsoftware/spine-core": "^4.2.87",
21
- "@pixi/ui": "^2.2.4",
20
+ "@esotericsoftware/spine-core": "^4.2.88",
21
+ "@pixi/ui": "^2.2.7",
22
22
  "box2d-wasm": "^7.0.0",
23
23
  "dragonbones-pixijs": "^1.0.5",
24
24
  "entityx-ts": "^2.2.1",
25
- "pixi-action-ease": "^3.2.3",
25
+ "pixi-action-ease": "^3.2.5",
26
26
  "pixi-tagged-text-plus": "0.0.1-next.2",
27
27
  "pixi.js": "8.11.0",
28
28
  "planck": "^1.4.2"
29
29
  },
30
30
  "devDependencies": {
31
- "typescript": "^5.8.3"
31
+ "typescript": "^5.9.2"
32
32
  }
33
33
  }
@@ -1,2 +0,0 @@
1
- type Float = number
2
- type Integer = number
@@ -1,15 +0,0 @@
1
- import { NodeComp } from "..";
2
-
3
- interface BaseComponentProps {
4
- $ref?: object;
5
- $refNode?: NodeComp<any>
6
- $push?: object[];
7
- node?: Partial<NodeComp>;
8
- }
9
-
10
- interface NodeCompProps {
11
- nodeName?: string
12
- }
13
-
14
- interface LoadingBarProps {
15
- }