@urso/core 0.8.20-dev → 0.9.0-dev

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 (134) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +227 -227
  3. package/build/js/index.js +77216 -2
  4. package/package.json +36 -50
  5. package/src/js/app.js +105 -104
  6. package/src/js/components/base/controller.js +76 -78
  7. package/src/js/components/debug/controller.js +39 -39
  8. package/src/js/components/debug/coords.js +23 -23
  9. package/src/js/components/debug/fps.js +36 -36
  10. package/src/js/components/debug/template.js +55 -55
  11. package/src/js/components/debug/timescale.js +60 -60
  12. package/src/js/components/deviceRotate/controller.js +95 -95
  13. package/src/js/components/editor/api.js +127 -127
  14. package/src/js/components/editor/controller.js +13 -13
  15. package/src/js/components/fullscreen/android.js +104 -104
  16. package/src/js/components/fullscreen/controller.js +76 -76
  17. package/src/js/components/fullscreen/desktop.js +49 -49
  18. package/src/js/components/fullscreen/ios.js +115 -115
  19. package/src/js/components/layersSwitcher/config.js +26 -26
  20. package/src/js/components/layersSwitcher/controller.js +36 -36
  21. package/src/js/components/loader/controller.js +66 -66
  22. package/src/js/components/loader/template.js +71 -71
  23. package/src/js/components/soundInitialPopup/controller.js +43 -43
  24. package/src/js/components/soundInitialPopup/template.js +110 -110
  25. package/src/js/components/stateDriven/controller.js +123 -123
  26. package/src/js/config/load.js +325 -194
  27. package/src/js/config/main.js +17 -17
  28. package/src/js/extra/browserEvents.js +57 -57
  29. package/src/js/extra/main.js +23 -25
  30. package/src/js/extra/pixiPatch.js +173 -171
  31. package/src/js/index.js +7 -7
  32. package/src/js/lib/cache.js +199 -125
  33. package/src/js/lib/composition.js +85 -85
  34. package/src/js/lib/device.js +1215 -1215
  35. package/src/js/lib/helper.js +678 -678
  36. package/src/js/lib/loader.js +216 -218
  37. package/src/js/lib/localData.js +29 -29
  38. package/src/js/lib/logger.js +69 -69
  39. package/src/js/lib/math.js +161 -161
  40. package/src/js/lib/objectPool.js +208 -208
  41. package/src/js/lib/time.js +19 -19
  42. package/src/js/lib/tween.js +153 -153
  43. package/src/js/modules/assets/baseModel.js +21 -21
  44. package/src/js/modules/assets/config.js +38 -38
  45. package/src/js/modules/assets/controller.js +65 -65
  46. package/src/js/modules/assets/models/atlas.js +19 -19
  47. package/src/js/modules/assets/models/audiosprite.js +28 -28
  48. package/src/js/modules/assets/models/bitmapFont.js +11 -11
  49. package/src/js/modules/assets/models/container.js +19 -19
  50. package/src/js/modules/assets/models/font.js +11 -11
  51. package/src/js/modules/assets/models/html.js +11 -11
  52. package/src/js/modules/assets/models/image.js +17 -17
  53. package/src/js/modules/assets/models/json.js +11 -11
  54. package/src/js/modules/assets/models/jsonAtlas.js +11 -11
  55. package/src/js/modules/assets/models/sound.js +17 -17
  56. package/src/js/modules/assets/models/spine.js +18 -17
  57. package/src/js/modules/assets/models/spineAtlas.js +11 -0
  58. package/src/js/modules/assets/service.js +564 -553
  59. package/src/js/modules/i18n/config.js +17 -17
  60. package/src/js/modules/i18n/controller.js +71 -71
  61. package/src/js/modules/instances/controller.js +357 -357
  62. package/src/js/modules/logic/config/sounds.js +23 -23
  63. package/src/js/modules/logic/controller.js +52 -52
  64. package/src/js/modules/logic/main.js +8 -8
  65. package/src/js/modules/logic/sounds.js +103 -103
  66. package/src/js/modules/objects/baseModel.js +205 -207
  67. package/src/js/modules/objects/cache.js +99 -99
  68. package/src/js/modules/objects/config.js +10 -10
  69. package/src/js/modules/objects/controller.js +139 -139
  70. package/src/js/modules/objects/find.js +58 -58
  71. package/src/js/modules/objects/models/bitmapText.js +56 -49
  72. package/src/js/modules/objects/models/button.js +208 -209
  73. package/src/js/modules/objects/models/buttonComposite.js +38 -38
  74. package/src/js/modules/objects/models/checkbox.js +100 -100
  75. package/src/js/modules/objects/models/collection.js +56 -54
  76. package/src/js/modules/objects/models/component.js +48 -48
  77. package/src/js/modules/objects/models/container.js +22 -22
  78. package/src/js/modules/objects/models/emitterFx.js +103 -114
  79. package/src/js/modules/objects/models/graphics.js +40 -40
  80. package/src/js/modules/objects/models/group.js +22 -22
  81. package/src/js/modules/objects/models/hitArea.js +187 -187
  82. package/src/js/modules/objects/models/image.js +36 -36
  83. package/src/js/modules/objects/models/imagesAnimation.js +115 -115
  84. package/src/js/modules/objects/models/mask.js +40 -40
  85. package/src/js/modules/objects/models/nineSlicePlane.js +32 -32
  86. package/src/js/modules/objects/models/slider.js +357 -357
  87. package/src/js/modules/objects/models/spine.js +354 -339
  88. package/src/js/modules/objects/models/text.js +70 -70
  89. package/src/js/modules/objects/models/toggle.js +186 -186
  90. package/src/js/modules/objects/models/world.js +22 -22
  91. package/src/js/modules/objects/pool.js +68 -68
  92. package/src/js/modules/objects/propertyAdapter.js +592 -592
  93. package/src/js/modules/objects/proxy.js +299 -298
  94. package/src/js/modules/objects/selector.js +136 -136
  95. package/src/js/modules/objects/service.js +255 -254
  96. package/src/js/modules/objects/styles.js +210 -210
  97. package/src/js/modules/observer/controller.js +168 -168
  98. package/src/js/modules/observer/events.js +51 -56
  99. package/src/js/modules/scenes/controller.js +126 -127
  100. package/src/js/modules/scenes/model.js +28 -28
  101. package/src/js/modules/scenes/pixiWrapper.js +359 -351
  102. package/src/js/modules/scenes/resolutions.js +173 -173
  103. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  104. package/src/js/modules/scenes/service.js +144 -146
  105. package/src/js/modules/soundManager/controller.js +103 -103
  106. package/src/js/modules/soundManager/soundSprite.js +314 -314
  107. package/src/js/modules/statesManager/action.js +97 -97
  108. package/src/js/modules/statesManager/all.js +23 -23
  109. package/src/js/modules/statesManager/configStates.js +77 -77
  110. package/src/js/modules/statesManager/controller.js +219 -219
  111. package/src/js/modules/statesManager/functionsStorage.js +83 -83
  112. package/src/js/modules/statesManager/helper.js +27 -27
  113. package/src/js/modules/statesManager/race.js +91 -91
  114. package/src/js/modules/statesManager/sequence.js +48 -48
  115. package/src/js/modules/template/controller.js +28 -28
  116. package/src/js/modules/template/model.js +11 -11
  117. package/src/js/modules/template/service.js +137 -137
  118. package/src/js/modules/template/types.js +50 -49
  119. package/src/js/modules/transport/baseConnectionType.js +25 -25
  120. package/src/js/modules/transport/config.js +13 -13
  121. package/src/js/modules/transport/connectionTypes/websocket.js +77 -77
  122. package/src/js/modules/transport/connectionTypes/xhr.js +47 -47
  123. package/src/js/modules/transport/controller.js +48 -48
  124. package/src/js/modules/transport/decorator.js +17 -17
  125. package/src/js/modules/transport/service.js +150 -150
  126. package/vite.config.js +31 -0
  127. package/.babelrc +0 -12
  128. package/build/js/index.js.LICENSE.txt +0 -227
  129. package/src/js/modules/objects/models/atlasImage.js +0 -52
  130. package/src/js/modules/objects/models/dragContainer.js +0 -665
  131. package/src/js/modules/objects/models/emitter.js +0 -69
  132. package/src/js/modules/objects/models/scrollbox.js +0 -67
  133. package/src/js/modules/objects/models/textInput.js +0 -68
  134. package/webpack.config.js +0 -47
@@ -1,70 +1,70 @@
1
- const ModulesObjectsBaseModel = require('./../baseModel');
2
-
3
- class ModulesObjectsModelsText extends ModulesObjectsBaseModel {
4
- constructor(params) {
5
- super(params);
6
-
7
- this.type = Urso.types.objects.TEXT;
8
- this._addBaseObject();
9
- }
10
-
11
- setupParams(params) {
12
- super.setupParams(params);
13
-
14
- this.text = Urso.helper.recursiveGet('text', params, false);
15
- this.localeId = Urso.helper.recursiveGet('localeId', params, false); //you can use this instead text for localization
16
-
17
- this.localeVariables = Urso.helper.recursiveGet('localeVariables', params, {}); //optional variables for localization by localeId
18
-
19
- this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
20
- this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
21
- this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
22
- this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
23
- this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
24
- this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
25
- this.fillCustomColors = Urso.helper.recursiveGet('fillCustomColors', params, false); //or array [{position:12,color:'#000000'},...]
26
- this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
27
- this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
28
- this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
29
- this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
30
- this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
31
- this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
32
- this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
33
- this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
34
- this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100);
35
- this.leading = Urso.helper.recursiveGet('leading', params, 0);
36
- this.letterSpacing = Urso.helper.recursiveGet('letterSpacing', params, 0);
37
- this.textAlign = Urso.helper.recursiveGet('textAlign', params, 'left');
38
- }
39
-
40
- _addBaseObject() {
41
- if (this.localeId)
42
- this._originalModel.text = this.text = Urso.i18n.get(this.localeId, this.localeVariables);
43
-
44
- const styles = { fontFamily: this.fontFamily, leading: this.leading, align: this.textAlign }
45
- this._baseObject = new PIXI.Text(this.text, styles);
46
-
47
- if (this.fillCustomColors) {
48
- this._baseObject.fillCustomColors = this.fillCustomColors;
49
- }
50
- };
51
-
52
- _newLocaleHandler() {
53
- if(!this.proxyObject)
54
- return;
55
-
56
- this.proxyObject.text = Urso.i18n.get(this.localeId, this.localeVariables);
57
- }
58
-
59
- _customDestroy() {
60
- if (this.localeId)
61
- this.removeListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
62
- }
63
-
64
- _subscribeOnce() {
65
- if (this.localeId)
66
- this.addListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
67
- }
68
- }
69
-
70
- module.exports = ModulesObjectsModelsText;
1
+ import ModulesObjectsBaseModel from './../baseModel';
2
+
3
+ class ModulesObjectsModelsText extends ModulesObjectsBaseModel {
4
+ constructor(params) {
5
+ super(params);
6
+
7
+ this.type = Urso.types.objects.TEXT;
8
+ this._addBaseObject();
9
+ }
10
+
11
+ setupParams(params) {
12
+ super.setupParams(params);
13
+
14
+ this.text = Urso.helper.recursiveGet('text', params, false);
15
+ this.localeId = Urso.helper.recursiveGet('localeId', params, false); //you can use this instead text for localization
16
+
17
+ this.localeVariables = Urso.helper.recursiveGet('localeVariables', params, {}); //optional variables for localization by localeId
18
+
19
+ this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
20
+ this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
21
+ this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
22
+ this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
23
+ this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
24
+ this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
25
+ this.fillCustomColors = Urso.helper.recursiveGet('fillCustomColors', params, false); //or array [{position:12,color:'#000000'},...]
26
+ this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
27
+ this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
28
+ this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
29
+ this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
30
+ this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
31
+ this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
32
+ this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
33
+ this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
34
+ this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100);
35
+ this.leading = Urso.helper.recursiveGet('leading', params, 0);
36
+ this.letterSpacing = Urso.helper.recursiveGet('letterSpacing', params, 0);
37
+ this.textAlign = Urso.helper.recursiveGet('textAlign', params, 'left');
38
+ }
39
+
40
+ _addBaseObject() {
41
+ if (this.localeId)
42
+ this._originalModel.text = this.text = Urso.i18n.get(this.localeId, this.localeVariables);
43
+
44
+ const styles = { fontFamily: this.fontFamily, leading: this.leading, align: this.textAlign }
45
+ this._baseObject = new PIXI.Text(this.text, styles);
46
+
47
+ if (this.fillCustomColors) {
48
+ this._baseObject.fillCustomColors = this.fillCustomColors;
49
+ }
50
+ };
51
+
52
+ _newLocaleHandler() {
53
+ if(!this.proxyObject)
54
+ return;
55
+
56
+ this.proxyObject.text = Urso.i18n.get(this.localeId, this.localeVariables);
57
+ }
58
+
59
+ _customDestroy() {
60
+ if (this.localeId)
61
+ this.removeListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
62
+ }
63
+
64
+ _subscribeOnce() {
65
+ if (this.localeId)
66
+ this.addListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
67
+ }
68
+ }
69
+
70
+ export default ModulesObjectsModelsText;
@@ -1,186 +1,186 @@
1
- const UrsoCoreModulesObjectsModelsButton = require('./button');
2
-
3
- class ModulesObjectsModelsToggle extends UrsoCoreModulesObjectsModelsButton {
4
- constructor(params) {
5
- super(params);
6
-
7
- this.status = 'unpressed';
8
-
9
- this.type = Urso.types.objects.TOGGLE;
10
- this._addBaseObject();
11
-
12
- this.enable = this.enable.bind(this);
13
- this.disable = this.disable.bind(this);
14
- }
15
-
16
- setupParams(params) {
17
- super.setupParams(params);
18
-
19
- this.action = Urso.helper.recursiveGet('action', params, () => {
20
- this.emit(Urso.events.MODULES_OBJECTS_TOGGLE_PRESS, { name: this.name, status: this.status, class: this.class })
21
- });
22
-
23
- this.buttonFrames = {
24
- pressedOver: Urso.helper.recursiveGet('buttonFrames.pressedOver', params, false),
25
- pressedOut: Urso.helper.recursiveGet('buttonFrames.pressedOut', params, false),
26
- unpressedOver: Urso.helper.recursiveGet('buttonFrames.unpressedOver', params, false),
27
- unpressedOut: Urso.helper.recursiveGet('buttonFrames.unpressedOut', params, false),
28
- pressedDown: Urso.helper.recursiveGet('buttonFrames.pressedDown', params, false),
29
- unpressedDown: Urso.helper.recursiveGet('buttonFrames.unpressedDown', params, false),
30
- pressedDisabled: Urso.helper.recursiveGet('buttonFrames.pressedDisabled', params, false),
31
- unpressedDisabled: Urso.helper.recursiveGet('buttonFrames.unpressedDisabled', params, false),
32
- }
33
-
34
- this.handlePointerUpOutside = Urso.helper.recursiveGet('handlePointerUpOutside', params, true);
35
- }
36
-
37
- setButtonFrame(key, assetKey) {
38
- this.buttonFrames[key] = assetKey;
39
-
40
- if (this._isOver)
41
- this._changeTexture(`${this.status}Over`);
42
- else if (this._isDown)
43
- this._changeTexture(`${this.status}Down`);
44
- else if (this._isDisabled)
45
- this._changeTexture(`${this.status}Disabled`);
46
- else
47
- this._changeTexture(`${this.status}Out`);
48
- }
49
-
50
- enable() {
51
- if (!this._isDisabled)
52
- return false;
53
-
54
- if (this._isOver)
55
- this._changeTexture(`${this.status}Over`);
56
- else
57
- this._changeTexture(`${this.status}Out`);
58
-
59
- this._isDisabled = false;
60
- this._baseObject.buttonMode = true;
61
- this._baseObject.interactive = true;
62
- }
63
-
64
- disable() {
65
- if (this._isDisabled)
66
- return false;
67
-
68
- this._changeTexture(`${this.status}Disabled`);
69
- this._isDisabled = true;
70
- this._baseObject.buttonMode = false;
71
- this._baseObject.interactive = false;
72
- }
73
-
74
- _addBaseObject() {
75
- this._baseObject = new PIXI.Sprite();
76
- this._changeTexture('unpressedOut');
77
-
78
- this._baseObject.interactive = true;
79
- this._baseObject.buttonMode = true;
80
-
81
- if (this.pixelPerfectOver) {
82
- //todo
83
- }
84
-
85
- if (this.pixelPerfectClick) {
86
- //todo
87
- }
88
-
89
- this._baseObject
90
- .on('pointerdown', this._onButtonDown.bind(this))
91
- .on('pointerup', this._onButtonUp.bind(this))
92
- .on('pointerover', this._onButtonOver.bind(this))
93
- .on('pointerout', this._onButtonOut.bind(this));
94
-
95
- if (this.handlePointerUpOutside) {
96
- this._baseObject.on('pointerupoutside', this._onButtonUp.bind(this))
97
- }
98
- };
99
-
100
- _onButtonDown() {
101
- if (this._isDisabled)
102
- return false;
103
-
104
- this._isDown = true;
105
-
106
- if (this.keyDownAction)
107
- this.keyDownAction();
108
-
109
- if (this._isDisabled) //can be disabled after keyDownAction
110
- return false;
111
-
112
- this._changeTexture(`${this.status}Down`);
113
-
114
- this.status = this.status === 'pressed' ? 'unpressed' : 'pressed';
115
- }
116
-
117
- _onButtonUp() {
118
- if (this._isDisabled)
119
- return false;
120
-
121
- this._isDown = false;
122
-
123
- if (this.action)
124
- this.action();
125
-
126
- if (this._isDisabled) //can be disabled after action
127
- return false;
128
-
129
- if (this._isOver)
130
- this._changeTexture(`${this.status}Over`);
131
- else
132
- this._changeTexture(`${this.status}Out`);
133
- }
134
-
135
- _onButtonOver() {
136
- this._isOver = true;
137
-
138
- if (this._isDisabled || this._isDown)
139
- return false;
140
-
141
- if (this.mouseOverAction)
142
- this.mouseOverAction();
143
-
144
- this._changeTexture(`${this.status}Over`);
145
- }
146
-
147
- _onButtonOut() {
148
- this._isOver = false;
149
-
150
- if (this._isDisabled || this._isDown)
151
- return false;
152
-
153
- if (this.mouseOutAction)
154
- this.mouseOutAction();
155
-
156
- this._changeTexture(`${this.status}Out`);
157
- }
158
-
159
- switchStatus() {
160
- this.status = this.status === 'pressed' ? 'unpressed' : 'pressed';
161
-
162
- if (this._isOver)
163
- this._changeTexture(`${this.status}Over`);
164
- else
165
- this._changeTexture(`${this.status}Out`);
166
- }
167
-
168
- _changeTexture(key) {
169
- let texture = Urso.cache.getTexture(this.buttonFrames[key]);
170
-
171
- if (!texture) {
172
- if (key === `${this.status}Out`) {
173
- Urso.logger.error('ModulesObjectsModelsButton assets error: no out image ' + this.buttonFrames.out);
174
- return false;
175
- }
176
-
177
- this._changeTexture(`${this.status}Out`); // load default texture for this key
178
- return false;
179
- }
180
-
181
- this._baseObject.texture = texture;
182
- return true;
183
- }
184
- }
185
-
186
- module.exports = ModulesObjectsModelsToggle;
1
+ import UrsoCoreModulesObjectsModelsButton from './button';
2
+
3
+ class ModulesObjectsModelsToggle extends UrsoCoreModulesObjectsModelsButton {
4
+ constructor(params) {
5
+ super(params);
6
+
7
+ this.status = 'unpressed';
8
+
9
+ this.type = Urso.types.objects.TOGGLE;
10
+ this._addBaseObject();
11
+
12
+ this.enable = this.enable.bind(this);
13
+ this.disable = this.disable.bind(this);
14
+ }
15
+
16
+ setupParams(params) {
17
+ super.setupParams(params);
18
+
19
+ this.action = Urso.helper.recursiveGet('action', params, () => {
20
+ this.emit(Urso.events.MODULES_OBJECTS_TOGGLE_PRESS, { name: this.name, status: this.status, class: this.class })
21
+ });
22
+
23
+ this.buttonFrames = {
24
+ pressedOver: Urso.helper.recursiveGet('buttonFrames.pressedOver', params, false),
25
+ pressedOut: Urso.helper.recursiveGet('buttonFrames.pressedOut', params, false),
26
+ unpressedOver: Urso.helper.recursiveGet('buttonFrames.unpressedOver', params, false),
27
+ unpressedOut: Urso.helper.recursiveGet('buttonFrames.unpressedOut', params, false),
28
+ pressedDown: Urso.helper.recursiveGet('buttonFrames.pressedDown', params, false),
29
+ unpressedDown: Urso.helper.recursiveGet('buttonFrames.unpressedDown', params, false),
30
+ pressedDisabled: Urso.helper.recursiveGet('buttonFrames.pressedDisabled', params, false),
31
+ unpressedDisabled: Urso.helper.recursiveGet('buttonFrames.unpressedDisabled', params, false),
32
+ }
33
+
34
+ this.handlePointerUpOutside = Urso.helper.recursiveGet('handlePointerUpOutside', params, true);
35
+ }
36
+
37
+ setButtonFrame(key, assetKey) {
38
+ this.buttonFrames[key] = assetKey;
39
+
40
+ if (this._isOver)
41
+ this._changeTexture(`${this.status}Over`);
42
+ else if (this._isDown)
43
+ this._changeTexture(`${this.status}Down`);
44
+ else if (this._isDisabled)
45
+ this._changeTexture(`${this.status}Disabled`);
46
+ else
47
+ this._changeTexture(`${this.status}Out`);
48
+ }
49
+
50
+ enable() {
51
+ if (!this._isDisabled)
52
+ return false;
53
+
54
+ if (this._isOver)
55
+ this._changeTexture(`${this.status}Over`);
56
+ else
57
+ this._changeTexture(`${this.status}Out`);
58
+
59
+ this._isDisabled = false;
60
+ this._baseObject.buttonMode = true;
61
+ this._baseObject.interactive = true;
62
+ }
63
+
64
+ disable() {
65
+ if (this._isDisabled)
66
+ return false;
67
+
68
+ this._changeTexture(`${this.status}Disabled`);
69
+ this._isDisabled = true;
70
+ this._baseObject.buttonMode = false;
71
+ this._baseObject.interactive = false;
72
+ }
73
+
74
+ _addBaseObject() {
75
+ this._baseObject = new PIXI.Sprite();
76
+ this._changeTexture('unpressedOut');
77
+
78
+ this._baseObject.interactive = true;
79
+ this._baseObject.buttonMode = true;
80
+
81
+ if (this.pixelPerfectOver) {
82
+ //todo
83
+ }
84
+
85
+ if (this.pixelPerfectClick) {
86
+ //todo
87
+ }
88
+
89
+ this._baseObject
90
+ .on('pointerdown', this._onButtonDown.bind(this))
91
+ .on('pointerup', this._onButtonUp.bind(this))
92
+ .on('pointerover', this._onButtonOver.bind(this))
93
+ .on('pointerout', this._onButtonOut.bind(this));
94
+
95
+ if (this.handlePointerUpOutside) {
96
+ this._baseObject.on('pointerupoutside', this._onButtonUp.bind(this))
97
+ }
98
+ };
99
+
100
+ _onButtonDown() {
101
+ if (this._isDisabled)
102
+ return false;
103
+
104
+ this._isDown = true;
105
+
106
+ if (this.keyDownAction)
107
+ this.keyDownAction();
108
+
109
+ if (this._isDisabled) //can be disabled after keyDownAction
110
+ return false;
111
+
112
+ this._changeTexture(`${this.status}Down`);
113
+
114
+ this.status = this.status === 'pressed' ? 'unpressed' : 'pressed';
115
+ }
116
+
117
+ _onButtonUp() {
118
+ if (this._isDisabled)
119
+ return false;
120
+
121
+ this._isDown = false;
122
+
123
+ if (this.action)
124
+ this.action();
125
+
126
+ if (this._isDisabled) //can be disabled after action
127
+ return false;
128
+
129
+ if (this._isOver)
130
+ this._changeTexture(`${this.status}Over`);
131
+ else
132
+ this._changeTexture(`${this.status}Out`);
133
+ }
134
+
135
+ _onButtonOver() {
136
+ this._isOver = true;
137
+
138
+ if (this._isDisabled || this._isDown)
139
+ return false;
140
+
141
+ if (this.mouseOverAction)
142
+ this.mouseOverAction();
143
+
144
+ this._changeTexture(`${this.status}Over`);
145
+ }
146
+
147
+ _onButtonOut() {
148
+ this._isOver = false;
149
+
150
+ if (this._isDisabled || this._isDown)
151
+ return false;
152
+
153
+ if (this.mouseOutAction)
154
+ this.mouseOutAction();
155
+
156
+ this._changeTexture(`${this.status}Out`);
157
+ }
158
+
159
+ switchStatus() {
160
+ this.status = this.status === 'pressed' ? 'unpressed' : 'pressed';
161
+
162
+ if (this._isOver)
163
+ this._changeTexture(`${this.status}Over`);
164
+ else
165
+ this._changeTexture(`${this.status}Out`);
166
+ }
167
+
168
+ _changeTexture(key) {
169
+ let texture = Urso.cache.getTexture(this.buttonFrames[key]);
170
+
171
+ if (!texture) {
172
+ if (key === `${this.status}Out`) {
173
+ Urso.logger.error('ModulesObjectsModelsButton assets error: no out image ' + this.buttonFrames.out);
174
+ return false;
175
+ }
176
+
177
+ this._changeTexture(`${this.status}Out`); // load default texture for this key
178
+ return false;
179
+ }
180
+
181
+ this._baseObject.texture = texture;
182
+ return true;
183
+ }
184
+ }
185
+
186
+ export default ModulesObjectsModelsToggle;
@@ -1,22 +1,22 @@
1
- const ModulesObjectsBaseModel = require('./../baseModel');
2
-
3
- class ModulesObjectsModelsWorld extends ModulesObjectsBaseModel {
4
- constructor(params) {
5
- super(params);
6
-
7
- this.type = Urso.types.objects.WORLD;
8
- this._addBaseObject();
9
- }
10
-
11
- setupParams(params) {
12
- super.setupParams(params);
13
-
14
- this.contents = Urso.helper.recursiveGet('contents', params, []);
15
- }
16
-
17
- _addBaseObject() {
18
- this._baseObject = Urso.scenes.getPixiWorld();
19
- };
20
- }
21
-
22
- module.exports = ModulesObjectsModelsWorld
1
+ import ModulesObjectsBaseModel from './../baseModel';
2
+
3
+ class ModulesObjectsModelsWorld extends ModulesObjectsBaseModel {
4
+ constructor(params) {
5
+ super(params);
6
+
7
+ this.type = Urso.types.objects.WORLD;
8
+ this._addBaseObject();
9
+ }
10
+
11
+ setupParams(params) {
12
+ super.setupParams(params);
13
+
14
+ this.contents = Urso.helper.recursiveGet('contents', params, []);
15
+ }
16
+
17
+ _addBaseObject() {
18
+ this._baseObject = Urso.scenes.getPixiWorld();
19
+ };
20
+ }
21
+
22
+ export default ModulesObjectsModelsWorld;