@urso/core 0.4.34 → 0.4.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/.babelrc +11 -11
  2. package/LICENSE +20 -20
  3. package/README.md +220 -220
  4. package/build/js/index.js +1 -1
  5. package/build/js/index.js.LICENSE.txt +32 -32
  6. package/package.json +51 -51
  7. package/src/js/app.js +78 -78
  8. package/src/js/components/_info.js +10 -10
  9. package/src/js/components/base/_info.js +3 -3
  10. package/src/js/components/base/controller.js +78 -78
  11. package/src/js/components/debug/_info.js +7 -7
  12. package/src/js/components/debug/controller.js +38 -38
  13. package/src/js/components/debug/coords.js +23 -23
  14. package/src/js/components/debug/fps.js +34 -34
  15. package/src/js/components/debug/template.js +55 -55
  16. package/src/js/components/debug/timescale.js +60 -60
  17. package/src/js/components/deviceRotate/_info.js +3 -3
  18. package/src/js/components/deviceRotate/controller.js +86 -86
  19. package/src/js/components/fullscreen/_info.js +6 -6
  20. package/src/js/components/fullscreen/android.js +104 -104
  21. package/src/js/components/fullscreen/controller.js +76 -76
  22. package/src/js/components/fullscreen/desktop.js +49 -49
  23. package/src/js/components/fullscreen/ios.js +115 -115
  24. package/src/js/components/layersSwitcher/_info.js +4 -4
  25. package/src/js/components/layersSwitcher/config.js +26 -26
  26. package/src/js/components/layersSwitcher/controller.js +34 -34
  27. package/src/js/components/loader/_info.js +4 -4
  28. package/src/js/components/loader/controller.js +66 -66
  29. package/src/js/components/loader/template.js +70 -70
  30. package/src/js/components/soundInitialPopup/_info.js +3 -3
  31. package/src/js/components/soundInitialPopup/controller.js +42 -42
  32. package/src/js/components/soundInitialPopup/template.js +109 -109
  33. package/src/js/components/stateDriven/_info.js +3 -3
  34. package/src/js/components/stateDriven/controller.js +118 -118
  35. package/src/js/config/load.js +5 -5
  36. package/src/js/config/main.js +10 -10
  37. package/src/js/extra/_info.js +24 -24
  38. package/src/js/extra/browserEvents.js +38 -38
  39. package/src/js/extra/pixiPatch.js +79 -79
  40. package/src/js/extra/setTimeout.js +7 -7
  41. package/src/js/index.js +8 -8
  42. package/src/js/lib/_info.js +13 -13
  43. package/src/js/lib/cache.js +105 -105
  44. package/src/js/lib/composition.js +85 -85
  45. package/src/js/lib/device.js +1286 -1286
  46. package/src/js/lib/helper.js +539 -539
  47. package/src/js/lib/loader.js +127 -127
  48. package/src/js/lib/localData.js +15 -15
  49. package/src/js/lib/logger.js +22 -22
  50. package/src/js/lib/math.js +35 -35
  51. package/src/js/lib/objectPool.js +54 -54
  52. package/src/js/lib/time.js +18 -18
  53. package/src/js/lib/tween.js +147 -147
  54. package/src/js/modules/_info.js +12 -12
  55. package/src/js/modules/assets/_info.js +7 -7
  56. package/src/js/modules/assets/baseModel.js +18 -18
  57. package/src/js/modules/assets/config.js +37 -37
  58. package/src/js/modules/assets/controller.js +46 -46
  59. package/src/js/modules/assets/models/_info.js +11 -11
  60. package/src/js/modules/assets/models/atlas.js +8 -8
  61. package/src/js/modules/assets/models/audiosprite.js +27 -27
  62. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  63. package/src/js/modules/assets/models/container.js +16 -16
  64. package/src/js/modules/assets/models/font.js +8 -8
  65. package/src/js/modules/assets/models/image.js +13 -13
  66. package/src/js/modules/assets/models/json.js +8 -8
  67. package/src/js/modules/assets/models/sound.js +14 -14
  68. package/src/js/modules/assets/models/spine.js +14 -14
  69. package/src/js/modules/assets/service.js +365 -365
  70. package/src/js/modules/i18n/_info.js +4 -4
  71. package/src/js/modules/i18n/config.js +17 -17
  72. package/src/js/modules/i18n/controller.js +78 -78
  73. package/src/js/modules/instances/_info.js +3 -3
  74. package/src/js/modules/instances/controller.js +251 -251
  75. package/src/js/modules/logic/_info.js +4 -4
  76. package/src/js/modules/logic/config/_info.js +2 -2
  77. package/src/js/modules/logic/config/sounds.js +23 -23
  78. package/src/js/modules/logic/controller.js +48 -48
  79. package/src/js/modules/logic/sounds.js +103 -96
  80. package/src/js/modules/objects/_info.js +11 -11
  81. package/src/js/modules/objects/baseModel.js +191 -191
  82. package/src/js/modules/objects/cache.js +99 -99
  83. package/src/js/modules/objects/controller.js +131 -131
  84. package/src/js/modules/objects/create.js +237 -237
  85. package/src/js/modules/objects/find.js +140 -140
  86. package/src/js/modules/objects/models/_info.js +25 -25
  87. package/src/js/modules/objects/models/atlasImage.js +50 -50
  88. package/src/js/modules/objects/models/bitmapText.js +39 -39
  89. package/src/js/modules/objects/models/button.js +189 -189
  90. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  91. package/src/js/modules/objects/models/checkbox.js +96 -96
  92. package/src/js/modules/objects/models/collection.js +54 -54
  93. package/src/js/modules/objects/models/component.js +44 -44
  94. package/src/js/modules/objects/models/container.js +19 -19
  95. package/src/js/modules/objects/models/emitter.js +54 -54
  96. package/src/js/modules/objects/models/graphics.js +38 -38
  97. package/src/js/modules/objects/models/group.js +19 -19
  98. package/src/js/modules/objects/models/hitArea.js +104 -104
  99. package/src/js/modules/objects/models/image.js +34 -34
  100. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  101. package/src/js/modules/objects/models/mask.js +38 -38
  102. package/src/js/modules/objects/models/nineSlicePlane.js +30 -30
  103. package/src/js/modules/objects/models/scrollbox.js +61 -61
  104. package/src/js/modules/objects/models/slider.js +253 -253
  105. package/src/js/modules/objects/models/spine.js +196 -196
  106. package/src/js/modules/objects/models/text.js +59 -59
  107. package/src/js/modules/objects/models/textInput.js +66 -66
  108. package/src/js/modules/objects/models/toggle.js +180 -180
  109. package/src/js/modules/objects/models/world.js +19 -19
  110. package/src/js/modules/objects/propertyAdapter.js +422 -422
  111. package/src/js/modules/objects/proxy.js +211 -211
  112. package/src/js/modules/objects/styles.js +119 -119
  113. package/src/js/modules/observer/_info.js +4 -4
  114. package/src/js/modules/observer/controller.js +99 -99
  115. package/src/js/modules/observer/events.js +44 -44
  116. package/src/js/modules/scenes/_info.js +8 -8
  117. package/src/js/modules/scenes/controller.js +103 -103
  118. package/src/js/modules/scenes/model.js +28 -28
  119. package/src/js/modules/scenes/pixiWrapper.js +237 -237
  120. package/src/js/modules/scenes/resolutions.js +173 -173
  121. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  122. package/src/js/modules/scenes/service.js +139 -139
  123. package/src/js/modules/soundManager/_info.js +3 -3
  124. package/src/js/modules/soundManager/controller.js +100 -99
  125. package/src/js/modules/soundManager/soundSprite.js +243 -205
  126. package/src/js/modules/statesManager/_info.js +12 -12
  127. package/src/js/modules/statesManager/action.js +60 -60
  128. package/src/js/modules/statesManager/actions/_info.js +3 -3
  129. package/src/js/modules/statesManager/all.js +23 -23
  130. package/src/js/modules/statesManager/configStates.js +71 -71
  131. package/src/js/modules/statesManager/controller.js +170 -170
  132. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  133. package/src/js/modules/statesManager/helper.js +27 -27
  134. package/src/js/modules/statesManager/race.js +75 -75
  135. package/src/js/modules/statesManager/sequence.js +47 -47
  136. package/src/js/modules/template/_info.js +6 -6
  137. package/src/js/modules/template/controller.js +28 -28
  138. package/src/js/modules/template/model.js +11 -11
  139. package/src/js/modules/template/service.js +137 -137
  140. package/src/js/modules/template/types.js +45 -45
  141. package/src/js/modules/transport/_info.js +8 -8
  142. package/src/js/modules/transport/baseConnectionType.js +24 -24
  143. package/src/js/modules/transport/config.js +13 -13
  144. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  145. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  146. package/src/js/modules/transport/connectionTypes/xhr.js +44 -44
  147. package/src/js/modules/transport/controller.js +48 -48
  148. package/src/js/modules/transport/decorator.js +17 -17
  149. package/src/js/modules/transport/service.js +153 -153
  150. package/src/js/templates/_info.js +4 -4
  151. package/src/js/templates/groups/_info.js +1 -1
  152. package/src/js/templates/scenes/_info.js +1 -1
  153. package/webpack.config.js +47 -47
@@ -47,114 +47,114 @@ object-assign
47
47
  */
48
48
 
49
49
  /*!
50
- * @pixi/constants - v6.2.1
51
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
50
+ * @pixi/constants - v6.3.0
51
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
52
52
  *
53
53
  * @pixi/constants is licensed under the MIT License.
54
54
  * http://www.opensource.org/licenses/mit-license
55
55
  */
56
56
 
57
57
  /*!
58
- * @pixi/core - v6.2.1
59
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
58
+ * @pixi/core - v6.3.0
59
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
60
60
  *
61
61
  * @pixi/core is licensed under the MIT License.
62
62
  * http://www.opensource.org/licenses/mit-license
63
63
  */
64
64
 
65
65
  /*!
66
- * @pixi/display - v6.2.1
67
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
66
+ * @pixi/display - v6.3.0
67
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
68
68
  *
69
69
  * @pixi/display is licensed under the MIT License.
70
70
  * http://www.opensource.org/licenses/mit-license
71
71
  */
72
72
 
73
73
  /*!
74
- * @pixi/extract - v6.2.1
75
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
74
+ * @pixi/extract - v6.3.0
75
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
76
76
  *
77
77
  * @pixi/extract is licensed under the MIT License.
78
78
  * http://www.opensource.org/licenses/mit-license
79
79
  */
80
80
 
81
81
  /*!
82
- * @pixi/filter-displacement - v6.2.1
83
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
82
+ * @pixi/filter-displacement - v6.3.0
83
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
84
84
  *
85
85
  * @pixi/filter-displacement is licensed under the MIT License.
86
86
  * http://www.opensource.org/licenses/mit-license
87
87
  */
88
88
 
89
89
  /*!
90
- * @pixi/loaders - v6.2.1
91
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
90
+ * @pixi/loaders - v6.3.0
91
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
92
92
  *
93
93
  * @pixi/loaders is licensed under the MIT License.
94
94
  * http://www.opensource.org/licenses/mit-license
95
95
  */
96
96
 
97
97
  /*!
98
- * @pixi/math - v6.2.1
99
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
98
+ * @pixi/math - v6.3.0
99
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
100
100
  *
101
101
  * @pixi/math is licensed under the MIT License.
102
102
  * http://www.opensource.org/licenses/mit-license
103
103
  */
104
104
 
105
105
  /*!
106
- * @pixi/mixin-get-child-by-name - v6.2.1
107
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
106
+ * @pixi/mixin-get-child-by-name - v6.3.0
107
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
108
108
  *
109
109
  * @pixi/mixin-get-child-by-name is licensed under the MIT License.
110
110
  * http://www.opensource.org/licenses/mit-license
111
111
  */
112
112
 
113
113
  /*!
114
- * @pixi/mixin-get-global-position - v6.2.1
115
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
114
+ * @pixi/mixin-get-global-position - v6.3.0
115
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
116
116
  *
117
117
  * @pixi/mixin-get-global-position is licensed under the MIT License.
118
118
  * http://www.opensource.org/licenses/mit-license
119
119
  */
120
120
 
121
121
  /*!
122
- * @pixi/polyfill - v6.2.1
123
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
122
+ * @pixi/polyfill - v6.3.0
123
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
124
124
  *
125
125
  * @pixi/polyfill is licensed under the MIT License.
126
126
  * http://www.opensource.org/licenses/mit-license
127
127
  */
128
128
 
129
129
  /*!
130
- * @pixi/prepare - v6.2.1
131
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
130
+ * @pixi/prepare - v6.3.0
131
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
132
132
  *
133
133
  * @pixi/prepare is licensed under the MIT License.
134
134
  * http://www.opensource.org/licenses/mit-license
135
135
  */
136
136
 
137
137
  /*!
138
- * @pixi/runner - v6.2.1
139
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
138
+ * @pixi/runner - v6.3.0
139
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
140
140
  *
141
141
  * @pixi/runner is licensed under the MIT License.
142
142
  * http://www.opensource.org/licenses/mit-license
143
143
  */
144
144
 
145
145
  /*!
146
- * @pixi/ticker - v6.2.1
147
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
146
+ * @pixi/ticker - v6.3.0
147
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
148
148
  *
149
149
  * @pixi/ticker is licensed under the MIT License.
150
150
  * http://www.opensource.org/licenses/mit-license
151
151
  */
152
152
 
153
153
  /*!
154
- * GSAP 3.7.1
154
+ * GSAP 3.10.2
155
155
  * https://greensock.com
156
156
  *
157
- * @license Copyright 2008-2021, GreenSock. All rights reserved.
157
+ * @license Copyright 2008-2022, GreenSock. All rights reserved.
158
158
  * Subject to the terms at https://greensock.com/standard-license or for
159
159
  * Club GreenSock members, the agreement issued with that membership.
160
160
  * @author: Jack Doyle, jack@greensock.com
@@ -179,8 +179,8 @@ object-assign
179
179
  */
180
180
 
181
181
  /*!
182
- * pixi-viewport - v4.34.3
183
- * Compiled Wed, 01 Dec 2021 19:28:04 UTC
182
+ * pixi-viewport - v4.34.4
183
+ * Compiled Wed, 22 Dec 2021 17:32:08 UTC
184
184
  *
185
185
  * pixi-viewport is licensed under the MIT License.
186
186
  * http://www.opensource.org/licenses/mit-license
@@ -189,8 +189,8 @@ object-assign
189
189
  */
190
190
 
191
191
  /*!
192
- * pixi.js - v6.2.1
193
- * Compiled Tue, 21 Dec 2021 19:56:15 UTC
192
+ * pixi.js - v6.3.0
193
+ * Compiled Wed, 23 Mar 2022 18:58:56 UTC
194
194
  *
195
195
  * pixi.js is licensed under the MIT License.
196
196
  * http://www.opensource.org/licenses/mit-license
package/package.json CHANGED
@@ -1,51 +1,51 @@
1
- {
2
- "name": "@urso/core",
3
- "version": "0.4.34",
4
- "description": "HTML5 game engine",
5
- "main": "build/js/index.js",
6
- "author": "Megbrimef",
7
- "license": "MIT",
8
- "scripts": {
9
- "build:prod": "webpack --config webpack.config.js --mode=production",
10
- "build:dev": "webpack --config webpack.config.js --mode=development"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "git+https://github.com/megbrimef/urso.git"
15
- },
16
- "keywords": [
17
- "game",
18
- "engine"
19
- ],
20
- "bugs": {
21
- "url": "https://github.com/megbrimef/urso/issues"
22
- },
23
- "homepage": "https://github.com/megbrimef/urso#readme",
24
- "dependencies": {
25
- "@pixi/filter-drop-shadow": "^3.2.0",
26
- "gsap": "^3.1.1",
27
- "howler": "^2.2.1",
28
- "pixi-particles": "^4.3.0",
29
- "pixi-projection": "0.3.15",
30
- "pixi-scrollbox": "^2.3.1",
31
- "pixi-spine": "^3.0.13",
32
- "pixi-text-input": "^1.0.6",
33
- "pixi-viewport": "^4.34.0",
34
- "pixi.js": "^6.2.0"
35
- },
36
- "devDependencies": {
37
- "@babel/core": "^7.12.10",
38
- "@babel/preset-env": "^7.12.11",
39
- "babel-loader": "^8.2.2",
40
- "copy-webpack-plugin": "^5.0.3",
41
- "exports-loader": "^0.7.0",
42
- "html-webpack-plugin": "^5.1.0",
43
- "script-loader": "^0.7.2",
44
- "source-map-loader": "^1.0.0",
45
- "string-replace-loader": "^3.0.3",
46
- "style-loader": "^0.23.1",
47
- "webpack": "^5.11.0",
48
- "webpack-cli": "^4.2.0",
49
- "webpack-dev-server": "^3.11.0"
50
- }
51
- }
1
+ {
2
+ "name": "@urso/core",
3
+ "version": "0.4.35",
4
+ "description": "HTML5 game engine",
5
+ "main": "build/js/index.js",
6
+ "author": "Megbrimef",
7
+ "license": "MIT",
8
+ "scripts": {
9
+ "build:prod": "webpack --config webpack.config.js --mode=production",
10
+ "build:dev": "webpack --config webpack.config.js --mode=development"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/megbrimef/urso.git"
15
+ },
16
+ "keywords": [
17
+ "game",
18
+ "engine"
19
+ ],
20
+ "bugs": {
21
+ "url": "https://github.com/megbrimef/urso/issues"
22
+ },
23
+ "homepage": "https://github.com/megbrimef/urso#readme",
24
+ "dependencies": {
25
+ "@pixi/filter-drop-shadow": "^3.2.0",
26
+ "gsap": "^3.1.1",
27
+ "howler": "^2.2.1",
28
+ "pixi-particles": "^4.3.0",
29
+ "pixi-projection": "0.3.15",
30
+ "pixi-scrollbox": "^2.3.1",
31
+ "pixi-spine": "^3.0.13",
32
+ "pixi-text-input": "^1.0.6",
33
+ "pixi-viewport": "^4.34.0",
34
+ "pixi.js": "^6.2.0"
35
+ },
36
+ "devDependencies": {
37
+ "@babel/core": "^7.12.10",
38
+ "@babel/preset-env": "^7.12.11",
39
+ "babel-loader": "^8.2.2",
40
+ "copy-webpack-plugin": "^5.0.3",
41
+ "exports-loader": "^0.7.0",
42
+ "html-webpack-plugin": "^5.1.0",
43
+ "script-loader": "^0.7.2",
44
+ "source-map-loader": "^1.0.0",
45
+ "string-replace-loader": "^3.0.3",
46
+ "style-loader": "^0.23.1",
47
+ "webpack": "^5.11.0",
48
+ "webpack-cli": "^4.2.0",
49
+ "webpack-dev-server": "^3.11.0"
50
+ }
51
+ }
package/src/js/app.js CHANGED
@@ -1,78 +1,78 @@
1
- class App {
2
- constructor() {
3
- this.version = 'APP_VERSION';
4
-
5
- this.setup = this.setup.bind(this);
6
- }
7
-
8
- setup() {
9
- this.sayHello();
10
-
11
- //helper must be first
12
- Urso.helper = new Urso.Core.Lib.Helper(); //helper functions
13
-
14
- //setup Instances
15
- let instances = new Urso.Core.Modules.Instances.Controller();
16
- Urso.getInstance = instances.getInstance;
17
- Urso.getByPath = instances.getByPath;
18
- Urso.getInstancesModes = instances.getModes;
19
- Urso.addInstancesMode = instances.addMode;
20
- Urso.removeInstancesMode = instances.removeMode;
21
-
22
- //build from extendingChain and merge all into Urso.Game
23
- Urso.Game = {};
24
- for (let extention of Urso.config.extendingChain)
25
- Urso.helper.mergeObjectsRecursive(Urso.Game, Urso.helper.recursiveGet(extention, window, {}), true);
26
-
27
- //(!)important we must use only Urso.Game from our code
28
-
29
- //observer pattern
30
- Urso.observer = Urso.getInstance('Modules.Observer.Controller');
31
-
32
- //Extra
33
- Urso.browserEvents = Urso.getInstance('Extra.BrowserEvents');
34
-
35
- //libs
36
- Urso.cache = Urso.getInstance('Lib.Cache'); //all assets cache
37
- Urso.device = Urso.getByPath('Lib.Device'); //all device info
38
- Urso.loader = Urso.getInstance('Lib.Loader'); //assets loader class
39
- Urso.localData = Urso.getInstance('Lib.LocalData'); //local data storage
40
- Urso.logger = Urso.getInstance('Lib.Logger'); //logger
41
- Urso.math = Urso.getInstance('Lib.Math'); //math functions
42
- Urso.time = Urso.getInstance('Lib.Time'); //time functions
43
- Urso.tween = Urso.getInstance('Lib.Tween'); //tween lib
44
-
45
- //Modules
46
- Urso.assets = Urso.getInstance('Modules.Assets.Controller');
47
- Urso.i18n = Urso.getInstance('Modules.I18n.Controller');
48
- Urso.transport = Urso.getInstance('Modules.Transport.Controller');
49
- Urso.logic = Urso.getInstance('Modules.Logic.Controller');
50
- Urso.objects = Urso.getInstance('Modules.Objects.Controller');
51
- Urso.scenes = Urso.getInstance('Modules.Scenes.Controller');
52
- Urso.soundManager = Urso.getInstance('Modules.SoundManager.Controller');
53
- Urso.statesManager = Urso.getInstance('Modules.StatesManager.Controller');
54
- Urso.template = Urso.getInstance('Modules.Template.Controller');
55
-
56
- //set title
57
- document.title = Urso.config.title;
58
-
59
- //device type mode
60
- Urso.addInstancesMode(!Urso.helper.mobileAndTabletCheck() ? 'desktop' : 'mobile');
61
-
62
- //App.run
63
- Urso.device.whenReady(() => {
64
- Urso.assets.updateQuality();
65
- Urso.getInstance('App').run();
66
- });
67
- }
68
-
69
- sayHello() {
70
- console.log(`%c ${String.fromCodePoint(0x1F43B)} Urso ${this.version} `, 'background: #222; color: #bada55');
71
- }
72
-
73
- run() {
74
- Urso.scenes.display(Urso.config.defaultScene);
75
- }
76
- }
77
-
78
- module.exports = App;
1
+ class App {
2
+ constructor() {
3
+ this.version = 'APP_VERSION';
4
+
5
+ this.setup = this.setup.bind(this);
6
+ }
7
+
8
+ setup() {
9
+ this.sayHello();
10
+
11
+ //helper must be first
12
+ Urso.helper = new Urso.Core.Lib.Helper(); //helper functions
13
+
14
+ //setup Instances
15
+ let instances = new Urso.Core.Modules.Instances.Controller();
16
+ Urso.getInstance = instances.getInstance;
17
+ Urso.getByPath = instances.getByPath;
18
+ Urso.getInstancesModes = instances.getModes;
19
+ Urso.addInstancesMode = instances.addMode;
20
+ Urso.removeInstancesMode = instances.removeMode;
21
+
22
+ //build from extendingChain and merge all into Urso.Game
23
+ Urso.Game = {};
24
+ for (let extention of Urso.config.extendingChain)
25
+ Urso.helper.mergeObjectsRecursive(Urso.Game, Urso.helper.recursiveGet(extention, window, {}), true);
26
+
27
+ //(!)important we must use only Urso.Game from our code
28
+
29
+ //observer pattern
30
+ Urso.observer = Urso.getInstance('Modules.Observer.Controller');
31
+
32
+ //Extra
33
+ Urso.browserEvents = Urso.getInstance('Extra.BrowserEvents');
34
+
35
+ //libs
36
+ Urso.cache = Urso.getInstance('Lib.Cache'); //all assets cache
37
+ Urso.device = Urso.getByPath('Lib.Device'); //all device info
38
+ Urso.loader = Urso.getInstance('Lib.Loader'); //assets loader class
39
+ Urso.localData = Urso.getInstance('Lib.LocalData'); //local data storage
40
+ Urso.logger = Urso.getInstance('Lib.Logger'); //logger
41
+ Urso.math = Urso.getInstance('Lib.Math'); //math functions
42
+ Urso.time = Urso.getInstance('Lib.Time'); //time functions
43
+ Urso.tween = Urso.getInstance('Lib.Tween'); //tween lib
44
+
45
+ //Modules
46
+ Urso.assets = Urso.getInstance('Modules.Assets.Controller');
47
+ Urso.i18n = Urso.getInstance('Modules.I18n.Controller');
48
+ Urso.transport = Urso.getInstance('Modules.Transport.Controller');
49
+ Urso.logic = Urso.getInstance('Modules.Logic.Controller');
50
+ Urso.objects = Urso.getInstance('Modules.Objects.Controller');
51
+ Urso.scenes = Urso.getInstance('Modules.Scenes.Controller');
52
+ Urso.soundManager = Urso.getInstance('Modules.SoundManager.Controller');
53
+ Urso.statesManager = Urso.getInstance('Modules.StatesManager.Controller');
54
+ Urso.template = Urso.getInstance('Modules.Template.Controller');
55
+
56
+ //set title
57
+ document.title = Urso.config.title;
58
+
59
+ //device type mode
60
+ Urso.addInstancesMode(!Urso.helper.mobileAndTabletCheck() ? 'desktop' : 'mobile');
61
+
62
+ //App.run
63
+ Urso.device.whenReady(() => {
64
+ Urso.assets.updateQuality();
65
+ Urso.getInstance('App').run();
66
+ });
67
+ }
68
+
69
+ sayHello() {
70
+ console.log(`%c ${String.fromCodePoint(0x1F43B)} Urso ${this.version} `, 'background: #222; color: #bada55');
71
+ }
72
+
73
+ run() {
74
+ Urso.scenes.display(Urso.config.defaultScene);
75
+ }
76
+ }
77
+
78
+ module.exports = App;
@@ -1,10 +1,10 @@
1
- Urso.Core.Components = {};
2
-
3
- require('./base/_info.js');
4
- require('./debug/_info.js');
5
- require('./deviceRotate/_info.js');
6
- require('./fullscreen/_info.js');
7
- require('./layersSwitcher/_info.js');
8
- require('./loader/_info.js');
9
- require('./soundInitialPopup/_info.js');
10
- require('./stateDriven/_info.js');
1
+ Urso.Core.Components = {};
2
+
3
+ require('./base/_info.js');
4
+ require('./debug/_info.js');
5
+ require('./deviceRotate/_info.js');
6
+ require('./fullscreen/_info.js');
7
+ require('./layersSwitcher/_info.js');
8
+ require('./loader/_info.js');
9
+ require('./soundInitialPopup/_info.js');
10
+ require('./stateDriven/_info.js');
@@ -1,3 +1,3 @@
1
- Urso.Core.Components.Base = {
2
- Controller: require('./controller.js')
3
- };
1
+ Urso.Core.Components.Base = {
2
+ Controller: require('./controller.js')
3
+ };
@@ -1,78 +1,78 @@
1
- class ComponentsBaseController {
2
-
3
- constructor(options) {
4
- this._templateName = 'Template';
5
- this._inputValidation(options);
6
-
7
- this.common = {
8
- find: null, //find functions inside component object in scene
9
- findAll: null,
10
- findOne: null,
11
- object: null //link to component object in scene
12
- };
13
-
14
- this.options = options;
15
- }
16
-
17
- /**
18
- * function for the component input params validation
19
- * must return as a result input structure
20
- * @returns {object}
21
- * @example
22
- * return {
23
- * param1Name: 'number',
24
- * param2Name: 'string'
25
- * }
26
- */
27
- _requiredOptionsModel() {
28
- //
29
- }
30
-
31
- _inputValidation(options) {
32
- //input options validation
33
- let optionsModel = this._requiredOptionsModel();
34
-
35
- if (optionsModel)
36
- for (let optionKey in optionsModel) {
37
- if (!options || typeof options[optionKey] !== optionsModel[optionKey])
38
- Urso.logger.error('Component params model error', this);
39
- }
40
- }
41
-
42
- loadUpdate() {
43
- //todo
44
- }
45
-
46
- assetsMount() {
47
- let template = this.getInstance(this._templateName);
48
- return { styles: template.styles, assets: template.assets };
49
- }
50
-
51
- objectsMount() {
52
- let template = this.getInstance(this._templateName);
53
- return template.objects;
54
- }
55
-
56
- create() {
57
- //main template was created, we can start access to our objects
58
- }
59
-
60
- /**
61
- * @param {Number} deltaTime - time from last update call
62
- */
63
- update(deltaTime) {
64
- //TODO
65
- //calls every browser cycle
66
- }
67
-
68
- _subscribeOnce() {
69
- //will contains only this.addListener
70
- }
71
-
72
- destroy() {
73
- //component will destroy after this function call
74
- }
75
-
76
- }
77
-
78
- module.exports = ComponentsBaseController;
1
+ class ComponentsBaseController {
2
+
3
+ constructor(options) {
4
+ this._templateName = 'Template';
5
+ this._inputValidation(options);
6
+
7
+ this.common = {
8
+ find: null, //find functions inside component object in scene
9
+ findAll: null,
10
+ findOne: null,
11
+ object: null //link to component object in scene
12
+ };
13
+
14
+ this.options = options;
15
+ }
16
+
17
+ /**
18
+ * function for the component input params validation
19
+ * must return as a result input structure
20
+ * @returns {object}
21
+ * @example
22
+ * return {
23
+ * param1Name: 'number',
24
+ * param2Name: 'string'
25
+ * }
26
+ */
27
+ _requiredOptionsModel() {
28
+ //
29
+ }
30
+
31
+ _inputValidation(options) {
32
+ //input options validation
33
+ let optionsModel = this._requiredOptionsModel();
34
+
35
+ if (optionsModel)
36
+ for (let optionKey in optionsModel) {
37
+ if (!options || typeof options[optionKey] !== optionsModel[optionKey])
38
+ Urso.logger.error('Component params model error', this);
39
+ }
40
+ }
41
+
42
+ loadUpdate() {
43
+ //todo
44
+ }
45
+
46
+ assetsMount() {
47
+ let template = this.getInstance(this._templateName);
48
+ return { styles: template.styles, assets: template.assets };
49
+ }
50
+
51
+ objectsMount() {
52
+ let template = this.getInstance(this._templateName);
53
+ return template.objects;
54
+ }
55
+
56
+ create() {
57
+ //main template was created, we can start access to our objects
58
+ }
59
+
60
+ /**
61
+ * @param {Number} deltaTime - time from last update call
62
+ */
63
+ update(deltaTime) {
64
+ //TODO
65
+ //calls every browser cycle
66
+ }
67
+
68
+ _subscribeOnce() {
69
+ //will contains only this.addListener
70
+ }
71
+
72
+ destroy() {
73
+ //component will destroy after this function call
74
+ }
75
+
76
+ }
77
+
78
+ module.exports = ComponentsBaseController;
@@ -1,7 +1,7 @@
1
- Urso.Core.Components.Debug = {
2
- Controller: require('./controller.js'),
3
- Coords: require('./coords.js'),
4
- Fps: require('./fps.js'),
5
- Template: require('./template.js'),
6
- Timescale: require('./timescale.js')
7
- };
1
+ Urso.Core.Components.Debug = {
2
+ Controller: require('./controller.js'),
3
+ Coords: require('./coords.js'),
4
+ Fps: require('./fps.js'),
5
+ Template: require('./template.js'),
6
+ Timescale: require('./timescale.js')
7
+ };