@mml-io/3d-web-client-core 0.7.0 → 0.8.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.
@@ -16,6 +16,7 @@ export declare class CameraManager {
16
16
  private dampingFactor;
17
17
  targetDistance: number;
18
18
  private distance;
19
+ private desiredDistance;
19
20
  private targetPhi;
20
21
  private phi;
21
22
  private targetTheta;
@@ -2,8 +2,10 @@ import { Color, Vector3 } from "three";
2
2
  import { CameraManager } from "../camera/CameraManager";
3
3
  import { CollisionsManager } from "../collisions/CollisionsManager";
4
4
  import { KeyInputManager } from "../input/KeyInputManager";
5
+ import { Composer } from "../rendering/composer";
5
6
  import { TimeManager } from "../time/TimeManager";
6
7
  import { CharacterModel } from "./CharacterModel";
8
+ import { CharacterSpeakingIndicator } from "./CharacterSpeakingIndicator";
7
9
  import { CharacterTooltip } from "./CharacterTooltip";
8
10
  import { LocalController } from "./LocalController";
9
11
  export type CharacterDescription = {
@@ -23,13 +25,15 @@ export declare class Character {
23
25
  private readonly keyInputManager;
24
26
  private readonly cameraManager;
25
27
  private readonly timeManager;
28
+ private readonly composer;
26
29
  controller: LocalController | null;
27
30
  name: string | null;
28
31
  model: CharacterModel | null;
29
32
  color: Color;
30
33
  position: Vector3;
31
34
  tooltip: CharacterTooltip | null;
32
- constructor(characterDescription: CharacterDescription, id: number, isLocal: boolean, modelLoadedCallback: () => void, collisionsManager: CollisionsManager, keyInputManager: KeyInputManager, cameraManager: CameraManager, timeManager: TimeManager);
35
+ speakingIndicator: CharacterSpeakingIndicator | null;
36
+ constructor(characterDescription: CharacterDescription, id: number, isLocal: boolean, modelLoadedCallback: () => void, collisionsManager: CollisionsManager, keyInputManager: KeyInputManager, cameraManager: CameraManager, timeManager: TimeManager, composer: Composer);
33
37
  private load;
34
38
  update(time: number): void;
35
39
  }
@@ -3,11 +3,13 @@ import { Group, Vector3 } from "three";
3
3
  import { CameraManager } from "../camera/CameraManager";
4
4
  import { CollisionsManager } from "../collisions/CollisionsManager";
5
5
  import { KeyInputManager } from "../input/KeyInputManager";
6
+ import { Composer } from "../rendering/composer";
6
7
  import { TimeManager } from "../time/TimeManager";
7
8
  import { Character, CharacterDescription } from "./Character";
8
9
  import { CharacterState } from "./CharacterState";
9
10
  import { RemoteController } from "./RemoteController";
10
11
  export declare class CharacterManager {
12
+ private readonly composer;
11
13
  private readonly collisionsManager;
12
14
  private readonly cameraManager;
13
15
  private readonly timeManager;
@@ -15,6 +17,7 @@ export declare class CharacterManager {
15
17
  private readonly clientStates;
16
18
  private readonly sendUpdate;
17
19
  private updateLocationHash;
20
+ private id;
18
21
  loadingCharacters: Map<number, Promise<Character>>;
19
22
  remoteCharacters: Map<number, Character>;
20
23
  remoteCharacterControllers: Map<number, RemoteController>;
@@ -22,10 +25,12 @@ export declare class CharacterManager {
22
25
  character: Character | null;
23
26
  private cameraOffsetTarget;
24
27
  private cameraOffset;
28
+ private speakingCharacters;
25
29
  readonly group: Group;
26
- constructor(collisionsManager: CollisionsManager, cameraManager: CameraManager, timeManager: TimeManager, inputManager: KeyInputManager, clientStates: Map<number, CharacterState>, sendUpdate: (update: CharacterState) => void);
30
+ constructor(composer: Composer, collisionsManager: CollisionsManager, cameraManager: CameraManager, timeManager: TimeManager, inputManager: KeyInputManager, clientStates: Map<number, CharacterState>, sendUpdate: (update: CharacterState) => void);
27
31
  spawnCharacter(characterDescription: CharacterDescription, id: number, isLocal?: boolean, spawnPosition?: Vector3): Promise<Character>;
28
32
  getLocalCharacterPositionAndRotation(): PositionAndRotation;
29
33
  clear(): void;
34
+ setSpeakingCharacter(id: number, value: boolean): void;
30
35
  update(): void;
31
36
  }
@@ -1,4 +1,4 @@
1
- import { AnimationAction, AnimationMixer, Object3D } from "three";
1
+ import { AnimationAction, AnimationMixer, Bone, Object3D } from "three";
2
2
  import { CharacterDescription } from "./Character";
3
3
  import { CharacterMaterial } from "./CharacterMaterial";
4
4
  import { AnimationState } from "./CharacterState";
@@ -7,6 +7,7 @@ export declare class CharacterModel {
7
7
  private modelLoader;
8
8
  mesh: Object3D | null;
9
9
  material: CharacterMaterial;
10
+ headBone: Bone | null;
10
11
  animations: Record<string, AnimationAction>;
11
12
  animationMixer: AnimationMixer | null;
12
13
  currentAnimation: AnimationState;
@@ -0,0 +1,17 @@
1
+ import { Camera, Object3D, Scene, Vector3 } from "three";
2
+ export declare class CharacterSpeakingIndicator {
3
+ private scene;
4
+ private vertexShader;
5
+ private fragmentShader;
6
+ private uniforms;
7
+ private geometry;
8
+ private material;
9
+ private mesh;
10
+ private currentAlpha;
11
+ private targetAlpha;
12
+ constructor(scene: Scene | Object3D);
13
+ setBillboarding(position: Vector3, camera: Camera): void;
14
+ setTime(value: number): void;
15
+ setSpeaking(value: boolean): void;
16
+ dispose(): void;
17
+ }
@@ -1,4 +1,6 @@
1
- import { Vector3 } from "three";
1
+ import { Quaternion, Vector3, Vector4 } from "three";
2
+ export declare const roundToDecimalPlaces: (value: number, decimalPlaces: number) => number;
3
+ export declare const toArray: (origin: Vector3 | Vector4 | Quaternion, precision?: number) => number[];
2
4
  export declare const getSpawnPositionInsideCircle: (radius: number, positions: number, id: number, yPos?: number) => Vector3;
3
5
  export declare const round: (n: number, digits: number) => number;
4
6
  export declare const ease: (target: number, n: number, factor: number) => number;