@safe-engine/pixi 8.1.4 → 8.2.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 (164) hide show
  1. package/README.md +9 -3
  2. package/dist/@types/index.d.ts +2 -0
  3. package/dist/@types/safex.d.ts +168 -0
  4. package/dist/app.d.ts +1 -2
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +25 -24
  7. package/dist/base/EnhancedComponent.d.ts +25 -0
  8. package/dist/base/EnhancedComponent.d.ts.map +1 -0
  9. package/dist/base/EnhancedComponent.js +26 -0
  10. package/dist/base/gworld.d.ts +8 -0
  11. package/dist/base/gworld.d.ts.map +1 -0
  12. package/dist/base/gworld.js +16 -0
  13. package/dist/base/index.d.ts +4 -0
  14. package/dist/base/index.d.ts.map +1 -0
  15. package/dist/base/index.js +3 -0
  16. package/dist/base/utils.d.ts +6 -0
  17. package/dist/base/utils.d.ts.map +1 -0
  18. package/dist/base/utils.js +3 -0
  19. package/dist/collider/CollideComponent.d.ts +63 -0
  20. package/dist/collider/CollideComponent.d.ts.map +1 -0
  21. package/dist/collider/CollideComponent.js +236 -0
  22. package/dist/collider/CollideSystem.d.ts +26 -0
  23. package/dist/collider/CollideSystem.d.ts.map +1 -0
  24. package/dist/collider/CollideSystem.js +159 -0
  25. package/dist/collider/helper/Intersection.d.ts +7 -0
  26. package/dist/collider/helper/Intersection.d.ts.map +1 -0
  27. package/dist/collider/helper/Intersection.js +111 -0
  28. package/dist/collider/helper/utils.d.ts +3 -0
  29. package/dist/collider/helper/utils.d.ts.map +1 -0
  30. package/dist/collider/helper/utils.js +11 -0
  31. package/dist/collider/index.d.ts +3 -0
  32. package/dist/collider/index.d.ts.map +1 -0
  33. package/dist/collider/index.js +2 -0
  34. package/dist/components/BaseComponent.d.ts +6 -5
  35. package/dist/components/BaseComponent.d.ts.map +1 -1
  36. package/dist/components/BaseComponent.js +7 -9
  37. package/dist/components/GUIComponent.d.ts +22 -19
  38. package/dist/components/GUIComponent.d.ts.map +1 -1
  39. package/dist/components/GUIComponent.js +27 -44
  40. package/dist/components/NoRenderComponent.d.ts +33 -0
  41. package/dist/components/NodeComp.d.ts +13 -13
  42. package/dist/components/NodeComp.d.ts.map +1 -1
  43. package/dist/components/NodeComp.js +32 -28
  44. package/dist/components/RenderComponent.d.ts +7 -6
  45. package/dist/components/Scene.d.ts +2 -3
  46. package/dist/components/Scene.d.ts.map +1 -1
  47. package/dist/components/Scene.js +6 -10
  48. package/dist/core/Color.d.ts +1 -0
  49. package/dist/core/Color.d.ts.map +1 -1
  50. package/dist/core/Color.js +3 -6
  51. package/dist/core/LoadingBar.js +10 -15
  52. package/dist/core/NodePool.d.ts +9 -0
  53. package/dist/core/NodePool.d.ts.map +1 -0
  54. package/dist/core/NodePool.js +24 -0
  55. package/dist/core/Size.js +1 -4
  56. package/dist/core/director.d.ts +3 -0
  57. package/dist/core/director.d.ts.map +1 -0
  58. package/dist/core/director.js +7 -0
  59. package/dist/core/math.d.ts +4 -0
  60. package/dist/core/math.d.ts.map +1 -0
  61. package/dist/core/math.js +10 -0
  62. package/dist/dragonbones/DragonBonesComponent.d.ts +17 -0
  63. package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -0
  64. package/dist/dragonbones/DragonBonesComponent.js +18 -0
  65. package/dist/dragonbones/DragonBonesSystem.d.ts +6 -0
  66. package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -0
  67. package/dist/dragonbones/DragonBonesSystem.js +29 -0
  68. package/dist/dragonbones/index.d.ts +3 -0
  69. package/dist/dragonbones/index.d.ts.map +1 -0
  70. package/dist/dragonbones/index.js +2 -0
  71. package/dist/gui/GUIComponent.d.ts +99 -0
  72. package/dist/gui/GUIComponent.d.ts.map +1 -0
  73. package/dist/gui/GUIComponent.js +123 -0
  74. package/dist/{systems → gui}/GUISystem.d.ts +1 -1
  75. package/dist/gui/GUISystem.d.ts.map +1 -0
  76. package/dist/gui/GUISystem.js +100 -0
  77. package/dist/helper/html-text-parser.d.ts +19 -29
  78. package/dist/helper/html-text-parser.d.ts.map +1 -1
  79. package/dist/helper/html-text-parser.js +57 -346
  80. package/dist/helper/utils.d.ts +2 -3
  81. package/dist/helper/utils.d.ts.map +1 -1
  82. package/dist/helper/utils.js +18 -23
  83. package/dist/index.d.ts +16 -6
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +22 -28
  86. package/dist/norender/NoRenderComponent.d.ts +33 -0
  87. package/dist/norender/NoRenderComponent.d.ts.map +1 -0
  88. package/dist/norender/NoRenderComponent.js +50 -0
  89. package/dist/norender/NoRenderSystem.d.ts +5 -0
  90. package/dist/norender/NoRenderSystem.d.ts.map +1 -0
  91. package/dist/norender/NoRenderSystem.js +57 -0
  92. package/dist/planck/PhysicsComponent.d.ts +37 -0
  93. package/dist/planck/PhysicsComponent.d.ts.map +1 -0
  94. package/dist/planck/PhysicsComponent.js +52 -0
  95. package/dist/planck/PhysicsSprite.d.ts +16 -0
  96. package/dist/planck/PhysicsSprite.d.ts.map +1 -0
  97. package/dist/planck/PhysicsSprite.js +31 -0
  98. package/dist/planck/PhysicsSystem.d.ts +20 -0
  99. package/dist/planck/PhysicsSystem.d.ts.map +1 -0
  100. package/dist/planck/PhysicsSystem.js +187 -0
  101. package/dist/planck/index.d.ts +4 -0
  102. package/dist/planck/index.d.ts.map +1 -0
  103. package/dist/planck/index.js +3 -0
  104. package/dist/render/RenderComponent.d.ts +52 -0
  105. package/dist/render/RenderComponent.d.ts.map +1 -0
  106. package/dist/render/RenderComponent.js +104 -0
  107. package/dist/render/RenderSystem.d.ts.map +1 -0
  108. package/dist/render/RenderSystem.js +65 -0
  109. package/dist/spine/SpineComponent.d.ts +10 -0
  110. package/dist/spine/SpineComponent.d.ts.map +1 -0
  111. package/dist/spine/SpineComponent.js +3 -0
  112. package/dist/spine/SpineSystem.d.ts +5 -0
  113. package/dist/spine/SpineSystem.d.ts.map +1 -0
  114. package/dist/spine/SpineSystem.js +25 -0
  115. package/dist/spine/index.d.ts +3 -0
  116. package/dist/spine/index.d.ts.map +1 -0
  117. package/dist/spine/index.js +2 -0
  118. package/dist/spine/lib/BatchableSpineSlot.d.ts +59 -0
  119. package/dist/spine/lib/BatchableSpineSlot.d.ts.map +1 -0
  120. package/dist/spine/lib/BatchableSpineSlot.js +86 -0
  121. package/dist/spine/lib/Spine.d.ts +239 -0
  122. package/dist/spine/lib/Spine.d.ts.map +1 -0
  123. package/dist/spine/lib/Spine.js +628 -0
  124. package/dist/spine/lib/SpineDebugRenderer.d.ts +109 -0
  125. package/dist/spine/lib/SpineDebugRenderer.d.ts.map +1 -0
  126. package/dist/spine/lib/SpineDebugRenderer.js +474 -0
  127. package/dist/spine/lib/SpinePipe.d.ts +49 -0
  128. package/dist/spine/lib/SpinePipe.d.ts.map +1 -0
  129. package/dist/spine/lib/SpinePipe.js +148 -0
  130. package/dist/spine/lib/SpineTexture.d.ts +45 -0
  131. package/dist/spine/lib/SpineTexture.d.ts.map +1 -0
  132. package/dist/spine/lib/SpineTexture.js +114 -0
  133. package/dist/spine/lib/assets/atlasLoader.d.ts +34 -0
  134. package/dist/spine/lib/assets/atlasLoader.d.ts.map +1 -0
  135. package/dist/spine/lib/assets/atlasLoader.js +122 -0
  136. package/dist/spine/lib/assets/skeletonLoader.d.ts +30 -0
  137. package/dist/spine/lib/assets/skeletonLoader.d.ts.map +1 -0
  138. package/dist/spine/lib/assets/skeletonLoader.js +70 -0
  139. package/dist/spine/lib/darktint/DarkTintBatchGeometry.d.ts +33 -0
  140. package/dist/spine/lib/darktint/DarkTintBatchGeometry.d.ts.map +1 -0
  141. package/dist/spine/lib/darktint/DarkTintBatchGeometry.js +84 -0
  142. package/dist/spine/lib/darktint/DarkTintBatcher.d.ts +50 -0
  143. package/dist/spine/lib/darktint/DarkTintBatcher.d.ts.map +1 -0
  144. package/dist/spine/lib/darktint/DarkTintBatcher.js +131 -0
  145. package/dist/spine/lib/darktint/DarkTintShader.d.ts +33 -0
  146. package/dist/spine/lib/darktint/DarkTintShader.d.ts.map +1 -0
  147. package/dist/spine/lib/darktint/DarkTintShader.js +59 -0
  148. package/dist/spine/lib/darktint/darkTintBit.d.ts +51 -0
  149. package/dist/spine/lib/darktint/darkTintBit.d.ts.map +1 -0
  150. package/dist/spine/lib/darktint/darkTintBit.js +75 -0
  151. package/dist/spine/lib/index.d.ts +42 -0
  152. package/dist/spine/lib/index.d.ts.map +1 -0
  153. package/dist/spine/lib/index.js +41 -0
  154. package/dist/spine/lib/require-shim.d.ts +33 -0
  155. package/dist/spine/lib/require-shim.d.ts.map +1 -0
  156. package/dist/spine/lib/require-shim.js +38 -0
  157. package/package.json +13 -9
  158. package/dist/components/RenderComponent.d.ts.map +0 -1
  159. package/dist/components/RenderComponent.js +0 -58
  160. package/dist/systems/GUISystem.d.ts.map +0 -1
  161. package/dist/systems/GUISystem.js +0 -90
  162. package/dist/systems/RenderSystem.d.ts.map +0 -1
  163. package/dist/systems/RenderSystem.js +0 -67
  164. /package/dist/{systems → render}/RenderSystem.d.ts +0 -0
package/README.md CHANGED
@@ -1,4 +1,10 @@
1
1
  # Guide
2
- - components must be in `tsx` extension
3
- - `$ref` bind with current class property as string
4
- - every property start with `$` will reference to current class property as string
2
+ - all components must be extends from `ComponentX` or `NoRenderComponentX`
3
+ - `NoRenderComponentX` will append to component of parent node have `ComponentX`, `ComponentX` will be `addChild` to parent node
4
+ - `node` property represent node, and can pass properties to assign
5
+ - example ```<SpriteRender node={{ x: 5, y: 9 }} />```
6
+ - `$ref` bind component with current class property as string
7
+ - `$push` push component to list
8
+ - `Array(2).map(_, i)` iteration repeat component 2 times
9
+ - `Loading.listItems.map(item, i)` iteration in static property
10
+ - `listItems.map(item, i)` iteration in const variable
@@ -0,0 +1,2 @@
1
+ type Float = number
2
+ type Integer = number
@@ -0,0 +1,168 @@
1
+ import { ButtonComp, Collider, NodeComp, Point, TouchEventCallback, Vec2 } from "..";
2
+ import { Color4B } from "../core/Color";
3
+
4
+ interface BaseComponentProps {
5
+ $ref?: object;
6
+ $push?: object[];
7
+ node?: Partial<NodeComp>;
8
+ }
9
+
10
+ interface NodeCompProps {
11
+ nodeName?: string
12
+ }
13
+
14
+ interface SpriteRenderProps {
15
+ spriteFrame: string
16
+ }
17
+
18
+ interface GraphicsRenderProps {
19
+ lineWidth?: number
20
+ strokeColor?: Color4B
21
+ fillColor?: Color4B
22
+ }
23
+
24
+ interface MaskRenderProps {
25
+ type?: number
26
+ segments?: number
27
+ inverted?: boolean
28
+ }
29
+
30
+ interface ProgressTimerProps {
31
+ spriteFrame: string
32
+ fillType?: number
33
+ fillRange?: number
34
+ fillCenter?: Point
35
+ isReverse?: boolean
36
+ }
37
+
38
+ interface LoadingBarProps {
39
+ }
40
+
41
+ interface LabelCompProps {
42
+ font?: string
43
+ string?: string
44
+ size?: number
45
+ }
46
+
47
+ interface ScrollViewProps {
48
+ width: number
49
+ height: number
50
+ }
51
+
52
+ interface LabelOutlineCompProps {
53
+ color: Color4B
54
+ width: number
55
+ }
56
+
57
+ interface LabelShadowCompProps {
58
+ color: Color4B
59
+ blur: number
60
+ offset: Point
61
+ }
62
+
63
+ interface ColliderProps {
64
+ offset?: Point
65
+ tag?: number
66
+ enabled?: boolean
67
+ onCollisionEnter?: (other: Collider) => void
68
+ onCollisionExit?: (other: Collider) => void
69
+ onCollisionStay?: (other: Collider) => void
70
+ }
71
+
72
+ interface BoxColliderProps extends ColliderProps {
73
+ width: number
74
+ height: number
75
+ }
76
+
77
+ interface CircleColliderProps extends ColliderProps {
78
+ radius: number
79
+ }
80
+
81
+ interface PolygonColliderProps extends ColliderProps {
82
+ points: Array<Point>
83
+ }
84
+
85
+ interface SpineData {
86
+ atlas: string
87
+ skeleton: string
88
+ texture?: string
89
+ }
90
+ interface SpineSkeletonProps {
91
+ data: SpineData
92
+ skin?: string
93
+ animation?: string
94
+ timeScale?: number
95
+ loop?: boolean
96
+ }
97
+ interface DragonBonesData {
98
+ atlas: string
99
+ skeleton: string
100
+ texture: string
101
+ }
102
+ interface DragonBonesProps {
103
+ data: DragonBonesData
104
+ skin?: string
105
+ animation?: string
106
+ playTimes?: number
107
+ timeScale?: number
108
+ onAnimationStart?: (event: { name: string }) => void
109
+ onAnimationEnd?: (event: { name: string }) => void
110
+ onAnimationComplete?: (event: { name: string }) => void
111
+ }
112
+
113
+ interface ExtraDataProps {
114
+ key: string
115
+ value: any
116
+ }
117
+
118
+ interface ButtonCompProps {
119
+ normalImage?: string
120
+ selectedImage?: string
121
+ disableImage?: string
122
+ zoomScale?: number
123
+ onPress: (target: ButtonComp) => void
124
+ }
125
+
126
+ interface TouchEventProps {
127
+ onTouchStart?: TouchEventCallback
128
+ onTouchMove?: TouchEventCallback
129
+ onTouchEnd?: TouchEventCallback
130
+ onTouchCancel?: TouchEventCallback
131
+ }
132
+
133
+ export type BodyType = 'kinematic' | 'dynamic' | 'static'
134
+ interface RigidBodyProps {
135
+ type?: BodyType
136
+ density?: Float
137
+ restitution?: Float
138
+ friction?: Float
139
+ gravityScale?: Float
140
+ }
141
+
142
+ interface PhysicsMaterialProps {
143
+ friction?: number
144
+ restitution?: number
145
+ density?: number
146
+ }
147
+
148
+ interface ColliderPhysicsProps {
149
+ tag?: number
150
+ group?: number
151
+ offset?: Vec2
152
+ onCollisionEnter?: (other: Collider) => void
153
+ onCollisionExit?: (other: Collider) => void
154
+ onCollisionStay?: (other: Collider) => void
155
+ }
156
+
157
+ interface BoxColliderPhysicsProps extends ColliderPhysicsProps {
158
+ width: number
159
+ height: number
160
+ }
161
+
162
+ interface CircleColliderPhysicsProps extends ColliderPhysicsProps {
163
+ radius: number
164
+ }
165
+
166
+ interface PolygonColliderPhysicsProps extends ColliderPhysicsProps {
167
+ points: Array<Vec2>
168
+ }
package/dist/app.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { Constructor, System } from 'entityx-ts';
2
1
  import { Application } from 'pixi.js';
3
2
  export declare const app: Application<import("pixi.js").Renderer>;
4
3
  export declare function addGameCanvasTo(id?: string): Promise<void>;
@@ -6,5 +5,5 @@ export declare function setupResolution(designedResolution?: {
6
5
  width: number;
7
6
  height: number;
8
7
  }): void;
9
- export declare function startGameWithSystems(systemsList: Constructor<System>[]): void;
8
+ export declare function startGameSystems(): void;
10
9
  //# sourceMappingURL=app.d.ts.map
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,MAAM,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,eAAO,MAAM,GAAG,yCAAoB,CAAA;AAEpC,wBAAsB,eAAe,CAAC,EAAE,SAAS,iBAehD;AAED,wBAAgB,eAAe,CAAC,kBAAkB;;;CAA+B,QAKhF;AAYD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,QAWtE"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAUrC,eAAO,MAAM,GAAG,yCAAoB,CAAA;AAEpC,wBAAsB,eAAe,CAAC,EAAE,SAAS,iBAehD;AAED,wBAAgB,eAAe,CAAC,kBAAkB;;;CAA+B,QAKhF;AAaD,wBAAgB,gBAAgB,SAU/B"}
package/dist/app.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,18 +7,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.app = void 0;
13
- exports.addGameCanvasTo = addGameCanvasTo;
14
- exports.setupResolution = setupResolution;
15
- exports.startGameWithSystems = startGameWithSystems;
16
- const core_1 = require("@safe-engine/core");
17
- const pixi_js_1 = require("pixi.js");
18
- const pixi_action_ease_1 = require("pixi-action-ease");
19
- exports.app = new pixi_js_1.Application();
20
- function addGameCanvasTo() {
10
+ import { actionManager } from 'pixi-action-ease';
11
+ import { Application } from 'pixi.js';
12
+ import { GameWorld } from './base';
13
+ import { CollideSystem } from './collider';
14
+ import { DragonBonesSystem } from './dragonbones';
15
+ import { GUISystem } from './gui/GUISystem';
16
+ import { NoRenderSystem } from './norender/NoRenderSystem';
17
+ import { PhysicsSystem } from './planck';
18
+ import { RenderSystem } from './render/RenderSystem';
19
+ import { SpineSystem } from './spine';
20
+ export const app = new Application();
21
+ export function addGameCanvasTo() {
21
22
  return __awaiter(this, arguments, void 0, function* (id = 'game') {
22
- yield exports.app.init({
23
+ yield app.init({
23
24
  antialias: true,
24
25
  resolution: window.devicePixelRatio,
25
26
  resizeTo: window,
@@ -35,30 +36,30 @@ function addGameCanvasTo() {
35
36
  // GameWorld.Instance.setup(NodeComp, app.stage)
36
37
  });
37
38
  }
38
- function setupResolution(designedResolution = { width: 720, height: 1280 }) {
39
+ export function setupResolution(designedResolution = { width: 720, height: 1280 }) {
39
40
  const { width, height } = designedResolution;
40
- exports.app.renderer.resize(width, height);
41
+ app.renderer.resize(width, height);
41
42
  // app.stage.position.y = app.renderer.height / app.renderer.resolution
42
43
  // app.stage.scale.y = -1
43
44
  }
44
45
  function startGameLoop(world) {
45
46
  // Listen for frame updates
46
- exports.app.ticker.add(() => {
47
- const dt = exports.app.ticker.deltaMS * 0.001;
48
- pixi_action_ease_1.actionManager.update(dt);
47
+ app.ticker.add(() => {
48
+ const dt = app.ticker.deltaMS * 0.001;
49
+ actionManager.update(dt);
49
50
  world.update(dt);
50
51
  });
51
52
  // app.ticker.speed = 0.5
52
53
  }
53
- function startGameWithSystems(systemsList) {
54
- const world = core_1.GameWorld.Instance;
54
+ const systemsList = [RenderSystem, GUISystem, SpineSystem, DragonBonesSystem, CollideSystem, PhysicsSystem, NoRenderSystem];
55
+ export function startGameSystems() {
56
+ const world = GameWorld.Instance;
55
57
  systemsList.forEach(system => {
56
58
  world.systems.add(system);
57
- const sys = world.systemsMap[system.name];
58
- if (sys.update) {
59
- world.listUpdate.push(system);
60
- }
59
+ world.systems.configureOnce(system);
61
60
  });
62
- world.systems.configure();
61
+ world.listUpdate.push(CollideSystem);
62
+ world.listUpdate.push(PhysicsSystem);
63
63
  startGameLoop(world);
64
+ // console.log('startGameLoop', world.listUpdate)
64
65
  }
@@ -0,0 +1,25 @@
1
+ import { Constructor, Entity } from 'entityx-ts';
2
+ import { BaseComponentProps } from '../@types/safex';
3
+ export interface BaseNode<C> {
4
+ active: boolean;
5
+ entity: Entity;
6
+ instance: C;
7
+ addComponent<T extends EnhancedComponent>(instance: T): T;
8
+ getComponent<T extends ComponentType>(component: Constructor<T>): T;
9
+ getComponentsInChildren<T extends ComponentType>(component: Constructor<T>): T[];
10
+ getComponentInChildren<T extends ComponentType>(component: Constructor<T>): T;
11
+ }
12
+ export declare class EnhancedComponent<Props = Object, N extends BaseNode<any> = BaseNode<any>> {
13
+ constructor(data?: BaseComponentProps & Props);
14
+ node: N;
15
+ actionsMap: {
16
+ [key: string]: Animation;
17
+ };
18
+ addComponent<T extends EnhancedComponent>(instance: any): T;
19
+ getComponent<T extends ComponentType>(component: Constructor<T>): T;
20
+ getComponentsInChildren<T extends ComponentType>(component: Constructor<T>): T[];
21
+ getComponentInChildren<T extends ComponentType>(component: Constructor<T>): T;
22
+ isEqual(other: EnhancedComponent): boolean;
23
+ }
24
+ export type ComponentType = EnhancedComponent | BaseNode<any>;
25
+ //# sourceMappingURL=EnhancedComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancedComponent.d.ts","sourceRoot":"","sources":["../../src/base/EnhancedComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,CAAA;IACX,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACnE,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IAChF,sBAAsB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CAE9E;AAED,qBAAa,iBAAiB,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;gBACxE,IAAI,CAAC,EAAE,kBAAkB,GAAG,KAAK;IAQ7C,IAAI,EAAE,CAAC,CAAA;IACP,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAK;IAC7C,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,QAAQ,KAAA,GAAG,CAAC;IAGtD,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAGnE,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,CAAC,GAAG,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ export class EnhancedComponent {
2
+ constructor(data) {
3
+ this.actionsMap = {};
4
+ if (data) {
5
+ // console.log('constructor', this.constructor.name, data)
6
+ Object.keys(data).forEach((key) => {
7
+ this[key] = data[key];
8
+ });
9
+ }
10
+ }
11
+ addComponent(instance) {
12
+ return this.node.addComponent(instance);
13
+ }
14
+ getComponent(component) {
15
+ return this.node.getComponent(component);
16
+ }
17
+ getComponentsInChildren(component) {
18
+ return this.node.getComponentsInChildren(component);
19
+ }
20
+ getComponentInChildren(component) {
21
+ return this.node.getComponentInChildren(component);
22
+ }
23
+ isEqual(other) {
24
+ return this.node.entity.id === other.node.entity.id;
25
+ }
26
+ }
@@ -0,0 +1,8 @@
1
+ import { Constructor, System, World } from 'entityx-ts';
2
+ export declare class GameWorld extends World {
3
+ listUpdate: (System | Constructor<System>)[];
4
+ update(dt: number): void;
5
+ private static _instance;
6
+ static get Instance(): GameWorld;
7
+ }
8
+ //# sourceMappingURL=gworld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gworld.d.ts","sourceRoot":"","sources":["../../src/base/gworld.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvD,qBAAa,SAAU,SAAQ,KAAK;IAClC,UAAU,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAK;IACjD,MAAM,CAAC,EAAE,EAAE,MAAM;IAMjB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAW;IAEnC,WAAkB,QAAQ,cAGzB;CACF"}
@@ -0,0 +1,16 @@
1
+ import { World } from 'entityx-ts';
2
+ export class GameWorld extends World {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.listUpdate = [];
6
+ }
7
+ update(dt) {
8
+ this.listUpdate.forEach((system) => {
9
+ this.systems.update(system, dt);
10
+ });
11
+ }
12
+ static get Instance() {
13
+ // Do you need arguments? Make it a regular static method instead.
14
+ return this._instance || (this._instance = new this());
15
+ }
16
+ }
@@ -0,0 +1,4 @@
1
+ export * from './EnhancedComponent';
2
+ export * from './gworld';
3
+ export * from './utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './EnhancedComponent';
2
+ export * from './gworld';
3
+ export * from './utils';
@@ -0,0 +1,6 @@
1
+ import { Constructor } from 'entityx-ts';
2
+ import { EnhancedComponent } from '.';
3
+ export declare function instantiate<C extends Constructor<EnhancedComponent>, D>(Component: C & {
4
+ create?(data?: D): any;
5
+ }, data?: D): InstanceType<C>;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AAErC,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EACrE,SAAS,EAAE,CAAC,GAAG;IAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAC;CAAE,EACpC,IAAI,CAAC,EAAE,CAAC,GACP,YAAY,CAAC,CAAC,CAAC,CAEjB"}
@@ -0,0 +1,3 @@
1
+ export function instantiate(Component, data) {
2
+ return Component.create(data);
3
+ }
@@ -0,0 +1,63 @@
1
+ import { Graphics, Point, Rectangle, Size } from 'pixi.js';
2
+ import { BoxColliderProps, CircleColliderProps, PolygonColliderProps } from '../@types/safex';
3
+ import { NoRenderComponentX } from '../components/BaseComponent';
4
+ export declare class Collider extends NoRenderComponentX {
5
+ offset: Point;
6
+ tag: number;
7
+ enabled: boolean;
8
+ _worldPoints: Point[];
9
+ _worldPosition: Point;
10
+ _worldRadius: any;
11
+ _AABB: Rectangle;
12
+ _preAabb: Rectangle;
13
+ onCollisionEnter?: (other: Collider) => void;
14
+ onCollisionExit?: (other: Collider) => void;
15
+ onCollisionStay?: (other: Collider) => void;
16
+ update(dt: number, draw?: Graphics): void;
17
+ getAABB(): Rectangle;
18
+ get world(): {
19
+ points: Point[];
20
+ preAabb: Rectangle;
21
+ };
22
+ setOnCollisionEnter(cb: (other: Collider) => void): void;
23
+ setOnCollisionExit(cb: (other: Collider) => void): void;
24
+ setOnCollisionStay(cb: (other: Collider) => void): void;
25
+ }
26
+ export declare class BoxCollider extends Collider {
27
+ width: number;
28
+ height: number;
29
+ constructor(props: BoxColliderProps);
30
+ get size(): Size;
31
+ set size(s: Size);
32
+ update(dt: any, draw: Graphics): void;
33
+ }
34
+ export declare class CircleCollider extends Collider {
35
+ radius: number;
36
+ constructor(props: CircleColliderProps);
37
+ update(dt: any, draw: Graphics): void;
38
+ }
39
+ export declare class PolygonCollider extends Collider {
40
+ _points: Point[];
41
+ constructor(props: PolygonColliderProps);
42
+ get points(): Point[];
43
+ set points(points: Point[]);
44
+ update(dt: any, draw: Graphics): void;
45
+ }
46
+ export declare enum CollisionType {
47
+ NONE = 0,
48
+ ENTER = 1,
49
+ STAY = 2,
50
+ EXIT = 3
51
+ }
52
+ export declare class Contract {
53
+ _collider1: Collider;
54
+ _collider2: Collider;
55
+ _touching: boolean;
56
+ _isPolygonPolygon: boolean;
57
+ _isCircleCircle: boolean;
58
+ _isPolygonCircle: boolean;
59
+ constructor(collider1: Collider, collider2: Collider);
60
+ updateState(): CollisionType;
61
+ test(): boolean;
62
+ }
63
+ //# sourceMappingURL=CollideComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollideComponent.d.ts","sourceRoot":"","sources":["../../src/collider/CollideComponent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAiBhE,qBAAa,QAAS,SAAQ,kBAAkB;IAC9C,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,UAAO;IACd,YAAY,EAAE,KAAK,EAAE,CAAK;IAC1B,cAAc,EAAE,KAAK,CAAA;IACrB,YAAY,MAAA;IACZ,KAAK,EAAE,SAAS,CAA4B;IAC5C,QAAQ,EAAE,SAAS,CAA4B;IAC/C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC5C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAE3C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ;IAClC,OAAO;IAGP,IAAI,KAAK;;;MAKR;IACD,mBAAmB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI;IAIjD,kBAAkB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI;IAIhD,kBAAkB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI;CAIjD;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;gBACF,KAAK,EAAE,gBAAgB;IAInC,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,EAGf;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,QAAQ;CAkC1B;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,MAAM,EAAE,MAAM,CAAA;gBACF,KAAK,EAAE,mBAAmB;IAGtC,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,QAAQ;CAuB1B;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,OAAO,EAAE,KAAK,EAAE,CAAA;gBAEJ,KAAK,EAAE,oBAAoB;IAKvC,IAAI,MAAM,IAAI,KAAK,EAAE,CAIpB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAEzB;IAED,MAAM,CAAC,EAAE,KAAA,EAAE,IAAI,EAAE,QAAQ;CAsB1B;AAED,oBAAY,aAAa;IACvB,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;CACL;AASD,qBAAa,QAAQ;IACnB,UAAU,EAAE,QAAQ,CAAA;IACpB,UAAU,EAAE,QAAQ,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;gBAEb,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;IAsBpD,WAAW;IAiBX,IAAI;CAyBL"}