@safe-engine/cocos 2.5.12 → 2.5.14

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 (61) hide show
  1. package/dist/core/index.d.ts +6 -0
  2. package/dist/core/index.d.ts.map +1 -0
  3. package/dist/core/index.js +5 -0
  4. package/dist/dragonbones/PixiDragonBonesSprite.d.ts +19 -0
  5. package/dist/dragonbones/PixiDragonBonesSprite.d.ts.map +1 -0
  6. package/dist/dragonbones/PixiDragonBonesSprite.js +75 -0
  7. package/dist/gui/GUIComponent.d.ts +12 -0
  8. package/dist/gui/GUIComponent.d.ts.map +1 -1
  9. package/dist/gui/GUIComponent.js +16 -0
  10. package/dist/gui/GUISystem.d.ts +1 -0
  11. package/dist/gui/GUISystem.d.ts.map +1 -1
  12. package/dist/gui/GUISystem.js +6 -1
  13. package/dist/gworld/EnhancedComponent.d.ts +22 -0
  14. package/dist/gworld/EnhancedComponent.d.ts.map +1 -0
  15. package/dist/gworld/EnhancedComponent.js +44 -0
  16. package/dist/gworld/NodeComp.d.ts +153 -0
  17. package/dist/gworld/NodeComp.d.ts.map +1 -0
  18. package/dist/gworld/NodeComp.js +337 -0
  19. package/dist/gworld/NodePool.d.ts +9 -0
  20. package/dist/gworld/NodePool.d.ts.map +1 -0
  21. package/dist/gworld/NodePool.js +23 -0
  22. package/dist/gworld/Scene.d.ts +5 -0
  23. package/dist/gworld/Scene.d.ts.map +1 -0
  24. package/dist/gworld/Scene.js +14 -0
  25. package/dist/gworld/decorator.d.ts +8 -0
  26. package/dist/gworld/decorator.d.ts.map +1 -0
  27. package/dist/gworld/decorator.js +12 -0
  28. package/dist/gworld/index.d.ts +8 -0
  29. package/dist/gworld/index.d.ts.map +1 -0
  30. package/dist/gworld/index.js +14 -0
  31. package/dist/helper/action.d.ts +1 -0
  32. package/dist/helper/action.d.ts.map +1 -1
  33. package/dist/helper/action.js +3 -0
  34. package/dist/render/TiledSprite.d.ts +2 -0
  35. package/dist/render/TiledSprite.d.ts.map +1 -1
  36. package/dist/render/TiledSprite.js +13 -7
  37. package/dist/render/shader.d.ts +1 -1
  38. package/dist/render/shader.d.ts.map +1 -1
  39. package/dist/render/shader.js +2 -0
  40. package/dist/safex.d.ts +10 -0
  41. package/dist/safex.d.ts.map +1 -0
  42. package/dist/safex.js +1 -0
  43. package/dist/spine/CCSkeleton.d.ts +189 -0
  44. package/dist/spine/CCSkeleton.d.ts.map +1 -0
  45. package/dist/spine/CCSkeleton.js +320 -0
  46. package/dist/spine/CCSkeletonAnimation.d.ts +146 -0
  47. package/dist/spine/CCSkeletonAnimation.d.ts.map +1 -0
  48. package/dist/spine/CCSkeletonAnimation.js +311 -0
  49. package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts +2 -0
  50. package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts.map +1 -0
  51. package/dist/spine/CCSkeletonCanvasRenderCmd.js +228 -0
  52. package/dist/spine/CCSkeletonTexture.d.ts +25 -0
  53. package/dist/spine/CCSkeletonTexture.d.ts.map +1 -0
  54. package/dist/spine/CCSkeletonTexture.js +60 -0
  55. package/dist/spine/CCSkeletonWebGLRenderCmd.d.ts +28 -0
  56. package/dist/spine/CCSkeletonWebGLRenderCmd.d.ts.map +1 -0
  57. package/dist/spine/CCSkeletonWebGLRenderCmd.js +277 -0
  58. package/dist/spine/PixiSpineSprite.d.ts +19 -0
  59. package/dist/spine/PixiSpineSprite.d.ts.map +1 -0
  60. package/dist/spine/PixiSpineSprite.js +72 -0
  61. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ export * from './decorator';
2
+ export * from './EnhancedComponent';
3
+ export * from './NodeComp';
4
+ export * from './NodePool';
5
+ export * from './Scene';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './decorator';
2
+ export * from './EnhancedComponent';
3
+ export * from './NodeComp';
4
+ export * from './NodePool';
5
+ export * from './Scene';
@@ -0,0 +1,19 @@
1
+ import { PixiArmatureDisplay } from 'dragonbones-pixijs';
2
+ import { Application } from 'pixi.js';
3
+ export declare function loadDragonBonesAssets({ skeleton, atlas, texture }: {
4
+ skeleton: any;
5
+ atlas: any;
6
+ texture: any;
7
+ }): Promise<any>;
8
+ export declare class PixiDragonBonesSprite extends cc.Sprite {
9
+ _canvas: any;
10
+ _pixiApp: Application;
11
+ _texture: cc.Texture2D;
12
+ _config: any;
13
+ _armatureDisplay: PixiArmatureDisplay;
14
+ constructor(config: any);
15
+ _setupArmature(): void;
16
+ updateTexture(): void;
17
+ onExit(): void;
18
+ }
19
+ //# sourceMappingURL=PixiDragonBonesSprite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixiDragonBonesSprite.d.ts","sourceRoot":"","sources":["../../src/dragonbones/PixiDragonBonesSprite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAe,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAU,MAAM,SAAS,CAAA;AAE7C,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;;;;CAAA,gBAGjE;AAED,qBAAa,qBAAsB,SAAQ,EAAE,CAAC,MAAM;IAClD,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAA;IACtB,OAAO,MAAA;IACP,gBAAgB,EAAE,mBAAmB,CAAA;gBACzB,MAAM,KAAA;IA+BlB,cAAc;IAuBd,aAAa;IASb,MAAM;CAQP"}
@@ -0,0 +1,75 @@
1
+ import { PixiFactory } from 'dragonbones-pixijs';
2
+ import { Application, Assets } from 'pixi.js';
3
+ export function loadDragonBonesAssets({ skeleton, atlas, texture }) {
4
+ // console.log('loadDragonBonesAssets', skeleton, atlas, texture)
5
+ return Assets.load([skeleton, atlas, texture]);
6
+ }
7
+ export class PixiDragonBonesSprite extends cc.Sprite {
8
+ _canvas;
9
+ _pixiApp;
10
+ _texture;
11
+ _config;
12
+ _armatureDisplay;
13
+ constructor(config) {
14
+ super();
15
+ super.ctor(); // always call this for compatibility with cocos2dx JS Javascript class system
16
+ this._canvas = document.createElement('canvas');
17
+ this._canvas.width = config.width || 1024;
18
+ this._canvas.height = config.height || 1024;
19
+ this._pixiApp = new Application();
20
+ this._pixiApp.init({
21
+ view: this._canvas,
22
+ width: this._canvas.width,
23
+ height: this._canvas.height,
24
+ backgroundAlpha: 0, // nền trong suốt
25
+ // transparent: true, // bắt buộc để alpha hoạt động
26
+ clearBeforeRender: true, // xoá trước khi vẽ frame mới
27
+ preserveDrawingBuffer: true, // giúp lấy ảnh từ canvas
28
+ antialias: true,
29
+ });
30
+ this._texture = new cc.Texture2D();
31
+ this._texture.initWithElement(this._canvas);
32
+ this._texture.handleLoadedTexture();
33
+ this.initWithTexture(this._texture);
34
+ this._config = config;
35
+ this._armatureDisplay = null;
36
+ this._setupArmature();
37
+ // this.schedule(this.updateTexture, 1 / 30);
38
+ }
39
+ _setupArmature() {
40
+ const { skeleton, atlas, texture, playTimes, animationName, scale = 1 } = this._config;
41
+ const factory = PixiFactory.factory;
42
+ const atlasAsset = Assets.get(atlas);
43
+ const dragonData = factory.parseDragonBonesData(Assets.get(skeleton), atlasAsset.name);
44
+ factory.parseTextureAtlasData(Assets.get(atlas), Assets.get(texture), atlasAsset.name);
45
+ const { armatureNames } = dragonData;
46
+ const armatureName = armatureNames[0];
47
+ const display = factory.buildArmatureDisplay(armatureName, atlasAsset.name);
48
+ if (!display) {
49
+ console.error('Cannot build armature:', armatureName);
50
+ return;
51
+ }
52
+ display.animation.play(animationName, playTimes);
53
+ display.x = this._canvas.width / 2;
54
+ display.y = this._canvas.height / 2;
55
+ display.scale.set(scale);
56
+ this._pixiApp.stage.addChild(display);
57
+ this._armatureDisplay = display;
58
+ }
59
+ updateTexture() {
60
+ if (this._armatureDisplay && this._pixiApp.renderer && this._pixiApp.stage) {
61
+ this._pixiApp.renderer.render(this._pixiApp.stage);
62
+ this._texture.initWithElement(this._canvas);
63
+ this._texture.handleLoadedTexture();
64
+ this.setTexture(this._texture);
65
+ }
66
+ }
67
+ onExit() {
68
+ // this.unschedule(this.updateTexture);
69
+ this._pixiApp.destroy(true, { children: true });
70
+ this._canvas.remove();
71
+ this._armatureDisplay.destroy();
72
+ this._armatureDisplay = null;
73
+ super.onExit();
74
+ }
75
+ }
@@ -10,6 +10,7 @@ interface ButtonCompProps {
10
10
  normalImage?: string;
11
11
  selectedImage?: string;
12
12
  disableImage?: string;
13
+ param?: string;
13
14
  zoomScale?: number;
14
15
  onPress?: (target: ButtonComp) => void;
15
16
  }
@@ -72,5 +73,16 @@ interface WidgetCompProps {
72
73
  }
73
74
  export declare class WidgetComp extends ComponentX<WidgetCompProps & BaseComponentProps<WidgetComp>, cc.Node> {
74
75
  }
76
+ interface GridLayoutCompProps {
77
+ top?: Integer;
78
+ left?: Integer;
79
+ spaceX?: Integer;
80
+ spaceY?: Integer;
81
+ columns?: Integer;
82
+ }
83
+ export declare class GridLayoutComp extends ComponentX<GridLayoutCompProps & BaseComponentProps<GridLayoutComp>, cc.Node> {
84
+ start(): void;
85
+ doLayout(): void;
86
+ }
75
87
  export {};
76
88
  //# sourceMappingURL=GUIComponent.d.ts.map
@@ -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":"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"}
@@ -56,6 +56,22 @@ export class InputComp extends ComponentX {
56
56
  }
57
57
  export class WidgetComp extends ComponentX {
58
58
  }
59
+ export class GridLayoutComp extends ComponentX {
60
+ start() {
61
+ this.doLayout();
62
+ }
63
+ doLayout() {
64
+ const { columns = 5, spaceX = 0, spaceY = 0, left = 0, top = 0 } = this.props;
65
+ const children = this.node.instance.children;
66
+ children.forEach((child, index) => {
67
+ const row = Math.floor(index / columns);
68
+ const column = index % columns;
69
+ const x = left + column * (child.width + spaceX) + child.width / 2;
70
+ const y = -top - row * (child.height + spaceY) - child.height / 2;
71
+ child.setPosition(x, y);
72
+ });
73
+ }
74
+ }
59
75
  Object.defineProperty(ProgressTimerComp.prototype, 'render', { value: render });
60
76
  Object.defineProperty(LabelComp.prototype, 'render', { value: render });
61
77
  Object.defineProperty(ScrollViewComp.prototype, 'render', { value: render });
@@ -8,5 +8,6 @@ export declare class GUISystem implements System {
8
8
  private onAddScrollViewComp;
9
9
  private onAddInputComp;
10
10
  private onAddWidgetComp;
11
+ private onAddGridLayoutComp;
11
12
  }
12
13
  //# sourceMappingURL=GUISystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAA;AAMnF,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,aAAa,EAAE,YAAY;IASrC,OAAO,CAAC,eAAe,CAuBtB;IAED,OAAO,CAAC,sBAAsB,CAc7B;IAED,OAAO,CAAC,cAAc,CAerB;IAED,OAAO,CAAC,mBAAmB,CAU1B;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,eAAe,CAetB;CAKF"}
1
+ {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAA;AAMnF,qBAAa,SAAU,YAAW,MAAM;IACtC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,aAAa,EAAE,YAAY;IAUrC,OAAO,CAAC,eAAe,CAuBtB;IAED,OAAO,CAAC,sBAAsB,CAc7B;IAED,OAAO,CAAC,cAAc,CAerB;IAED,OAAO,CAAC,mBAAmB,CAU1B;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,eAAe,CAetB;IAED,OAAO,CAAC,mBAAmB,CAG1B;CAKF"}
@@ -2,7 +2,7 @@ import { EventTypes } from 'entityx-ts';
2
2
  import { NodeComp } from '../core/NodeComp';
3
3
  import { TouchEventRegister } from '../norender';
4
4
  import { Vec2 } from '../polyfills';
5
- import { ButtonComp, FillType, InputComp, LabelComp, ProgressTimerComp, ScrollViewComp, WidgetComp } from './GUIComponent';
5
+ import { ButtonComp, FillType, GridLayoutComp, InputComp, LabelComp, ProgressTimerComp, ScrollViewComp, WidgetComp } from './GUIComponent';
6
6
  export class GUISystem {
7
7
  static defaultFont;
8
8
  configure(event_manager) {
@@ -12,6 +12,7 @@ export class GUISystem {
12
12
  event_manager.subscribe(EventTypes.ComponentAdded, ScrollViewComp, this.onAddScrollViewComp);
13
13
  event_manager.subscribe(EventTypes.ComponentAdded, InputComp, this.onAddInputComp);
14
14
  event_manager.subscribe(EventTypes.ComponentAdded, WidgetComp, this.onAddWidgetComp);
15
+ event_manager.subscribe(EventTypes.ComponentAdded, GridLayoutComp, this.onAddGridLayoutComp);
15
16
  }
16
17
  onAddButtonComp = ({ entity, component: button }) => {
17
18
  const nodeComp = entity.getComponent(NodeComp);
@@ -108,4 +109,8 @@ export class GUISystem {
108
109
  nodeComp.instance.x = left + nodeComp.instance.width * nodeComp.instance.anchorX;
109
110
  }
110
111
  };
112
+ onAddGridLayoutComp = ({ entity, component }) => {
113
+ component.node = entity.getComponent(NodeComp);
114
+ component.doLayout();
115
+ };
111
116
  }
@@ -0,0 +1,22 @@
1
+ import { Constructor } from 'entityx-ts';
2
+ import { BaseComponentProps } from '../safex';
3
+ import { NodeComp } from './NodeComp';
4
+ export declare class EnhancedComponent<Props = object, N extends NodeComp<any> = NodeComp<any>> {
5
+ static hasRender: boolean;
6
+ props: Props;
7
+ node: N;
8
+ enabled: boolean;
9
+ constructor(data?: BaseComponentProps<EnhancedComponent> & Props);
10
+ init(data?: Props): void;
11
+ addComponent<T extends EnhancedComponent>(instance: T): T;
12
+ getComponent<T extends EnhancedComponent>(component: Constructor<T>): T;
13
+ schedule(callback: (arg: any) => void, interval: number, repeat?: number, delay?: number): void;
14
+ unschedule(callback: (arg: any) => void): void;
15
+ unscheduleAllCallbacks(): void;
16
+ scheduleOnce(callback: (arg: any) => void, delay: number, key?: string): void;
17
+ getComponentsInChildren<T extends ComponentType>(component: Constructor<T>): T[];
18
+ getComponentInChildren<T extends ComponentType>(component: Constructor<T>): T;
19
+ isEqual(other: EnhancedComponent): boolean;
20
+ }
21
+ export type ComponentType = EnhancedComponent | NodeComp;
22
+ //# sourceMappingURL=EnhancedComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancedComponent.d.ts","sourceRoot":"","sources":["../../src/gworld/EnhancedComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,iBAAiB,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IACpF,MAAM,CAAC,SAAS,UAAO;IACvB,KAAK,EAAE,KAAK,CAAY;IACxB,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,UAAO;gBACF,IAAI,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,KAAK;IAGhE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK;IASjB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAGzD,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAGvE,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAgC,EAAE,KAAK,SAAI;IAG5G,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI;IAGvC,sBAAsB;IAGtB,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAGtE,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAGhF,sBAAsB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAG7E,OAAO,CAAC,KAAK,EAAE,iBAAiB;CAGjC;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,44 @@
1
+ export class EnhancedComponent {
2
+ static hasRender = true;
3
+ props = {};
4
+ node;
5
+ enabled = true;
6
+ constructor(data) {
7
+ this.init(data);
8
+ }
9
+ init(data) {
10
+ if (data) {
11
+ // console.log('constructor', this.constructor.name, data)
12
+ Object.keys(data).forEach((key) => {
13
+ this.props[key] = data[key];
14
+ });
15
+ }
16
+ }
17
+ addComponent(instance) {
18
+ return this.node.addComponent(instance);
19
+ }
20
+ getComponent(component) {
21
+ return this.node.getComponent(component);
22
+ }
23
+ schedule(callback, interval, repeat = cc.macro.REPEAT_FOREVER, delay = 0) {
24
+ this.node.instance.schedule(callback.bind(this), interval, repeat, delay);
25
+ }
26
+ unschedule(callback) {
27
+ this.node.instance.unschedule(callback.bind(this));
28
+ }
29
+ unscheduleAllCallbacks() {
30
+ this.node.instance.unscheduleAllCallbacks();
31
+ }
32
+ scheduleOnce(callback, delay, key) {
33
+ this.node.instance.scheduleOnce(callback, delay, key);
34
+ }
35
+ getComponentsInChildren(component) {
36
+ return this.node.getComponentsInChildren(component);
37
+ }
38
+ getComponentInChildren(component) {
39
+ return this.node.getComponentInChildren(component);
40
+ }
41
+ isEqual(other) {
42
+ return this.node.entity.id === other.node.entity.id;
43
+ }
44
+ }
@@ -0,0 +1,153 @@
1
+ import { Constructor, Entity } from 'entityx-ts';
2
+ import { Vec2 } from '../polyfills';
3
+ import { ComponentType, EnhancedComponent } from './EnhancedComponent';
4
+ export type EventCallbackType = (...args: any[]) => void;
5
+ export declare class NodeComp<C extends cc.Node = cc.Node> {
6
+ entity: Entity;
7
+ instance: C;
8
+ parent: NodeComp;
9
+ children: NodeComp[];
10
+ name: string;
11
+ private _group;
12
+ private _active;
13
+ constructor(instance: C, entity: Entity);
14
+ get uuid(): number;
15
+ get position(): Readonly<Vec2>;
16
+ set position(val: Vec2);
17
+ set xy(val: [number, number]);
18
+ get posX(): number;
19
+ set posX(val: number);
20
+ get posY(): number;
21
+ set posY(val: number);
22
+ get scale(): number;
23
+ set scale(val: number);
24
+ get scaleX(): number;
25
+ set scaleX(val: number);
26
+ get scaleY(): number;
27
+ set scaleY(val: number);
28
+ get anchorX(): number;
29
+ set anchorX(val: number);
30
+ get anchorY(): number;
31
+ set anchorY(val: number);
32
+ /**
33
+ * Returns the angle of the node in degrees. 0 is the default rotation angle. Positive values rotate node clockwise.
34
+ * @function
35
+ * @return {Number} The rotation of the node in degrees.
36
+ */
37
+ get rotation(): number;
38
+ /**
39
+ *
40
+ * Sets the X angle of the node in degrees which performs a horizontal rotational skew.
41
+ * (support only in WebGL rendering mode)
42
+ * 0 is the default rotation angle.
43
+ * Positive values rotate node clockwise, and negative values for anti-clockwise.
44
+ *
45
+ * @param {Number} degrees The X rotation in degrees which performs a horizontal rotational skew.
46
+ */
47
+ set rotation(val: number);
48
+ get color(): cc.Color;
49
+ set color(val: cc.Color);
50
+ get opacity(): number;
51
+ set opacity(val: number);
52
+ get active(): boolean;
53
+ set active(val: boolean);
54
+ get group(): string | number;
55
+ set group(val: string | number);
56
+ get width(): number;
57
+ set width(val: number);
58
+ get height(): number;
59
+ set height(val: number);
60
+ get zIndex(): number;
61
+ set zIndex(val: number);
62
+ get childrenCount(): number;
63
+ destroy(): void;
64
+ addComponent<T extends ComponentType>(instance: T): T;
65
+ getComponent<T extends ComponentType>(component: Constructor<T>): T;
66
+ getComponentsInChildren<T extends ComponentType>(component: Constructor<T>): T[];
67
+ getComponentInChildren<T extends ComponentType>(component: Constructor<T>): T;
68
+ hasComponentInChildren<T extends ComponentType>(component: Constructor<T>): boolean;
69
+ getPercent(): number;
70
+ setPercent(val: number): void;
71
+ setTouchEnabled(enabled: boolean): void;
72
+ addTouchEventListener(cb: any): void;
73
+ convertToNodeSpace(point: cc.Point): {
74
+ x: number;
75
+ y: number;
76
+ equals(other: /*elided*/ any): boolean;
77
+ add(value: cc.Point | Vec2): /*elided*/ any;
78
+ addSelf(value: cc.Point | Vec2): /*elided*/ any;
79
+ sub(value: cc.Point | Vec2): /*elided*/ any;
80
+ mul(multiply: number): /*elided*/ any;
81
+ mulSelf(multiply: number): /*elided*/ any;
82
+ mag(): number;
83
+ normalizeSelf(): /*elided*/ any;
84
+ normalize(): /*elided*/ any;
85
+ cross(other: Vec2): number;
86
+ signAngle(other: Vec2): number;
87
+ lengthSqr(): number;
88
+ dot(other: Vec2): number;
89
+ angle(other: Vec2): number;
90
+ distance(other: /*elided*/ any): number;
91
+ };
92
+ convertToNodeSpaceAR(point: cc.Point): {
93
+ x: number;
94
+ y: number;
95
+ equals(other: /*elided*/ any): boolean;
96
+ add(value: cc.Point | Vec2): /*elided*/ any;
97
+ addSelf(value: cc.Point | Vec2): /*elided*/ any;
98
+ sub(value: cc.Point | Vec2): /*elided*/ any;
99
+ mul(multiply: number): /*elided*/ any;
100
+ mulSelf(multiply: number): /*elided*/ any;
101
+ mag(): number;
102
+ normalizeSelf(): /*elided*/ any;
103
+ normalize(): /*elided*/ any;
104
+ cross(other: Vec2): number;
105
+ signAngle(other: Vec2): number;
106
+ lengthSqr(): number;
107
+ dot(other: Vec2): number;
108
+ angle(other: Vec2): number;
109
+ distance(other: /*elided*/ any): number;
110
+ };
111
+ convertToWorldSpaceAR(point: cc.Vec2): {
112
+ x: number;
113
+ y: number;
114
+ equals(other: /*elided*/ any): boolean;
115
+ add(value: cc.Point | Vec2): /*elided*/ any;
116
+ addSelf(value: cc.Point | Vec2): /*elided*/ any;
117
+ sub(value: cc.Point | Vec2): /*elided*/ any;
118
+ mul(multiply: number): /*elided*/ any;
119
+ mulSelf(multiply: number): /*elided*/ any;
120
+ mag(): number;
121
+ normalizeSelf(): /*elided*/ any;
122
+ normalize(): /*elided*/ any;
123
+ cross(other: Vec2): number;
124
+ signAngle(other: Vec2): number;
125
+ lengthSqr(): number;
126
+ dot(other: Vec2): number;
127
+ angle(other: Vec2): number;
128
+ distance(other: /*elided*/ any): number;
129
+ };
130
+ getPosition(): cc.Point;
131
+ setPosition(x: number | cc.Vec2 | cc.Vec3 | cc.Point, y?: number): void;
132
+ setRotation(deg: number): void;
133
+ getRotation(): number;
134
+ setAnchorPoint(point: number | cc.Point, y?: number): void;
135
+ getAnchorPoint(): cc.Point;
136
+ getBoundingBox(): cc.Rect;
137
+ getContentSize(): cc.Size;
138
+ setContentSize(size: cc.Size | number, height?: number): void;
139
+ setColor(color: cc.Color): void;
140
+ setScale(scaleX: number, scaleY?: number): void;
141
+ runAction(atc: cc.ActionInterval): void;
142
+ stopAllActions(): void;
143
+ pauseAllActionsAndSchedule(): void;
144
+ resumeAllActionsAndSchedule(): void;
145
+ removeFromParent(cleanup?: boolean): void;
146
+ addChild(child: NodeComp, zOrder?: number, tag?: number): any;
147
+ removeAllChildren(cleanup?: any): void;
148
+ getData<T>(key: string): T;
149
+ setData<T extends Integer | Float | string>(key: string, value: T): void;
150
+ removeData(key: string): void;
151
+ resolveComponent(component: EnhancedComponent<object, NodeComp>): void;
152
+ }
153
+ //# sourceMappingURL=NodeComp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeComp.d.ts","sourceRoot":"","sources":["../../src/gworld/NodeComp.ts"],"names":[],"mappings":"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"}