wgge 0.1.36 → 1.0.1

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 (121) hide show
  1. package/README.MD +9 -9
  2. package/bin/deploy.cmd +1 -1
  3. package/core/ActivatedTreeNode.js +187 -187
  4. package/core/Collection.js +156 -156
  5. package/core/Dictionary.js +83 -83
  6. package/core/animation/AnimatedRotation.js +44 -44
  7. package/core/animation/AnimatedValue.js +33 -33
  8. package/core/animation/AnimatedVector2.js +35 -35
  9. package/core/animation/ProgressRotation.js +40 -40
  10. package/core/animation/ProgressValue.js +30 -30
  11. package/core/animation/ProgressVector2.js +23 -23
  12. package/core/audio/AudioModel.js +36 -36
  13. package/core/audio/AudioRenderer.js +120 -120
  14. package/core/audio/global/GlobalAudioModel.js +88 -88
  15. package/core/audio/global/GlobalAudioRenderer.js +108 -108
  16. package/core/controller/AnimationController.js +37 -37
  17. package/core/controller/AnimationDelayController.js +56 -56
  18. package/core/controller/AnimationFloatController.js +39 -39
  19. package/core/controller/AnimationRotationVector2Controller.js +45 -45
  20. package/core/controller/AnimationVector2Controller.js +39 -39
  21. package/core/controller/CollectionController.js +47 -47
  22. package/core/controller/ConditionalNodeController.js +51 -51
  23. package/core/controller/ControllerBase.js +64 -64
  24. package/core/controller/ControllerWithSaveGame.js +27 -27
  25. package/core/controller/ControllerWithTimeout.js +10 -10
  26. package/core/controller/NullableNodeController.js +35 -35
  27. package/core/controller/TimeoutController.js +26 -26
  28. package/core/helper/ArrayHelper.js +19 -19
  29. package/core/helper/DOMHelper.js +167 -167
  30. package/core/helper/HttpHelper.js +41 -41
  31. package/core/helper/ImageHelper.js +36 -36
  32. package/core/helper/NumberHelper.js +28 -28
  33. package/core/helper/ObjectHelper.js +10 -10
  34. package/core/helper/StringHelper.js +59 -59
  35. package/core/model/ModelBase.js +99 -99
  36. package/core/model/ObjectModel.js +100 -100
  37. package/core/model/collection/ModelNodeCollection.js +238 -238
  38. package/core/model/collection/table/IdentifiedModelNode.js +24 -24
  39. package/core/model/collection/table/ModelNodeTable.js +53 -53
  40. package/core/model/event/ChangeEvent.js +24 -24
  41. package/core/model/event/NodeWithEvents.js +37 -37
  42. package/core/model/template/TemplateNode.js +45 -45
  43. package/core/model/value/BoolValue.js +17 -17
  44. package/core/model/value/CapacityValue.js +49 -49
  45. package/core/model/value/DirtyValue.js +66 -66
  46. package/core/model/value/FloatValue.js +12 -12
  47. package/core/model/value/IntValue.js +32 -32
  48. package/core/model/value/NullableNode.js +71 -71
  49. package/core/model/vector/Quaternion.js +86 -86
  50. package/core/model/vector/Rotation.js +61 -61
  51. package/core/model/vector/Vector2.js +178 -178
  52. package/core/renderer/RendererBase.js +46 -46
  53. package/core/renderer/canvas/CanvasRenderer.js +132 -132
  54. package/core/renderer/canvas/ImageCanvasRenderer.js +59 -59
  55. package/core/renderer/canvas/ImageViewRenderer.js +42 -42
  56. package/core/renderer/dom/DirtyValueRenderer.js +36 -36
  57. package/core/renderer/dom/DomRenderer.js +32 -32
  58. package/core/renderer/dom/ImageDomRenderer.js +41 -41
  59. package/core/renderer/dom/Vector2Renderer.js +36 -36
  60. package/core/renderer/generic/CollectionRenderer.js +50 -50
  61. package/core/renderer/generic/ConditionalNodeRenderer.js +57 -57
  62. package/core/renderer/generic/NullableNodeRenderer.js +43 -43
  63. package/core/renderer/generic/SwitchController.js +34 -34
  64. package/core/renderer/generic/SwitchRenderer.js +34 -34
  65. package/editor/EditorController.js +134 -134
  66. package/editor/EditorModel.js +38 -38
  67. package/editor/EditorRenderer.js +116 -116
  68. package/editor/form/NodeFormRenderer.js +180 -180
  69. package/editor/table/TableRenderer.js +123 -123
  70. package/editor/table/lookup/TableLookupRenderer.js +120 -120
  71. package/editor/table/row/TableRowRenderer.js +98 -98
  72. package/game/GameController.js +136 -136
  73. package/game/GameModel.js +73 -73
  74. package/game/GameRenderer.js +108 -108
  75. package/game/controls/ControlsController.js +92 -92
  76. package/game/controls/ControlsModel.js +64 -64
  77. package/game/menu/MainMenuRenderer.js +37 -37
  78. package/game/menu/MenuModel.js +25 -25
  79. package/game/menu/MenuRenderer.js +34 -34
  80. package/game/menu/item/MenuItemModel.js +31 -31
  81. package/game/menu/item/MenuItemRenderer.js +48 -48
  82. package/game/resources/ResourcesModel.js +26 -26
  83. package/game/resources/assets/AssetCache.js +203 -203
  84. package/game/resources/assets/loader/AssetLoader.js +56 -56
  85. package/game/resources/assets/loader/AudioLoader.js +15 -15
  86. package/game/resources/assets/loader/ImageLoader.js +15 -15
  87. package/game/resources/image/DualImageModel.js +34 -34
  88. package/game/resources/image/ImageModel.js +24 -24
  89. package/game/resources/image/ImageViewModel.js +106 -106
  90. package/game/save/SaveGameController.js +21 -21
  91. package/game/save/SaveGameModel.js +5 -5
  92. package/game/save/SaveGameRenderer.js +17 -17
  93. package/game/save/editor/SaveGameEditorRenderer.js +17 -17
  94. package/index.html +42 -42
  95. package/index.js +72 -73
  96. package/package.json +28 -35
  97. package/style/basic/editor.less +290 -290
  98. package/style/basic/game.less +171 -171
  99. package/style/style.less +3 -3
  100. package/webpack.config.js +29 -29
  101. package/core/animation/3d/AnimatedVector3.js +0 -35
  102. package/core/animation/3d/AnimationHelper.js +0 -103
  103. package/core/animation/3d/ProgressVector3.js +0 -26
  104. package/core/helper/GUIHelper.js +0 -53
  105. package/core/model/vector/Vector3.js +0 -107
  106. package/core/particles/ParticleController.js +0 -35
  107. package/core/particles/ParticleModel.js +0 -68
  108. package/core/particles/ParticleRenderer.js +0 -53
  109. package/core/particles/generator/ParticleGeneratorController.js +0 -70
  110. package/core/particles/generator/ParticleGeneratorModel.js +0 -76
  111. package/core/particles/generator/ParticleGeneratorRenderer.js +0 -27
  112. package/core/renderer/svg/SvgRenderer.js +0 -139
  113. package/core/renderer/three/ThreeRenderer.js +0 -17
  114. package/editor/material/MaterialPreviewRenderer.js +0 -136
  115. package/game/resources/3d/3DModel.js +0 -30
  116. package/game/resources/assets/loader/GlbLoader.js +0 -16
  117. package/game/resources/assets/loader/MaterialLoader.js +0 -50
  118. package/game/resources/assets/loader/Model3dAnimationLoader.js +0 -28
  119. package/game/resources/assets/loader/Model3dLoader.js +0 -26
  120. package/game/resources/assets/loader/SpriteLoader.js +0 -40
  121. package/game/resources/material/MaterialModel.js +0 -69
@@ -1,156 +1,156 @@
1
- import NodeWithEvents from "./model/event/NodeWithEvents";
2
-
3
- export default class Collection extends NodeWithEvents {
4
-
5
- /**
6
- * @type array
7
- */
8
- items;
9
-
10
- constructor() {
11
- super();
12
- this.items = [];
13
- }
14
-
15
- asArray() {
16
- return this.items;
17
- }
18
-
19
- add(element) {
20
- this.items.push(element);
21
- this.triggerEvent('add', element);
22
- this.triggerEvent('change');
23
- return element;
24
- }
25
-
26
- insert(element, index) {
27
- this.items.splice(index, 0, element);
28
- this.triggerEvent('insert', element);
29
- this.triggerEvent('change');
30
- return element;
31
- }
32
-
33
- prepend(element) {
34
- return this.insert(element, 0);
35
- }
36
-
37
- remove(element) {
38
- const index = this.items.indexOf(element);
39
- return this.removeInternal(index, element);
40
- }
41
-
42
- removeByIndex(index) {
43
- if (index >= 0 && index < this.count()) {
44
- return this.removeInternal(index, this.items[index]);
45
- }
46
- return false;
47
- }
48
-
49
- removeInternal(index, element) {
50
- if (index >= 0) {
51
- this.items.splice(index, 1);
52
- }
53
- if (element) {
54
- this.triggerEvent('remove', element);
55
- this.triggerEvent('change');
56
- return element;
57
- }
58
- return false;
59
- }
60
-
61
- reset() {
62
- while (this.removeFirst()) {
63
- }
64
- }
65
-
66
- isEmpty() {
67
- return this.count() <= 0;
68
- }
69
-
70
- count() {
71
- return this.items.length;
72
- }
73
-
74
- contains(item) {
75
- return this.items.includes(item);
76
- }
77
-
78
- removeFirst() {
79
- return this.removeByIndex(0);
80
- }
81
-
82
- removeLast() {
83
- return this.removeByIndex(this.count() - 1);
84
- }
85
-
86
- swap(childA, childB) {
87
- const indexA = this.items.indexOf(childA);
88
- if (indexA < 0) {
89
- return;
90
- }
91
- this.removeInternal(indexA, childA);
92
-
93
- const indexB = this.items.indexOf(childB);
94
- if (indexB < 0) {
95
- this.insert(childA, indexA);
96
- return;
97
- }
98
- this.removeInternal(indexB, childB);
99
-
100
- this.insert(childA, indexB);
101
- this.insert(childB, indexA);
102
- }
103
-
104
- first() {
105
- return this.items[0];
106
- }
107
-
108
- last() {
109
- return this.items[this.items.length - 1];
110
- }
111
-
112
- forEach(func) {
113
- this.items.forEach(func);
114
- }
115
-
116
- filter(func) {
117
- return this.items.filter(func);
118
- }
119
-
120
- find(func) {
121
- return this.items.find(func);
122
- }
123
-
124
- exists(func) {
125
- return (this.find(func) !== undefined);
126
- }
127
-
128
- map(transform) {
129
- return this.items.map(transform);
130
- }
131
-
132
- reduce(callback, initial) {
133
- return this.items.reduce(callback, initial);
134
- }
135
-
136
- sort(sortFunc) {
137
- return this.items.sort(sortFunc);
138
- }
139
-
140
- addOnRemoveListener(listener) {
141
- this.addEventListener('remove', listener);
142
- }
143
-
144
- removeOnRemoveListener(listener) {
145
- this.removeEventListener('remove', listener);
146
- }
147
-
148
- addOnAddListener(listener) {
149
- this.addEventListener('add', listener);
150
- }
151
-
152
- removeOnAddListener(listener) {
153
- this.removeEventListener('add', listener);
154
- }
155
-
156
- }
1
+ import NodeWithEvents from "./model/event/NodeWithEvents";
2
+
3
+ export default class Collection extends NodeWithEvents {
4
+
5
+ /**
6
+ * @type array
7
+ */
8
+ items;
9
+
10
+ constructor() {
11
+ super();
12
+ this.items = [];
13
+ }
14
+
15
+ asArray() {
16
+ return this.items;
17
+ }
18
+
19
+ add(element) {
20
+ this.items.push(element);
21
+ this.triggerEvent('add', element);
22
+ this.triggerEvent('change');
23
+ return element;
24
+ }
25
+
26
+ insert(element, index) {
27
+ this.items.splice(index, 0, element);
28
+ this.triggerEvent('insert', element);
29
+ this.triggerEvent('change');
30
+ return element;
31
+ }
32
+
33
+ prepend(element) {
34
+ return this.insert(element, 0);
35
+ }
36
+
37
+ remove(element) {
38
+ const index = this.items.indexOf(element);
39
+ return this.removeInternal(index, element);
40
+ }
41
+
42
+ removeByIndex(index) {
43
+ if (index >= 0 && index < this.count()) {
44
+ return this.removeInternal(index, this.items[index]);
45
+ }
46
+ return false;
47
+ }
48
+
49
+ removeInternal(index, element) {
50
+ if (index >= 0) {
51
+ this.items.splice(index, 1);
52
+ }
53
+ if (element) {
54
+ this.triggerEvent('remove', element);
55
+ this.triggerEvent('change');
56
+ return element;
57
+ }
58
+ return false;
59
+ }
60
+
61
+ reset() {
62
+ while (this.removeFirst()) {
63
+ }
64
+ }
65
+
66
+ isEmpty() {
67
+ return this.count() <= 0;
68
+ }
69
+
70
+ count() {
71
+ return this.items.length;
72
+ }
73
+
74
+ contains(item) {
75
+ return this.items.includes(item);
76
+ }
77
+
78
+ removeFirst() {
79
+ return this.removeByIndex(0);
80
+ }
81
+
82
+ removeLast() {
83
+ return this.removeByIndex(this.count() - 1);
84
+ }
85
+
86
+ swap(childA, childB) {
87
+ const indexA = this.items.indexOf(childA);
88
+ if (indexA < 0) {
89
+ return;
90
+ }
91
+ this.removeInternal(indexA, childA);
92
+
93
+ const indexB = this.items.indexOf(childB);
94
+ if (indexB < 0) {
95
+ this.insert(childA, indexA);
96
+ return;
97
+ }
98
+ this.removeInternal(indexB, childB);
99
+
100
+ this.insert(childA, indexB);
101
+ this.insert(childB, indexA);
102
+ }
103
+
104
+ first() {
105
+ return this.items[0];
106
+ }
107
+
108
+ last() {
109
+ return this.items[this.items.length - 1];
110
+ }
111
+
112
+ forEach(func) {
113
+ this.items.forEach(func);
114
+ }
115
+
116
+ filter(func) {
117
+ return this.items.filter(func);
118
+ }
119
+
120
+ find(func) {
121
+ return this.items.find(func);
122
+ }
123
+
124
+ exists(func) {
125
+ return (this.find(func) !== undefined);
126
+ }
127
+
128
+ map(transform) {
129
+ return this.items.map(transform);
130
+ }
131
+
132
+ reduce(callback, initial) {
133
+ return this.items.reduce(callback, initial);
134
+ }
135
+
136
+ sort(sortFunc) {
137
+ return this.items.sort(sortFunc);
138
+ }
139
+
140
+ addOnRemoveListener(listener) {
141
+ this.addEventListener('remove', listener);
142
+ }
143
+
144
+ removeOnRemoveListener(listener) {
145
+ this.removeEventListener('remove', listener);
146
+ }
147
+
148
+ addOnAddListener(listener) {
149
+ this.addEventListener('add', listener);
150
+ }
151
+
152
+ removeOnAddListener(listener) {
153
+ this.removeEventListener('add', listener);
154
+ }
155
+
156
+ }
@@ -1,83 +1,83 @@
1
- import NodeWithEvents from "./model/event/NodeWithEvents";
2
- import ChangeEvent from "./model/event/ChangeEvent";
3
-
4
- const DEBUG_HASH_TABLE = false;
5
-
6
- /**
7
- * Triggers Events: add, set, remove
8
- */
9
- export default class Dictionary extends NodeWithEvents {
10
-
11
- /**
12
- * @type object
13
- */
14
- keyValues;
15
-
16
- constructor(init = {}) {
17
- super();
18
- this.keyValues = init;
19
- }
20
-
21
- get(key) {
22
- return this.keyValues[key];
23
- }
24
-
25
- exists(key) {
26
- return (this.keyValues[key] !== undefined);
27
- }
28
-
29
- add(key, value = null) {
30
- return this.set(key, value);
31
- }
32
-
33
- set(key, value = null) {
34
- const old = this.get(key);
35
- const existed = old !== undefined;
36
- this.keyValues[key] = value;
37
-
38
- if (existed) {
39
- this.triggerEvent('set', new ChangeEvent(value, old, key));
40
- } else {
41
- this.triggerEvent('add', new ChangeEvent(value, undefined, key));
42
- }
43
- return value;
44
- }
45
-
46
- remove(key) {
47
- if (!this.exists(key)) return;
48
-
49
- const element = this.get(key);
50
- delete this.keyValues[key];
51
- this.triggerEvent('remove', new ChangeEvent(undefined, element, key));
52
- return element;
53
- }
54
-
55
- rename(key, newKey) {
56
- this.add(newKey, this.remove(key));
57
- }
58
-
59
- reset() {
60
- const keys = this.keys();
61
- keys.forEach((key) => this.remove(key));
62
- this.keyValues = {};
63
- }
64
-
65
- count() {
66
- return this.keys().length;
67
- }
68
-
69
- isEmpty() {
70
- return (this.count() === 0);
71
- }
72
-
73
- keys() {
74
- return Object.keys(this.keyValues);
75
- }
76
-
77
- forEach(func) {
78
- for (let key in this.keyValues) {
79
- func(key, this.keyValues[key]);
80
- }
81
- }
82
-
83
- }
1
+ import NodeWithEvents from "./model/event/NodeWithEvents";
2
+ import ChangeEvent from "./model/event/ChangeEvent";
3
+
4
+ const DEBUG_HASH_TABLE = false;
5
+
6
+ /**
7
+ * Triggers Events: add, set, remove
8
+ */
9
+ export default class Dictionary extends NodeWithEvents {
10
+
11
+ /**
12
+ * @type object
13
+ */
14
+ keyValues;
15
+
16
+ constructor(init = {}) {
17
+ super();
18
+ this.keyValues = init;
19
+ }
20
+
21
+ get(key) {
22
+ return this.keyValues[key];
23
+ }
24
+
25
+ exists(key) {
26
+ return (this.keyValues[key] !== undefined);
27
+ }
28
+
29
+ add(key, value = null) {
30
+ return this.set(key, value);
31
+ }
32
+
33
+ set(key, value = null) {
34
+ const old = this.get(key);
35
+ const existed = old !== undefined;
36
+ this.keyValues[key] = value;
37
+
38
+ if (existed) {
39
+ this.triggerEvent('set', new ChangeEvent(value, old, key));
40
+ } else {
41
+ this.triggerEvent('add', new ChangeEvent(value, undefined, key));
42
+ }
43
+ return value;
44
+ }
45
+
46
+ remove(key) {
47
+ if (!this.exists(key)) return;
48
+
49
+ const element = this.get(key);
50
+ delete this.keyValues[key];
51
+ this.triggerEvent('remove', new ChangeEvent(undefined, element, key));
52
+ return element;
53
+ }
54
+
55
+ rename(key, newKey) {
56
+ this.add(newKey, this.remove(key));
57
+ }
58
+
59
+ reset() {
60
+ const keys = this.keys();
61
+ keys.forEach((key) => this.remove(key));
62
+ this.keyValues = {};
63
+ }
64
+
65
+ count() {
66
+ return this.keys().length;
67
+ }
68
+
69
+ isEmpty() {
70
+ return (this.count() === 0);
71
+ }
72
+
73
+ keys() {
74
+ return Object.keys(this.keyValues);
75
+ }
76
+
77
+ forEach(func) {
78
+ for (let key in this.keyValues) {
79
+ func(key, this.keyValues[key]);
80
+ }
81
+ }
82
+
83
+ }
@@ -1,44 +1,44 @@
1
- import NumberHelper from "../helper/NumberHelper";
2
- import ProgressRotation from "./ProgressRotation";
3
- import {EASING_FLAT} from "./ProgressValue";
4
-
5
- export default class AnimatedRotation {
6
-
7
- /**
8
- * @type ProgressRotation
9
- */
10
- progress;
11
-
12
- /**
13
- * @type Number
14
- */
15
- duration;
16
-
17
- /**
18
- * @type Number
19
- */
20
- elapsed;
21
-
22
- /**
23
- *
24
- * @param {Number} start
25
- * @param {Number} end
26
- * @param {Number} duration
27
- * @param {Number} elapsed
28
- */
29
- constructor(start, end, duration, easing = EASING_FLAT, elapsed = 0) {
30
- this.progress = new ProgressRotation(start, end, easing);
31
- this.duration = duration;
32
- this.elapsed = elapsed;
33
- }
34
-
35
- get(delta = null) {
36
- if (delta !== null) this.elapsed += delta;
37
- return this.progress.get(NumberHelper.between(0, 1, this.elapsed / this.duration));
38
- }
39
-
40
- isFinished() {
41
- return (this.elapsed >= this.duration);
42
- }
43
-
44
- }
1
+ import NumberHelper from "../helper/NumberHelper";
2
+ import ProgressRotation from "./ProgressRotation";
3
+ import {EASING_FLAT} from "./ProgressValue";
4
+
5
+ export default class AnimatedRotation {
6
+
7
+ /**
8
+ * @type ProgressRotation
9
+ */
10
+ progress;
11
+
12
+ /**
13
+ * @type Number
14
+ */
15
+ duration;
16
+
17
+ /**
18
+ * @type Number
19
+ */
20
+ elapsed;
21
+
22
+ /**
23
+ *
24
+ * @param {Number} start
25
+ * @param {Number} end
26
+ * @param {Number} duration
27
+ * @param {Number} elapsed
28
+ */
29
+ constructor(start, end, duration, easing = EASING_FLAT, elapsed = 0) {
30
+ this.progress = new ProgressRotation(start, end, easing);
31
+ this.duration = duration;
32
+ this.elapsed = elapsed;
33
+ }
34
+
35
+ get(delta = null) {
36
+ if (delta !== null) this.elapsed += delta;
37
+ return this.progress.get(NumberHelper.between(0, 1, this.elapsed / this.duration));
38
+ }
39
+
40
+ isFinished() {
41
+ return (this.elapsed >= this.duration);
42
+ }
43
+
44
+ }
@@ -1,33 +1,33 @@
1
- import ProgressValue, {EASING_FLAT} from "./ProgressValue";
2
- import NumberHelper from "../helper/NumberHelper";
3
-
4
- export default class AnimatedValue {
5
- progressValue;
6
- duration;
7
-
8
- constructor(start, end, duration, easing = EASING_FLAT, elapsed = 0) {
9
- this.progressValue = new ProgressValue(start, end, easing, elapsed);
10
- this.duration = duration;
11
- this.elapsed = elapsed;
12
- this.updateProgress();
13
- }
14
-
15
- addElapsed(delta) {
16
- this.elapsed += delta;
17
- this.updateProgress();
18
- }
19
-
20
- updateProgress() {
21
- this.progressValue.progress = NumberHelper.between(0, 1, this.elapsed / this.duration);
22
- }
23
-
24
- get(delta = null) {
25
- if (delta !== null) this.addElapsed(delta);
26
- return this.progressValue.get();
27
- }
28
-
29
- isFinished() {
30
- return (this.elapsed >= this.duration);
31
- }
32
-
33
- }
1
+ import ProgressValue, {EASING_FLAT} from "./ProgressValue";
2
+ import NumberHelper from "../helper/NumberHelper";
3
+
4
+ export default class AnimatedValue {
5
+ progressValue;
6
+ duration;
7
+
8
+ constructor(start, end, duration, easing = EASING_FLAT, elapsed = 0) {
9
+ this.progressValue = new ProgressValue(start, end, easing, elapsed);
10
+ this.duration = duration;
11
+ this.elapsed = elapsed;
12
+ this.updateProgress();
13
+ }
14
+
15
+ addElapsed(delta) {
16
+ this.elapsed += delta;
17
+ this.updateProgress();
18
+ }
19
+
20
+ updateProgress() {
21
+ this.progressValue.progress = NumberHelper.between(0, 1, this.elapsed / this.duration);
22
+ }
23
+
24
+ get(delta = null) {
25
+ if (delta !== null) this.addElapsed(delta);
26
+ return this.progressValue.get();
27
+ }
28
+
29
+ isFinished() {
30
+ return (this.elapsed >= this.duration);
31
+ }
32
+
33
+ }