@urso/core 0.2.3-dev → 0.2.7

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 (147) hide show
  1. package/.babelrc +11 -11
  2. package/README.md +10 -10
  3. package/build/js/index.js +1 -1
  4. package/build/js/index.js.LICENSE.txt +41 -39
  5. package/package.json +52 -49
  6. package/src/js/app.js +76 -76
  7. package/src/js/components/_info.js +8 -8
  8. package/src/js/components/base/_info.js +3 -3
  9. package/src/js/components/base/controller.js +78 -78
  10. package/src/js/components/debug/_info.js +6 -6
  11. package/src/js/components/debug/controller.js +38 -38
  12. package/src/js/components/debug/coords.js +23 -23
  13. package/src/js/components/debug/fps.js +34 -34
  14. package/src/js/components/debug/template.js +33 -33
  15. package/src/js/components/deviceRotate/_info.js +3 -3
  16. package/src/js/components/deviceRotate/controller.js +86 -86
  17. package/src/js/components/fullscreen/_info.js +6 -6
  18. package/src/js/components/fullscreen/android.js +104 -104
  19. package/src/js/components/fullscreen/controller.js +64 -64
  20. package/src/js/components/fullscreen/desktop.js +49 -49
  21. package/src/js/components/fullscreen/ios.js +111 -111
  22. package/src/js/components/loader/_info.js +4 -4
  23. package/src/js/components/loader/controller.js +66 -66
  24. package/src/js/components/loader/template.js +70 -70
  25. package/src/js/components/soundInitialPopup/_info.js +3 -3
  26. package/src/js/components/soundInitialPopup/controller.js +42 -42
  27. package/src/js/components/soundInitialPopup/template.js +109 -109
  28. package/src/js/components/stateDriven/_info.js +3 -4
  29. package/src/js/components/stateDriven/controller.js +96 -96
  30. package/src/js/config/load.js +5 -5
  31. package/src/js/config/main.js +9 -9
  32. package/src/js/extra/_info.js +23 -22
  33. package/src/js/extra/browserEvents.js +32 -32
  34. package/src/js/index.js +8 -8
  35. package/src/js/lib/_info.js +13 -13
  36. package/src/js/lib/cache.js +98 -98
  37. package/src/js/lib/composition.js +89 -89
  38. package/src/js/lib/device.js +1276 -1276
  39. package/src/js/lib/helper.js +524 -513
  40. package/src/js/lib/loader.js +121 -121
  41. package/src/js/lib/localData.js +15 -15
  42. package/src/js/lib/logger.js +22 -22
  43. package/src/js/lib/math.js +20 -20
  44. package/src/js/lib/objectPool.js +54 -54
  45. package/src/js/lib/time.js +18 -18
  46. package/src/js/lib/tween.js +147 -147
  47. package/src/js/modules/_info.js +11 -11
  48. package/src/js/modules/assets/_info.js +7 -7
  49. package/src/js/modules/assets/baseModel.js +18 -18
  50. package/src/js/modules/assets/config.js +35 -35
  51. package/src/js/modules/assets/controller.js +37 -37
  52. package/src/js/modules/assets/models/_info.js +12 -12
  53. package/src/js/modules/assets/models/atlas.js +8 -8
  54. package/src/js/modules/assets/models/audiosprite.js +27 -27
  55. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  56. package/src/js/modules/assets/models/container.js +16 -16
  57. package/src/js/modules/assets/models/dragonBones.js +26 -26
  58. package/src/js/modules/assets/models/font.js +8 -8
  59. package/src/js/modules/assets/models/image.js +14 -14
  60. package/src/js/modules/assets/models/json.js +8 -8
  61. package/src/js/modules/assets/models/sound.js +14 -14
  62. package/src/js/modules/assets/models/spine.js +8 -8
  63. package/src/js/modules/assets/service.js +330 -330
  64. package/src/js/modules/instances/_info.js +3 -3
  65. package/src/js/modules/instances/controller.js +218 -218
  66. package/src/js/modules/logic/_info.js +5 -5
  67. package/src/js/modules/logic/buttons.js +120 -120
  68. package/src/js/modules/logic/config/_info.js +3 -3
  69. package/src/js/modules/logic/config/buttons.js +63 -63
  70. package/src/js/modules/logic/config/sounds.js +23 -23
  71. package/src/js/modules/logic/controller.js +48 -48
  72. package/src/js/modules/logic/sounds.js +96 -96
  73. package/src/js/modules/objects/_info.js +11 -11
  74. package/src/js/modules/objects/baseModel.js +161 -161
  75. package/src/js/modules/objects/cache.js +99 -99
  76. package/src/js/modules/objects/controller.js +115 -115
  77. package/src/js/modules/objects/create.js +246 -231
  78. package/src/js/modules/objects/find.js +140 -140
  79. package/src/js/modules/objects/models/_info.js +25 -20
  80. package/src/js/modules/objects/models/atlasImage.js +50 -50
  81. package/src/js/modules/objects/models/bitmapText.js +23 -23
  82. package/src/js/modules/objects/models/button.js +184 -184
  83. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  84. package/src/js/modules/objects/models/checkbox.js +95 -0
  85. package/src/js/modules/objects/models/collection.js +54 -54
  86. package/src/js/modules/objects/models/component.js +44 -44
  87. package/src/js/modules/objects/models/container.js +19 -19
  88. package/src/js/modules/objects/models/dragonBones.js +250 -250
  89. package/src/js/modules/objects/models/emitter.js +54 -54
  90. package/src/js/modules/objects/models/graphics.js +38 -38
  91. package/src/js/modules/objects/models/group.js +19 -19
  92. package/src/js/modules/objects/models/hitArea.js +104 -104
  93. package/src/js/modules/objects/models/image.js +34 -34
  94. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  95. package/src/js/modules/objects/models/mask.js +38 -38
  96. package/src/js/modules/objects/models/scrollbox.js +62 -0
  97. package/src/js/modules/objects/models/slider.js +199 -0
  98. package/src/js/modules/objects/models/spine.js +83 -83
  99. package/src/js/modules/objects/models/text.js +38 -38
  100. package/src/js/modules/objects/models/textInput.js +55 -0
  101. package/src/js/modules/objects/models/toggle.js +169 -0
  102. package/src/js/modules/objects/models/world.js +19 -19
  103. package/src/js/modules/objects/propertyAdapter.js +421 -416
  104. package/src/js/modules/objects/proxy.js +179 -179
  105. package/src/js/modules/objects/styles.js +116 -116
  106. package/src/js/modules/observer/_info.js +4 -4
  107. package/src/js/modules/observer/controller.js +99 -99
  108. package/src/js/modules/observer/events.js +32 -28
  109. package/src/js/modules/scenes/_info.js +8 -8
  110. package/src/js/modules/scenes/controller.js +34 -34
  111. package/src/js/modules/scenes/model.js +35 -35
  112. package/src/js/modules/scenes/pixiWrapper.js +194 -194
  113. package/src/js/modules/scenes/resolutions.js +161 -161
  114. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  115. package/src/js/modules/scenes/service.js +84 -84
  116. package/src/js/modules/soundManager/_info.js +3 -3
  117. package/src/js/modules/soundManager/controller.js +99 -99
  118. package/src/js/modules/soundManager/soundSprite.js +202 -202
  119. package/src/js/modules/statesManager/_info.js +12 -12
  120. package/src/js/modules/statesManager/action.js +55 -55
  121. package/src/js/modules/statesManager/actions/_info.js +3 -3
  122. package/src/js/modules/statesManager/all.js +23 -23
  123. package/src/js/modules/statesManager/configStates.js +71 -71
  124. package/src/js/modules/statesManager/controller.js +132 -132
  125. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  126. package/src/js/modules/statesManager/helper.js +27 -27
  127. package/src/js/modules/statesManager/race.js +75 -75
  128. package/src/js/modules/statesManager/sequence.js +47 -47
  129. package/src/js/modules/template/_info.js +6 -6
  130. package/src/js/modules/template/controller.js +28 -28
  131. package/src/js/modules/template/model.js +11 -11
  132. package/src/js/modules/template/service.js +125 -125
  133. package/src/js/modules/template/types.js +46 -41
  134. package/src/js/modules/transport/_info.js +8 -8
  135. package/src/js/modules/transport/baseConnectionType.js +24 -24
  136. package/src/js/modules/transport/config.js +22 -22
  137. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  138. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  139. package/src/js/modules/transport/connectionTypes/xhr.js +41 -41
  140. package/src/js/modules/transport/controller.js +48 -48
  141. package/src/js/modules/transport/decorator.js +16 -16
  142. package/src/js/modules/transport/service.js +138 -138
  143. package/src/js/templates/_info.js +4 -4
  144. package/src/js/templates/groups/_info.js +1 -1
  145. package/src/js/templates/scenes/_info.js +1 -1
  146. package/webpack.config.js +47 -47
  147. package/src/js/components/stateDriven/actionConfig.js +0 -7
@@ -1,194 +1,194 @@
1
- class ModulesScenesPixiWrapper {
2
- constructor() {
3
- this.singleton = true;
4
- this._renderer;
5
-
6
- this.scenes = {};
7
- this.world;
8
-
9
- this._root;
10
- this._loaderScene;
11
-
12
- this._loopStopped = false;
13
- this._loopPaused = false;
14
- this._loopLastCall = 0;
15
-
16
- this.loop = this.loop.bind(this);
17
- this.passiveCallIntervalId = null;
18
-
19
- this._mouseCoords = { x: 0, y: 0 };
20
- }
21
-
22
- init() {
23
- this._setPixiSettings();
24
-
25
- //define renderer
26
- PIXI.utils.skipHello();
27
- this.renderer = new PIXI.Renderer({ preserveDrawingBuffer: true, width: 1, height: 1 });
28
- document.body.appendChild(this.renderer.view);
29
-
30
- //root and world
31
- this._root = new PIXI.Container();
32
- this._createWorld();
33
-
34
- // setup interaction
35
- this.interaction = new PIXI.InteractionManager({ root: this._root, view: this.renderer.view });
36
-
37
- this._loaderScene = this.getInstance('Model');
38
- this._requestAnimFrame(this.loop);
39
-
40
- this.getInstance('Resolutions');
41
- }
42
-
43
- _setPixiSettings() {
44
- PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
45
- PIXI.settings.TEXT_RESOLUTION = 1;
46
-
47
- if (Urso.device.iOS || Urso.device.macOS)
48
- PIXI.settings.PRECISION_FRAGMENT = PIXI.PRECISION.HIGH;
49
- }
50
-
51
- _createWorld() {
52
- if (this.world)
53
- this._root.removeChild(this.world);
54
-
55
- this.world = new PIXI.Container();
56
- this._root.addChild(this.world);
57
- }
58
-
59
- _requestAnimFrame(loopFunction) {
60
- (() => {
61
- return window.requestAnimationFrame ||
62
- window.webkitRequestAnimationFrame ||
63
- window.mozRequestAnimationFrame ||
64
- window.oRequestAnimationFrame ||
65
- window.msRequestAnimationFrame ||
66
- function (/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
67
- window.setTimeout(callback, 0);
68
- };
69
- })()(loopFunction);
70
- }
71
-
72
- _getDeltaTime() {
73
- let newTime = Date.now();
74
- let deltaTime = newTime - this._loopLastCall;
75
- this._loopLastCall = newTime;
76
-
77
- return Urso.math.intMakeBetween(deltaTime, 0, 1000);
78
- }
79
-
80
- _getDeltaFrame(deltaTime) {
81
- return deltaTime * 60 / 1000;
82
- };
83
-
84
- loop() {
85
- if (this._loopStopped)
86
- return false;
87
-
88
- this._requestAnimFrame(this.loop);
89
-
90
- if (!this._loopPaused)
91
- this.update();
92
-
93
- return true;
94
- };
95
-
96
- update() {
97
- if (!this.currentScene || this.currentScene.isPaused())
98
- return;
99
-
100
- let deltaTime = this._getDeltaTime();
101
- let deltaFrame = this._getDeltaFrame(deltaTime);
102
- this.interaction.update(deltaFrame);
103
-
104
- this._checkMouse();
105
- this.emit(Urso.events.MODULES_SCENES_UPDATE, deltaTime);
106
-
107
- this.currentScene.update(deltaTime);
108
- this.currentScene.render();
109
- this.renderer.render(this._root);
110
- };
111
-
112
- //size
113
- resize(width, height) {
114
- this.renderer.resize(width, height);
115
- };
116
-
117
- setWorldScale(x, y) {
118
- this.world.scale.x = x;
119
- this.world.scale.y = y;
120
- }
121
-
122
- setCanvasWidth(val) {
123
- this.renderer.view.style.width = val + 'px';
124
- };
125
-
126
- setCanvasHeight(val) {
127
- this.renderer.view.style.height = val + 'px';
128
- };
129
-
130
- getPixiWorld() {
131
- return this.world;
132
- }
133
-
134
- setNewScene(model) {
135
- this._createWorld();
136
- this.currentScene = model;
137
- }
138
-
139
- _checkMouse() {
140
- let newCoords = this._getMouseCoords();
141
-
142
- if (Urso.helper.checkDeepEqual(this._mouseCoords, newCoords))
143
- return true;
144
-
145
- this._mouseCoords = newCoords;
146
- this.emit(Urso.events.MODULES_SCENES_MOUSE_NEW_POSITION, this._mouseCoords);
147
- };
148
-
149
- getCachedMouseCoords() {
150
- return this._mouseCoords;
151
- }
152
-
153
- _getMouseCoords() {
154
- const coords = {
155
- x: ~~(this.interaction.mouse.global.x / this.world.scale.x),
156
- y: ~~(this.interaction.mouse.global.y / this.world.scale.y)
157
- };
158
-
159
- coords.x = this._validateCoordinate(coords.x);
160
- coords.y = this._validateCoordinate(coords.y);
161
-
162
- return coords;
163
- };
164
-
165
- _validateCoordinate(c) {
166
- return c > 0 ? c : 0;
167
- }
168
-
169
- /**
170
- * reserve loop, when browser tab is inactive
171
- * @param {Boolean} isVisible
172
- */
173
- visibilityChangeHandler(isVisible) {
174
- if (isVisible) {
175
- if (this.passiveCallIntervalId) {
176
- clearInterval(this.passiveCallIntervalId);
177
- this.passiveCallIntervalId = null;
178
- return;
179
- }
180
- }
181
-
182
- this.passiveCallIntervalId = setInterval(() => {
183
- if (!this._loopStopped && !this._loopPaused) {
184
- this.update();
185
- }
186
- }, 16);
187
- }
188
-
189
- _subscribeOnce() {
190
- this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_VISIBILITYCHANGE, this.visibilityChangeHandler.bind(this), true);
191
- }
192
- }
193
-
194
- module.exports = ModulesScenesPixiWrapper;
1
+ class ModulesScenesPixiWrapper {
2
+ constructor() {
3
+ this.singleton = true;
4
+ this._renderer;
5
+
6
+ this.scenes = {};
7
+ this.world;
8
+
9
+ this._root;
10
+ this._loaderScene;
11
+
12
+ this._loopStopped = false;
13
+ this._loopPaused = false;
14
+ this._loopLastCall = 0;
15
+
16
+ this.loop = this.loop.bind(this);
17
+ this.passiveCallIntervalId = null;
18
+
19
+ this._mouseCoords = { x: 0, y: 0 };
20
+ }
21
+
22
+ init() {
23
+ this._setPixiSettings();
24
+
25
+ //define renderer
26
+ PIXI.utils.skipHello();
27
+ this.renderer = new PIXI.Renderer({ preserveDrawingBuffer: true, width: 1, height: 1 });
28
+ document.body.appendChild(this.renderer.view);
29
+
30
+ //root and world
31
+ this._root = new PIXI.Container();
32
+ this._createWorld();
33
+
34
+ // setup interaction
35
+ this.interaction = new PIXI.InteractionManager({ root: this._root, view: this.renderer.view });
36
+
37
+ this._loaderScene = this.getInstance('Model');
38
+ this._requestAnimFrame(this.loop);
39
+
40
+ this.getInstance('Resolutions');
41
+ }
42
+
43
+ _setPixiSettings() {
44
+ PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
45
+ PIXI.settings.TEXT_RESOLUTION = 1;
46
+
47
+ if (Urso.device.iOS || Urso.device.macOS)
48
+ PIXI.settings.PRECISION_FRAGMENT = PIXI.PRECISION.HIGH;
49
+ }
50
+
51
+ _createWorld() {
52
+ if (this.world)
53
+ this._root.removeChild(this.world);
54
+
55
+ this.world = new PIXI.Container();
56
+ this._root.addChild(this.world);
57
+ }
58
+
59
+ _requestAnimFrame(loopFunction) {
60
+ (() => {
61
+ return window.requestAnimationFrame ||
62
+ window.webkitRequestAnimationFrame ||
63
+ window.mozRequestAnimationFrame ||
64
+ window.oRequestAnimationFrame ||
65
+ window.msRequestAnimationFrame ||
66
+ function (/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
67
+ window.setTimeout(callback, 0);
68
+ };
69
+ })()(loopFunction);
70
+ }
71
+
72
+ _getDeltaTime() {
73
+ let newTime = Date.now();
74
+ let deltaTime = newTime - this._loopLastCall;
75
+ this._loopLastCall = newTime;
76
+
77
+ return Urso.math.intMakeBetween(deltaTime, 0, 1000);
78
+ }
79
+
80
+ _getDeltaFrame(deltaTime) {
81
+ return deltaTime * 60 / 1000;
82
+ };
83
+
84
+ loop() {
85
+ if (this._loopStopped)
86
+ return false;
87
+
88
+ this._requestAnimFrame(this.loop);
89
+
90
+ if (!this._loopPaused)
91
+ this.update();
92
+
93
+ return true;
94
+ };
95
+
96
+ update() {
97
+ if (!this.currentScene || this.currentScene.isPaused())
98
+ return;
99
+
100
+ let deltaTime = this._getDeltaTime();
101
+ let deltaFrame = this._getDeltaFrame(deltaTime);
102
+ this.interaction.update(deltaFrame);
103
+
104
+ this._checkMouse();
105
+ this.emit(Urso.events.MODULES_SCENES_UPDATE, deltaTime);
106
+
107
+ this.currentScene.update(deltaTime);
108
+ this.currentScene.render();
109
+ this.renderer.render(this._root);
110
+ };
111
+
112
+ //size
113
+ resize(width, height) {
114
+ this.renderer.resize(width, height);
115
+ };
116
+
117
+ setWorldScale(x, y) {
118
+ this.world.scale.x = x;
119
+ this.world.scale.y = y;
120
+ }
121
+
122
+ setCanvasWidth(val) {
123
+ this.renderer.view.style.width = val + 'px';
124
+ };
125
+
126
+ setCanvasHeight(val) {
127
+ this.renderer.view.style.height = val + 'px';
128
+ };
129
+
130
+ getPixiWorld() {
131
+ return this.world;
132
+ }
133
+
134
+ setNewScene(model) {
135
+ this._createWorld();
136
+ this.currentScene = model;
137
+ }
138
+
139
+ _checkMouse() {
140
+ let newCoords = this._getMouseCoords();
141
+
142
+ if (Urso.helper.checkDeepEqual(this._mouseCoords, newCoords))
143
+ return true;
144
+
145
+ this._mouseCoords = newCoords;
146
+ this.emit(Urso.events.MODULES_SCENES_MOUSE_NEW_POSITION, this._mouseCoords);
147
+ };
148
+
149
+ getCachedMouseCoords() {
150
+ return this._mouseCoords;
151
+ }
152
+
153
+ _getMouseCoords() {
154
+ const coords = {
155
+ x: ~~(this.interaction.mouse.global.x / this.world.scale.x),
156
+ y: ~~(this.interaction.mouse.global.y / this.world.scale.y)
157
+ };
158
+
159
+ coords.x = this._validateCoordinate(coords.x);
160
+ coords.y = this._validateCoordinate(coords.y);
161
+
162
+ return coords;
163
+ };
164
+
165
+ _validateCoordinate(c) {
166
+ return c > 0 ? c : 0;
167
+ }
168
+
169
+ /**
170
+ * reserve loop, when browser tab is inactive
171
+ * @param {Boolean} isVisible
172
+ */
173
+ visibilityChangeHandler(isVisible) {
174
+ if (isVisible) {
175
+ if (this.passiveCallIntervalId) {
176
+ clearInterval(this.passiveCallIntervalId);
177
+ this.passiveCallIntervalId = null;
178
+ return;
179
+ }
180
+ }
181
+
182
+ this.passiveCallIntervalId = setInterval(() => {
183
+ if (!this._loopStopped && !this._loopPaused) {
184
+ this.update();
185
+ }
186
+ }, 16);
187
+ }
188
+
189
+ _subscribeOnce() {
190
+ this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_VISIBILITYCHANGE, this.visibilityChangeHandler.bind(this), true);
191
+ }
192
+ }
193
+
194
+ module.exports = ModulesScenesPixiWrapper;