@mml-io/3d-web-client-core 0.16.0 → 0.18.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.
@@ -1,22 +1,27 @@
1
1
  import { PerspectiveCamera, Vector3 } from "three";
2
2
  import { CollisionsManager } from "../collisions/CollisionsManager";
3
+ import { TweakPane } from "../tweakpane/TweakPane";
3
4
  export declare class CameraManager {
4
5
  private collisionsManager;
5
6
  readonly camera: PerspectiveCamera;
6
7
  initialDistance: number;
7
- private minDistance;
8
- private maxDistance;
9
- private initialFOV;
10
- private fov;
11
- private minFOV;
12
- private maxFOV;
8
+ minDistance: number;
9
+ maxDistance: number;
10
+ initialFOV: number;
11
+ maxFOV: number;
12
+ minFOV: number;
13
+ damping: number;
14
+ dampingScale: number;
15
+ zoomScale: number;
16
+ zoomDamping: number;
17
+ invertFOVMapping: boolean;
18
+ fov: number;
13
19
  private targetFOV;
14
20
  minPolarAngle: number;
15
21
  private maxPolarAngle;
16
- private dampingFactor;
17
22
  targetDistance: number;
18
- private distance;
19
- private desiredDistance;
23
+ distance: number;
24
+ desiredDistance: number;
20
25
  private targetPhi;
21
26
  private phi;
22
27
  private targetTheta;
@@ -35,6 +40,7 @@ export declare class CameraManager {
35
40
  private lastTouchX;
36
41
  private lastTouchY;
37
42
  constructor(targetElement: HTMLElement, collisionsManager: CollisionsManager, initialPhi?: number, initialTheta?: number);
43
+ setupTweakPane(tweakPane: TweakPane): void;
38
44
  private onTouchStart;
39
45
  private onTouchMove;
40
46
  private onTouchEnd;
@@ -42,6 +48,7 @@ export declare class CameraManager {
42
48
  private onMouseUp;
43
49
  private onMouseMove;
44
50
  private onMouseWheel;
51
+ private onContextMenu;
45
52
  setTarget(target: Vector3): void;
46
53
  setLerpedTarget(target: Vector3, targetDistance: number): void;
47
54
  reverseUpdateFromPositions(): void;
@@ -49,5 +56,6 @@ export declare class CameraManager {
49
56
  dispose(): void;
50
57
  private easeOutExpo;
51
58
  updateAspect(aspect: number): void;
59
+ recomputeFoV(immediately?: boolean): void;
52
60
  update(): void;
53
61
  }
@@ -10,6 +10,7 @@ export type AnimationConfig = {
10
10
  jogAnimationFileUrl: string;
11
11
  sprintAnimationFileUrl: string;
12
12
  airAnimationFileUrl: string;
13
+ doubleJumpAnimationFileUrl: string;
13
14
  };
14
15
  export type CharacterDescription = {
15
16
  meshFileUrl?: string;
@@ -6,9 +6,11 @@ import { KeyInputManager } from "../input/KeyInputManager";
6
6
  import { VirtualJoystick } from "../input/VirtualJoystick";
7
7
  import { Composer } from "../rendering/composer";
8
8
  import { TimeManager } from "../time/TimeManager";
9
+ import { TweakPane } from "../tweakpane/TweakPane";
9
10
  import { AnimationConfig, Character, CharacterDescription } from "./Character";
10
11
  import { CharacterModelLoader } from "./CharacterModelLoader";
11
12
  import { CharacterState } from "./CharacterState";
13
+ import { LocalController } from "./LocalController";
12
14
  import { RemoteController } from "./RemoteController";
13
15
  export type CharacterManagerConfig = {
14
16
  composer: Composer;
@@ -25,21 +27,22 @@ export type CharacterManagerConfig = {
25
27
  username: string;
26
28
  characterDescription: CharacterDescription;
27
29
  };
30
+ updateURLLocation?: boolean;
28
31
  };
29
32
  export declare class CharacterManager {
30
33
  private config;
31
- private updateLocationHash;
32
34
  readonly headTargetOffset: Vector3;
33
35
  private localClientId;
34
36
  remoteCharacters: Map<number, Character>;
35
37
  remoteCharacterControllers: Map<number, RemoteController>;
36
38
  private localCharacterSpawned;
37
- private localController;
39
+ localController: LocalController;
38
40
  localCharacter: Character | null;
39
41
  private speakingCharacters;
40
42
  readonly group: Group;
41
43
  constructor(config: CharacterManagerConfig);
42
44
  spawnLocalCharacter(id: number, username: string, characterDescription: CharacterDescription, spawnPosition?: Vector3, spawnRotation?: Euler): void;
45
+ setupTweakPane(tweakPane: TweakPane): void;
43
46
  spawnRemoteCharacter(id: number, username: string, characterDescription: CharacterDescription, spawnPosition?: Vector3, spawnRotation?: Euler): void;
44
47
  getLocalCharacterPositionAndRotation(): PositionAndRotation;
45
48
  clear(): void;
@@ -23,6 +23,7 @@ export declare class CharacterModel {
23
23
  animationMixer: AnimationMixer | null;
24
24
  currentAnimation: AnimationState;
25
25
  mmlCharacterDescription: MMLCharacterDescription;
26
+ private isPostDoubleJump;
26
27
  constructor(config: CharacterModelConfig);
27
28
  init(): Promise<void>;
28
29
  private applyCustomMaterials;
@@ -4,7 +4,8 @@ export declare enum AnimationState {
4
4
  "running" = 2,
5
5
  "jumpToAir" = 3,
6
6
  "air" = 4,
7
- "airToGround" = 5
7
+ "airToGround" = 5,
8
+ "doubleJump" = 6
8
9
  }
9
10
  export type CharacterState = {
10
11
  id: number;
@@ -21,12 +21,26 @@ export declare class LocalController {
21
21
  radius: number;
22
22
  segment: Line3;
23
23
  };
24
- private gravity;
25
- private jumpForce;
26
- private coyoteTimeThreshold;
27
- private coyoteTime;
28
- private canJump;
29
- private characterOnGround;
24
+ gravity: number;
25
+ jumpForce: number;
26
+ doubleJumpForce: number;
27
+ coyoteTimeThreshold: number;
28
+ canJump: boolean;
29
+ canDoubleJump: boolean;
30
+ coyoteJumped: boolean;
31
+ doubleJumpUsed: boolean;
32
+ jumpCounter: number;
33
+ airResistance: number;
34
+ groundResistance: number;
35
+ airControlModifier: number;
36
+ groundWalkControl: number;
37
+ groundRunControl: number;
38
+ baseControl: number;
39
+ minimumSurfaceAngle: number;
40
+ latestPosition: Vector3;
41
+ characterOnGround: boolean;
42
+ coyoteTime: boolean;
43
+ private collisionDetectionSteps;
30
44
  private characterWasOnGround;
31
45
  private characterAirborneSince;
32
46
  private currentHeight;
@@ -61,6 +75,8 @@ export declare class LocalController {
61
75
  private jump;
62
76
  private anyDirection;
63
77
  private conflictingDirections;
78
+ jumpPressed: boolean;
79
+ jumpReleased: boolean;
64
80
  networkState: CharacterState;
65
81
  constructor(config: LocalControllerConfig);
66
82
  private updateControllerState;
@@ -70,6 +86,7 @@ export declare class LocalController {
70
86
  private updateAzimuthalAngle;
71
87
  private computeAngularDifference;
72
88
  private updateRotation;
89
+ private processJump;
73
90
  private applyControls;
74
91
  private updatePosition;
75
92
  getMovementFromSurfaces(userPosition: Vector3, deltaTime: number): {
@@ -0,0 +1,7 @@
1
+ export declare class ErrorScreen {
2
+ readonly element: HTMLDivElement;
3
+ private titleBannerText;
4
+ private messageText;
5
+ constructor(title: string, message: string);
6
+ dispose(): void;
7
+ }
package/build/index.d.ts CHANGED
@@ -15,3 +15,5 @@ export { CollisionsManager } from "./collisions/CollisionsManager";
15
15
  export { Sun } from "./sun/Sun";
16
16
  export { GroundPlane } from "./ground-plane/GroundPlane";
17
17
  export { LoadingScreen } from "./loading-screen/LoadingScreen";
18
+ export { ErrorScreen } from "./error-screen/ErrorScreen";
19
+ export { EnvironmentConfiguration } from "./rendering/composer";