wgge 1.1.3 → 2.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.
package/bin/build.cmd ADDED
@@ -0,0 +1 @@
1
+ npm run build
@@ -1,4 +1,5 @@
1
1
  import DomRenderer from "./DomRenderer";
2
+ import DOMHelper from "../../helper/DOMHelper";
2
3
 
3
4
  export default class DomContainerRenderer extends DomRenderer {
4
5
 
@@ -17,12 +18,16 @@ export default class DomContainerRenderer extends DomRenderer {
17
18
  }
18
19
 
19
20
  activateInternal() {
20
- this.container = this.addElement(this.tag, this.cls);
21
+ this.container = super.addElement(this.tag, this.cls);
21
22
  }
22
23
 
23
24
  deactivateInternal() {
24
- this.removeElement(this.container);
25
+ super.removeElement(this.container);
25
26
  this.container = null;
26
27
  }
27
28
 
29
+ addElement(tag, css = null) {
30
+ return DOMHelper.createElement(this.container, tag, css);
31
+ }
32
+
28
33
  }
@@ -1,4 +1,3 @@
1
- import * as localForage from "localforage";
2
1
  import ControllerBase from "../core/controller/ControllerBase";
3
2
  import ControlsController from "./controls/ControlsController";
4
3
 
@@ -14,9 +13,6 @@ export default class GameController extends ControllerBase {
14
13
 
15
14
  this.model = model;
16
15
 
17
- this.isResourcesDirty = false;
18
- this.resourcesTimeOut = null;
19
-
20
16
  this.addChild(new ControlsController(this.game, this.model.controls));
21
17
 
22
18
  this.addAutoEvent(
@@ -36,99 +32,6 @@ export default class GameController extends ControllerBase {
36
32
  }
37
33
  );
38
34
 
39
- this.addAutoEvent(
40
- this.model.resources,
41
- 'dirty',
42
- () => this.isResourcesDirty = true
43
- );
44
-
45
- this.addAutoEvent(
46
- this.model,
47
- 'save-ui',
48
- () => {
49
- this.saveGameToStorage().then(() => {
50
- console.log('savegame saved');
51
- });
52
- this.saveResourcesToStorage().then(() => {
53
- console.log('resources saved');
54
- });
55
- }
56
- );
57
-
58
- }
59
-
60
- activateInternal() {
61
- super.activateInternal();
62
- this.loadResourcesFromStorage();
63
- }
64
-
65
- updateInternal(delta) {
66
-
67
- // saving of resources during debugging
68
- if (this.model.isInDebugMode.get()) {
69
- this.resourcesTimeOut = (this.resourcesTimeOut === null) ? 3000 : this.resourcesTimeOut - delta;
70
- if (this.isResourcesDirty && this.resourcesTimeOut <= 0) {
71
- this.resourcesTimeOut = null;
72
- this.isResourcesDirty = false;
73
- this.saveResourcesToStorage().then(() => {
74
- this.resourcesTimeOut = null;
75
- console.log('resources saved');
76
- });
77
- }
78
- }
79
- }
80
-
81
- async loadResourcesFromStorage() {
82
- try {
83
- const state = await localForage.getItem('wegge-resources');
84
- if (state) {
85
- this.model.resources.restoreState(state);
86
- } else {
87
- console.log('nothing in storage');
88
- }
89
- } catch (err) {
90
- console.error(err);
91
- }
92
- }
93
-
94
- async saveResourcesToStorage() {
95
- const state = this.model.resources.getState();
96
- try {
97
- await localForage.setItem('wegge-resources', state);
98
- } catch (err) {
99
- console.error(err);
100
- }
101
- }
102
-
103
- async loadGameFromStorage() {
104
- try {
105
- const state = await localForage.getItem('wegge-autosave');
106
- if (state) {
107
- const saveGame = this.saveGameFactory();
108
- saveGame.restoreState(state);
109
- this.model.saveGame.set(saveGame);
110
- this.model.menu.set(null);
111
- } else {
112
- console.log('no saved game in storage');
113
- }
114
- } catch (err) {
115
- console.error('Error when loading saved game.', err);
116
- }
117
- }
118
-
119
- async saveGameToStorage() {
120
- const saveGame = this.model.saveGame.get();
121
- if (!saveGame) return;
122
- const state = saveGame.getState();
123
- try {
124
- await localForage.setItem('wegge-autosave', state);
125
- } catch (err) {
126
- console.error(err);
127
- }
128
- }
129
-
130
- hideMenu() {
131
- this.model.menu.set(null);
132
35
  }
133
36
 
134
37
  }
package/game/GameModel.js CHANGED
@@ -1,11 +1,9 @@
1
1
  import ObjectModel from "../core/model/ObjectModel";
2
2
  import Vector2 from "../core/model/vector/Vector2";
3
3
  import ControlsModel from "./controls/ControlsModel";
4
- import ResourcesModel from "./resources/ResourcesModel";
5
- import NullableNode from "../core/model/value/NullableNode";
6
4
  import BoolValue from "../core/model/value/BoolValue";
7
5
  import GlobalAudioModel from "../core/audio/global/GlobalAudioModel";
8
- import AssetCache from "./resources/assets/AssetCache";
6
+ import AssetCache from "./assets/AssetCache";
9
7
 
10
8
  export default class GameModel extends ObjectModel {
11
9
 
@@ -14,26 +12,11 @@ export default class GameModel extends ObjectModel {
14
12
  */
15
13
  isInDebugMode;
16
14
 
17
- /**
18
- * @type NullableNode<MenuModel>
19
- */
20
- menu;
21
-
22
15
  /**
23
16
  * @type Vector2
24
17
  */
25
18
  viewBoxSize;
26
19
 
27
- /**
28
- * @type NullableNode<SaveGameModel>
29
- */
30
- saveGame;
31
-
32
- /**
33
- * @type ResourcesModel
34
- */
35
- resources;
36
-
37
20
  /**
38
21
  * @type AssetCache
39
22
  */
@@ -53,11 +36,7 @@ export default class GameModel extends ObjectModel {
53
36
  super(false);
54
37
 
55
38
  this.isInDebugMode = this.addProperty('isInDebugMode', new BoolValue(debugModeEnabled));
56
- this.menu = this.addProperty('menu', new NullableNode());
57
-
58
39
  this.viewBoxSize = this.addProperty('viewBoxSize', new Vector2());
59
- this.saveGame = this.addProperty('saveGame', new NullableNode());
60
- this.resources = this.addProperty('resources', new ResourcesModel());
61
40
  this.assets = new AssetCache(this.resources);
62
41
  this.audio = this.addProperty('audio', new GlobalAudioModel());
63
42
  this.controls = this.addProperty('controls', new ControlsModel());
@@ -1,9 +1,9 @@
1
- import Dictionary from "../../../core/Dictionary";
2
- import Collection from "../../../core/Collection";
1
+ import Dictionary from "../../core/Dictionary";
2
+ import Collection from "../../core/Collection";
3
3
  import ImageLoader from "./loader/ImageLoader";
4
4
  import AudioLoader from "./loader/AudioLoader";
5
- import NodeWithEvents from "../../../core/model/event/NodeWithEvents";
6
- import StringHelper from "../../../core/helper/StringHelper";
5
+ import NodeWithEvents from "../../core/model/event/NodeWithEvents";
6
+ import StringHelper from "../../core/helper/StringHelper";
7
7
 
8
8
  const ASSET_TYPE_LOADERS = {
9
9
  'aud': AudioLoader,
@@ -1,4 +1,4 @@
1
- import NodeWithEvents from "../../../../core/model/event/NodeWithEvents";
1
+ import NodeWithEvents from "../../../core/model/event/NodeWithEvents";
2
2
 
3
3
  /**
4
4
  * Loads a single raw resource.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wgge",
3
- "version": "1.1.3",
3
+ "version": "2.0.0",
4
4
  "description": "Web GL Game Engine",
5
5
  "main": "index.js",
6
6
  "devDependencies": {
@@ -26,6 +26,6 @@
26
26
  },
27
27
  "author": "Karel Zavadil",
28
28
  "dependencies": {
29
- "localforage": "^1.10.0"
29
+
30
30
  }
31
31
  }
@@ -1,23 +0,0 @@
1
- import ObjectModel from "../../core/model/ObjectModel";
2
-
3
- export default class ResourcesModel extends ObjectModel {
4
-
5
- /**
6
- * @type ModelNodeTable
7
- */
8
- images;
9
-
10
- /**
11
- * @type ModelNodeTable
12
- */
13
- sounds;
14
-
15
- constructor() {
16
- super();
17
-
18
- //this.images = this.addProperty('images', new ModelNodeTable((id) => new ImageModel(id)));
19
- //this.sounds = this.addProperty('sounds', new ModelNodeTable((id) => new Model3dModel(id)));
20
-
21
- }
22
-
23
- }