@gg-web-engine/core 0.0.3 → 0.0.4

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 (47) hide show
  1. package/dist/2d/entities/controllers/entity-2d-positioning.animator.js +1 -1
  2. package/dist/2d/entities/gg-2d-entity.d.ts +3 -5
  3. package/dist/2d/entities/gg-2d-entity.js +2 -3
  4. package/dist/3d/entities/controllers/animators/camera-3d.animator.d.ts +17 -0
  5. package/dist/3d/entities/controllers/animators/camera-3d.animator.js +32 -0
  6. package/dist/3d/entities/controllers/animators/entity-3d-positioning.animator.d.ts +16 -0
  7. package/dist/3d/entities/controllers/animators/entity-3d-positioning.animator.js +26 -0
  8. package/dist/3d/entities/controllers/input/car-keyboard-handling.controller.d.ts +25 -0
  9. package/dist/3d/entities/controllers/input/car-keyboard-handling.controller.js +105 -0
  10. package/dist/3d/entities/controllers/input/free-camera.controller.d.ts +54 -0
  11. package/dist/3d/entities/controllers/input/free-camera.controller.js +102 -0
  12. package/dist/3d/entities/gg-3d-entity.d.ts +3 -5
  13. package/dist/3d/entities/gg-3d-entity.js +2 -3
  14. package/dist/3d/entities/gg-3d-map-graph.entity.d.ts +3 -5
  15. package/dist/3d/entities/gg-3d-map-graph.entity.js +1 -2
  16. package/dist/3d/inputs/car-keyboard.input.d.ts +25 -0
  17. package/dist/3d/inputs/car-keyboard.input.js +100 -0
  18. package/dist/3d/inputs/free-camera.input.d.ts +22 -0
  19. package/dist/3d/inputs/free-camera.input.js +80 -0
  20. package/dist/base/clock/global-clock.d.ts +4 -3
  21. package/dist/base/clock/global-clock.js +2 -2
  22. package/dist/base/clock/i-clock.d.ts +7 -0
  23. package/dist/base/clock/i-clock.js +2 -0
  24. package/dist/base/clock/pausable-clock.d.ts +25 -0
  25. package/dist/base/clock/pausable-clock.js +79 -0
  26. package/dist/base/entities/base-gg-renderer.d.ts +3 -15
  27. package/dist/base/entities/base-gg-renderer.js +2 -30
  28. package/dist/base/entities/controllers/animation-mixer.d.ts +1 -8
  29. package/dist/base/entities/controllers/animation-mixer.js +2 -11
  30. package/dist/base/entities/gg-entity.d.ts +29 -0
  31. package/dist/base/entities/gg-entity.js +35 -1
  32. package/dist/base/entities/inline-controller.js +1 -6
  33. package/dist/base/entities/interfaces/i-tick-listener.d.ts +25 -1
  34. package/dist/base/entities/interfaces/i-tick-listener.js +17 -1
  35. package/dist/base/gg-world.d.ts +9 -6
  36. package/dist/base/gg-world.js +47 -29
  37. package/dist/base/inputs/direction.keyboard-input.d.ts +41 -0
  38. package/dist/base/inputs/direction.keyboard-input.js +85 -0
  39. package/dist/base/inputs/input.d.ts +50 -0
  40. package/dist/base/inputs/input.js +80 -0
  41. package/dist/base/inputs/keyboard.input.d.ts +45 -0
  42. package/dist/base/inputs/keyboard.input.js +130 -0
  43. package/dist/base/inputs/mouse.input.d.ts +57 -0
  44. package/dist/base/inputs/mouse.input.js +81 -0
  45. package/dist/index.d.ts +10 -10
  46. package/dist/index.js +10 -10
  47. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MouseInput = void 0;
13
+ const input_1 = require("./input");
14
+ const rxjs_1 = require("rxjs");
15
+ const operators_1 = require("rxjs/operators");
16
+ /**
17
+ * A class representing mouse input.
18
+ */
19
+ class MouseInput extends input_1.Input {
20
+ /**
21
+ Creates an instance of MouseInput.
22
+ @param {MouseInputOptions} options - The options for the MouseInput.
23
+ */
24
+ constructor(options = {}) {
25
+ super();
26
+ this.options = options;
27
+ this._delta$ = new rxjs_1.Subject();
28
+ this.stopped$ = new rxjs_1.Subject();
29
+ this.canvasClickListener = this.canvasClickListener.bind(this);
30
+ }
31
+ /**
32
+ * An observable of the change in the x position of the mouse.
33
+ */
34
+ get deltaX$() {
35
+ return this._delta$.pipe((0, operators_1.map)(d => d.x));
36
+ }
37
+ /**
38
+ * An observable of the change in the y position of the mouse.
39
+ */
40
+ get deltaY$() {
41
+ return this._delta$.pipe((0, operators_1.map)(d => d.y));
42
+ }
43
+ /**
44
+ An observable of the change in the position of the mouse.
45
+ */
46
+ get delta$() {
47
+ return this._delta$.asObservable();
48
+ }
49
+ startInternal() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ (0, rxjs_1.fromEvent)(window, 'mousemove')
52
+ .pipe((0, rxjs_1.takeUntil)(this.stopped$), (0, rxjs_1.filter)(() => !this.options.pointerLock ||
53
+ !this.options.pointerLock.ignoreMovementWhenNotLocked ||
54
+ !!document.pointerLockElement), (0, operators_1.map)((e) => ({ x: e.movementX, y: e.movementY })))
55
+ .subscribe(v => this._delta$.next(v));
56
+ if (!!this.options.pointerLock) {
57
+ this.options.pointerLock.canvas.addEventListener('click', this.canvasClickListener);
58
+ }
59
+ });
60
+ }
61
+ /**
62
+ Stop listening for mouse movement events.
63
+ @param {boolean} [unlockPointer=true] - Whether to exit pointer lock.
64
+ */
65
+ stopInternal(unlockPointer = true) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ this.stopped$.next();
68
+ if (unlockPointer && !!this.options.pointerLock) {
69
+ this.options.pointerLock.canvas.removeEventListener('click', this.canvasClickListener);
70
+ document.exitPointerLock();
71
+ }
72
+ });
73
+ }
74
+ /**
75
+ Request pointer lock on the canvas element.
76
+ */
77
+ canvasClickListener() {
78
+ this.options.pointerLock.canvas.requestPointerLock();
79
+ }
80
+ }
81
+ exports.MouseInput = MouseInput;
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
- export * from './base/clock/clock';
1
+ export * from './base/clock/i-clock';
2
+ export * from './base/clock/pausable-clock';
2
3
  export * from './base/clock/global-clock';
3
4
  export * from './base/gg-viewport';
4
5
  export * from './base/gg-viewport-manager';
5
6
  export * from './base/entities/controllers/animation-mixer';
6
- export * from './base/entities/interfaces/i-tick-listener';
7
7
  export * from './base/entities/gg-entity';
8
8
  export * from './base/entities/base-gg-renderer';
9
9
  export * from './base/entities/inline-controller';
10
+ export * from './base/inputs/direction.keyboard-input';
11
+ export * from './base/inputs/input';
12
+ export * from './base/inputs/keyboard.input';
13
+ export * from './base/inputs/mouse.input';
10
14
  export * from './base/interfaces/gg-body';
11
15
  export * from './base/interfaces/gg-debug-physics-drawer';
12
16
  export * from './base/interfaces/gg-object';
@@ -23,10 +27,6 @@ export * from './base/math/point3';
23
27
  export * from './base/math/quaternion';
24
28
  export * from './base/math/numbers';
25
29
  export * from './base/math/matrix4';
26
- export * from './base/controllers/common';
27
- export * from './base/controllers/i-controller';
28
- export * from './base/controllers/keyboard.controller';
29
- export * from './base/controllers/mouse.controller';
30
30
  export * from './2d/entities/controllers/entity-2d-positioning.animator';
31
31
  export * from './2d/entities/gg-2d-entity';
32
32
  export * from './2d/entities/gg-positionable-2d-entity';
@@ -36,16 +36,16 @@ export * from './2d/models/shapes';
36
36
  export * from './2d/interfaces';
37
37
  export * from './2d/factories';
38
38
  export * from './2d/gg-2d-world';
39
- export * from './3d/controllers/car-keyboard.controller';
40
- export * from './3d/controllers/free-camera.controller';
41
- export * from './3d/entities/controllers/camera-3d.animator';
42
- export * from './3d/entities/controllers/entity-3d-positioning.animator';
39
+ export * from './3d/entities/controllers/animators/camera-3d.animator';
40
+ export * from './3d/entities/controllers/animators/entity-3d-positioning.animator';
43
41
  export * from './3d/entities/gg-3d-entity';
44
42
  export * from './3d/entities/gg-positionable-3d-entity';
45
43
  export * from './3d/entities/gg-3d-camera.entity';
46
44
  export * from './3d/entities/gg-3d-map-graph.entity';
47
45
  export * from './3d/entities/gg-3d-raycast-vehicle.entity';
48
46
  export * from './3d/entities/gg-3d-trigger.entity';
47
+ export * from './3d/entities/controllers/input/car-keyboard-handling.controller';
48
+ export * from './3d/entities/controllers/input/free-camera.controller';
49
49
  export * from './3d/models/body-options';
50
50
  export * from './3d/models/gg-meta';
51
51
  export * from './3d/models/shapes';
package/dist/index.js CHANGED
@@ -14,15 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./base/clock/clock"), exports);
17
+ __exportStar(require("./base/clock/i-clock"), exports);
18
+ __exportStar(require("./base/clock/pausable-clock"), exports);
18
19
  __exportStar(require("./base/clock/global-clock"), exports);
19
20
  __exportStar(require("./base/gg-viewport"), exports);
20
21
  __exportStar(require("./base/gg-viewport-manager"), exports);
21
22
  __exportStar(require("./base/entities/controllers/animation-mixer"), exports);
22
- __exportStar(require("./base/entities/interfaces/i-tick-listener"), exports);
23
23
  __exportStar(require("./base/entities/gg-entity"), exports);
24
24
  __exportStar(require("./base/entities/base-gg-renderer"), exports);
25
25
  __exportStar(require("./base/entities/inline-controller"), exports);
26
+ __exportStar(require("./base/inputs/direction.keyboard-input"), exports);
27
+ __exportStar(require("./base/inputs/input"), exports);
28
+ __exportStar(require("./base/inputs/keyboard.input"), exports);
29
+ __exportStar(require("./base/inputs/mouse.input"), exports);
26
30
  __exportStar(require("./base/interfaces/gg-body"), exports);
27
31
  __exportStar(require("./base/interfaces/gg-debug-physics-drawer"), exports);
28
32
  __exportStar(require("./base/interfaces/gg-object"), exports);
@@ -39,10 +43,6 @@ __exportStar(require("./base/math/point3"), exports);
39
43
  __exportStar(require("./base/math/quaternion"), exports);
40
44
  __exportStar(require("./base/math/numbers"), exports);
41
45
  __exportStar(require("./base/math/matrix4"), exports);
42
- __exportStar(require("./base/controllers/common"), exports);
43
- __exportStar(require("./base/controllers/i-controller"), exports);
44
- __exportStar(require("./base/controllers/keyboard.controller"), exports);
45
- __exportStar(require("./base/controllers/mouse.controller"), exports);
46
46
  __exportStar(require("./2d/entities/controllers/entity-2d-positioning.animator"), exports);
47
47
  __exportStar(require("./2d/entities/gg-2d-entity"), exports);
48
48
  __exportStar(require("./2d/entities/gg-positionable-2d-entity"), exports);
@@ -52,16 +52,16 @@ __exportStar(require("./2d/models/shapes"), exports);
52
52
  __exportStar(require("./2d/interfaces"), exports);
53
53
  __exportStar(require("./2d/factories"), exports);
54
54
  __exportStar(require("./2d/gg-2d-world"), exports);
55
- __exportStar(require("./3d/controllers/car-keyboard.controller"), exports);
56
- __exportStar(require("./3d/controllers/free-camera.controller"), exports);
57
- __exportStar(require("./3d/entities/controllers/camera-3d.animator"), exports);
58
- __exportStar(require("./3d/entities/controllers/entity-3d-positioning.animator"), exports);
55
+ __exportStar(require("./3d/entities/controllers/animators/camera-3d.animator"), exports);
56
+ __exportStar(require("./3d/entities/controllers/animators/entity-3d-positioning.animator"), exports);
59
57
  __exportStar(require("./3d/entities/gg-3d-entity"), exports);
60
58
  __exportStar(require("./3d/entities/gg-positionable-3d-entity"), exports);
61
59
  __exportStar(require("./3d/entities/gg-3d-camera.entity"), exports);
62
60
  __exportStar(require("./3d/entities/gg-3d-map-graph.entity"), exports);
63
61
  __exportStar(require("./3d/entities/gg-3d-raycast-vehicle.entity"), exports);
64
62
  __exportStar(require("./3d/entities/gg-3d-trigger.entity"), exports);
63
+ __exportStar(require("./3d/entities/controllers/input/car-keyboard-handling.controller"), exports);
64
+ __exportStar(require("./3d/entities/controllers/input/free-camera.controller"), exports);
65
65
  __exportStar(require("./3d/models/body-options"), exports);
66
66
  __exportStar(require("./3d/models/gg-meta"), exports);
67
67
  __exportStar(require("./3d/models/shapes"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gg-web-engine/core",
3
- "version": "0.0.03",
3
+ "version": "0.0.04",
4
4
  "description": "An attempt to create open source game engine for browser",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",