wgge 0.1.36 → 1.0.0

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/material/MaterialPreviewRenderer.js +136 -136
  70. package/editor/table/TableRenderer.js +123 -123
  71. package/editor/table/lookup/TableLookupRenderer.js +120 -120
  72. package/editor/table/row/TableRowRenderer.js +98 -98
  73. package/game/GameController.js +136 -136
  74. package/game/GameModel.js +73 -73
  75. package/game/GameRenderer.js +108 -108
  76. package/game/controls/ControlsController.js +92 -92
  77. package/game/controls/ControlsModel.js +64 -64
  78. package/game/menu/MainMenuRenderer.js +37 -37
  79. package/game/menu/MenuModel.js +25 -25
  80. package/game/menu/MenuRenderer.js +34 -34
  81. package/game/menu/item/MenuItemModel.js +31 -31
  82. package/game/menu/item/MenuItemRenderer.js +48 -48
  83. package/game/resources/ResourcesModel.js +26 -26
  84. package/game/resources/assets/AssetCache.js +203 -203
  85. package/game/resources/assets/loader/AssetLoader.js +56 -56
  86. package/game/resources/assets/loader/AudioLoader.js +15 -15
  87. package/game/resources/assets/loader/GlbLoader.js +16 -16
  88. package/game/resources/assets/loader/ImageLoader.js +15 -15
  89. package/game/resources/assets/loader/MaterialLoader.js +50 -50
  90. package/game/resources/assets/loader/Model3dAnimationLoader.js +28 -28
  91. package/game/resources/assets/loader/Model3dLoader.js +26 -26
  92. package/game/resources/assets/loader/SpriteLoader.js +40 -40
  93. package/game/resources/image/DualImageModel.js +34 -34
  94. package/game/resources/image/ImageModel.js +24 -24
  95. package/game/resources/image/ImageViewModel.js +106 -106
  96. package/game/resources/material/MaterialModel.js +69 -69
  97. package/game/save/SaveGameController.js +21 -21
  98. package/game/save/SaveGameModel.js +5 -5
  99. package/game/save/SaveGameRenderer.js +17 -17
  100. package/game/save/editor/SaveGameEditorRenderer.js +17 -17
  101. package/index.html +42 -42
  102. package/index.js +72 -73
  103. package/package.json +28 -35
  104. package/style/basic/editor.less +290 -290
  105. package/style/basic/game.less +171 -171
  106. package/style/style.less +3 -3
  107. package/webpack.config.js +29 -29
  108. package/core/animation/3d/AnimatedVector3.js +0 -35
  109. package/core/animation/3d/AnimationHelper.js +0 -103
  110. package/core/animation/3d/ProgressVector3.js +0 -26
  111. package/core/helper/GUIHelper.js +0 -53
  112. package/core/model/vector/Vector3.js +0 -107
  113. package/core/particles/ParticleController.js +0 -35
  114. package/core/particles/ParticleModel.js +0 -68
  115. package/core/particles/ParticleRenderer.js +0 -53
  116. package/core/particles/generator/ParticleGeneratorController.js +0 -70
  117. package/core/particles/generator/ParticleGeneratorModel.js +0 -76
  118. package/core/particles/generator/ParticleGeneratorRenderer.js +0 -27
  119. package/core/renderer/svg/SvgRenderer.js +0 -139
  120. package/core/renderer/three/ThreeRenderer.js +0 -17
  121. package/game/resources/3d/3DModel.js +0 -30
@@ -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
+ }