@antha/multiplayer-p2p-lock-step 0.14.1 → 0.14.2

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.
@@ -11,7 +11,7 @@ export type AnthaMultiplayerP2pLockStepState<MultiplayerPacket extends JsonCompa
11
11
  debugMultiplayer?: boolean | undefined;
12
12
  /** P2p-lock-step controller state. */
13
13
  multiplayerP2pLockStep: {
14
- /** Controller used to drive singleplayer or multiplayer frame sync. */
14
+ /** Multiplayer controller used to drive singleplayer or multiplayer frame sync. */
15
15
  multiplayerController: P2pLockStepMultiplayerController<MultiplayerPacket>;
16
16
  /** Current backend API and room connection state. */
17
17
  connectionState: ApiAndRoomConnectionState;
@@ -1,5 +1,5 @@
1
1
  import { defineAnthaMod } from '@antha/engine';
2
- import { ControllerConnectionEvent, emptyApiAndRoomConnectionState, } from '@antha/multiplayer-core';
2
+ import { emptyApiAndRoomConnectionState, MultiplayerControllerConnectionEvent, } from '@antha/multiplayer-core';
3
3
  import { log, } from '@augment-vir/common';
4
4
  import { P2pLockStepMultiplayerController, } from './p2p-lock-step-multiplayer-controller.js';
5
5
  /**
@@ -25,7 +25,7 @@ export function createAnthaMultiplayerP2pLockStepMod(options = {}) {
25
25
  }),
26
26
  connectionState: emptyApiAndRoomConnectionState,
27
27
  };
28
- state.multiplayerP2pLockStep.multiplayerController.listen(ControllerConnectionEvent, ({ detail: newConnectionState }) => {
28
+ state.multiplayerP2pLockStep.multiplayerController.listen(MultiplayerControllerConnectionEvent, ({ detail: newConnectionState }) => {
29
29
  if (!state.multiplayerP2pLockStep) {
30
30
  return;
31
31
  }
@@ -1,4 +1,4 @@
1
- import { type ApiAndRoomConnectionState, type ClientId, ControllerClientEvent, ControllerConnectionEvent, ControllerRoomListEvent, type ControllerRoomListListener, type MultiplayerInitParams, type MultiplayerRoomConnection, MultiplayerRoomController, type RoomInput, RoomRejectionError } from '@antha/multiplayer-core';
1
+ import { type ApiAndRoomConnectionState, type ClientId, MultiplayerControllerClientEvent, MultiplayerControllerConnectionEvent, MultiplayerControllerRoomListEvent, type MultiplayerControllerRoomListListener, type MultiplayerInitParams, type MultiplayerRoomConnection, MultiplayerRoomController, type RoomInput, RoomRejectionError } from '@antha/multiplayer-core';
2
2
  import { type JsonCompatibleValue, type MaybePromise, type PartialWithUndefined } from '@augment-vir/common';
3
3
  import { type AnyDuration } from 'date-vir';
4
4
  import { ListenTarget, type RemoveListenerCallback, type TypedCustomEventInit } from 'typed-event-target';
@@ -12,7 +12,7 @@ export declare enum P2pLockStepMessageType {
12
12
  Frame = "frame"
13
13
  }
14
14
  /**
15
- * Data received from {@link ControllerFrameEvent}.
15
+ * Data received from {@link MultiplayerControllerFrameEvent}.
16
16
  *
17
17
  * @category Internal
18
18
  */
@@ -56,7 +56,7 @@ export type P2pLockStepMultiplayerControllerParams<Action extends JsonCompatible
56
56
  *
57
57
  * @default accept all connections
58
58
  */
59
- acceptConnection?: ((connectingClientId: ClientId, controller: P2pLockStepMultiplayerController<Action>) => MaybePromise<boolean>) | undefined;
59
+ acceptConnection?: ((connectingClientId: ClientId, multiplayerController: P2pLockStepMultiplayerController<Action>) => MaybePromise<boolean>) | undefined;
60
60
  /** Enables verbose multiplayer debug logs. */
61
61
  debugMultiplayer?: boolean | undefined;
62
62
  /**
@@ -67,25 +67,25 @@ export type P2pLockStepMultiplayerControllerParams<Action extends JsonCompatible
67
67
  */
68
68
  frameDuration?: AnyDuration | undefined;
69
69
  }>;
70
- declare const ControllerFrameEvent_base: (new (eventInitDict: {
70
+ declare const MultiplayerControllerFrameEvent_base: (new (eventInitDict: {
71
71
  bubbles?: boolean;
72
72
  cancelable?: boolean;
73
73
  composed?: boolean;
74
74
  detail: any;
75
- }) => import("typed-event-target").TypedCustomEvent<any, "controller-frame">) & Pick<{
75
+ }) => import("typed-event-target").TypedCustomEvent<any, "multiplayer-controller-frame">) & Pick<{
76
76
  new (type: string, eventInitDict?: EventInit): Event;
77
77
  prototype: Event;
78
78
  readonly NONE: 0;
79
79
  readonly CAPTURING_PHASE: 1;
80
80
  readonly AT_TARGET: 2;
81
81
  readonly BUBBLING_PHASE: 3;
82
- }, "prototype" | "NONE" | "CAPTURING_PHASE" | "AT_TARGET" | "BUBBLING_PHASE"> & Pick<import("typed-event-target").TypedCustomEvent<any, "controller-frame">, "type">;
82
+ }, "prototype" | "NONE" | "CAPTURING_PHASE" | "AT_TARGET" | "BUBBLING_PHASE"> & Pick<import("typed-event-target").TypedCustomEvent<any, "multiplayer-controller-frame">, "type">;
83
83
  /**
84
84
  * This is fired whenever a new p2p-lock-step frame is received from the host client.
85
85
  *
86
86
  * @category Events
87
87
  */
88
- export declare class ControllerFrameEvent<MultiplayerPacket extends JsonCompatibleValue> extends ControllerFrameEvent_base {
88
+ export declare class MultiplayerControllerFrameEvent<MultiplayerPacket extends JsonCompatibleValue> extends MultiplayerControllerFrameEvent_base {
89
89
  detail: ReadonlyArray<FrameEventDetail<MultiplayerPacket>>;
90
90
  constructor(eventInitDict: TypedCustomEventInit<ReadonlyArray<FrameEventDetail<MultiplayerPacket>>>);
91
91
  }
@@ -94,13 +94,13 @@ export declare class ControllerFrameEvent<MultiplayerPacket extends JsonCompatib
94
94
  *
95
95
  * @category Internal
96
96
  */
97
- export type AllP2pLockStepMultiplayerControllerEvents<MultiplayerPacket extends JsonCompatibleValue> = ControllerFrameEvent<MultiplayerPacket> | ControllerRoomListEvent | ControllerClientEvent | ControllerConnectionEvent;
97
+ export type AllP2pLockStepMultiplayerControllerEvents<MultiplayerPacket extends JsonCompatibleValue> = MultiplayerControllerFrameEvent<MultiplayerPacket> | MultiplayerControllerRoomListEvent | MultiplayerControllerClientEvent | MultiplayerControllerConnectionEvent;
98
98
  /**
99
99
  * Listener callback for p2p-lock-step frame events.
100
100
  *
101
101
  * @category Internal
102
102
  */
103
- export type ControllerFrameListener<MultiplayerPacket extends JsonCompatibleValue> = (event: Readonly<ControllerFrameEvent<MultiplayerPacket>>) => MaybePromise<void>;
103
+ export type MultiplayerControllerFrameListener<MultiplayerPacket extends JsonCompatibleValue> = (event: Readonly<MultiplayerControllerFrameEvent<MultiplayerPacket>>) => MaybePromise<void>;
104
104
  /**
105
105
  * An all-in-one controller for singleplayer or p2p-lock-step multiplayer game state.
106
106
  *
@@ -112,11 +112,11 @@ export declare class P2pLockStepMultiplayerController<MultiplayerPacket extends
112
112
  readonly currentFps: number;
113
113
  /** All events emitted by this controller. */
114
114
  static readonly events: {
115
- ControllerFrameEvent: typeof ControllerFrameEvent;
115
+ MultiplayerControllerFrameEvent: typeof MultiplayerControllerFrameEvent;
116
116
  };
117
117
  /** All events emitted by this controller. */
118
118
  readonly events: {
119
- ControllerFrameEvent: typeof ControllerFrameEvent;
119
+ MultiplayerControllerFrameEvent: typeof MultiplayerControllerFrameEvent;
120
120
  };
121
121
  static readonly knownErrors: {
122
122
  RoomRejectionError: typeof RoomRejectionError;
@@ -149,9 +149,9 @@ export declare class P2pLockStepMultiplayerController<MultiplayerPacket extends
149
149
  *
150
150
  * If a callback is provided, it is called each time the room list is updated.
151
151
  */
152
- startRoomUpdates(callback: ControllerRoomListListener): RemoveListenerCallback;
152
+ startRoomUpdates(callback: MultiplayerControllerRoomListListener): RemoveListenerCallback;
153
153
  startRoomUpdates(callback?: undefined): undefined;
154
- startRoomUpdates(callback?: ControllerRoomListListener | undefined): RemoveListenerCallback | undefined;
154
+ startRoomUpdates(callback?: MultiplayerControllerRoomListListener | undefined): RemoveListenerCallback | undefined;
155
155
  /** Turn off room list updates and remove callbacks added via `startRoomUpdates`. */
156
156
  stopRoomUpdates(): void;
157
157
  /** Currently joined room id. If a room has not been joined yet, this will be empty. */
@@ -1,4 +1,4 @@
1
- import { ControllerClientEvent, ControllerConnectionEvent, ControllerMessageEvent, ControllerRoomListEvent, createMultiplayerId, emptyApiAndRoomConnectionState, MultiplayerConnectionState, MultiplayerRoomController, RoomRejectionError, } from '@antha/multiplayer-core';
1
+ import { createMultiplayerId, emptyApiAndRoomConnectionState, MultiplayerConnectionState, MultiplayerControllerClientEvent, MultiplayerControllerConnectionEvent, MultiplayerControllerMessageEvent, MultiplayerControllerRoomListEvent, MultiplayerRoomController, RoomRejectionError, } from '@antha/multiplayer-core';
2
2
  import { ensureArray, log, makeWritable, } from '@augment-vir/common';
3
3
  import { convertDuration } from 'date-vir';
4
4
  import { defineTypedCustomEvent, ListenTarget, } from 'typed-event-target';
@@ -17,7 +17,7 @@ export var P2pLockStepMessageType;
17
17
  *
18
18
  * @category Events
19
19
  */
20
- export class ControllerFrameEvent extends defineTypedCustomEvent()('controller-frame') {
20
+ export class MultiplayerControllerFrameEvent extends defineTypedCustomEvent()('multiplayer-controller-frame') {
21
21
  constructor(eventInitDict) {
22
22
  super(eventInitDict);
23
23
  }
@@ -36,7 +36,7 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
36
36
  currentFps = 0;
37
37
  /** All events emitted by this controller. */
38
38
  static events = {
39
- ControllerFrameEvent,
39
+ MultiplayerControllerFrameEvent,
40
40
  };
41
41
  /** All events emitted by this controller. */
42
42
  events = P2pLockStepMultiplayerController.events;
@@ -159,7 +159,7 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
159
159
  this.debugLog('starting singleplayer connection');
160
160
  this.singleplayer = true;
161
161
  this.finishFrame();
162
- this.dispatch(new ControllerConnectionEvent({
162
+ this.dispatch(new MultiplayerControllerConnectionEvent({
163
163
  detail: {
164
164
  ...emptyApiAndRoomConnectionState,
165
165
  api: MultiplayerConnectionState.Connected,
@@ -282,14 +282,14 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
282
282
  }
283
283
  /** Forward core room-controller events into this frame-sync controller. */
284
284
  listenToRoomController() {
285
- this.roomController.listen(ControllerRoomListEvent, (event) => {
285
+ this.roomController.listen(MultiplayerControllerRoomListEvent, (event) => {
286
286
  this.dispatch(event);
287
287
  });
288
- this.roomController.listen(ControllerConnectionEvent, (event) => {
288
+ this.roomController.listen(MultiplayerControllerConnectionEvent, (event) => {
289
289
  this.debugLog(`connection event received: api=${String(event.detail.api)} room=${String(event.detail.room)}`);
290
290
  this.dispatch(event);
291
291
  });
292
- this.roomController.listen(ControllerClientEvent, (event) => {
292
+ this.roomController.listen(MultiplayerControllerClientEvent, (event) => {
293
293
  this.debugLog(`client event received: ${JSON.stringify(event.detail)}`);
294
294
  if ('newMember' in event.detail) {
295
295
  this.syncNewMember(event.detail.newMember);
@@ -299,7 +299,7 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
299
299
  }
300
300
  this.dispatch(event);
301
301
  });
302
- this.roomController.listen((ControllerMessageEvent), (event) => {
302
+ this.roomController.listen((MultiplayerControllerMessageEvent), (event) => {
303
303
  this.debugLog(`message event received from ${event.sourceClientId}: type=${event.detail.type}`);
304
304
  this.handleReceivedMessage(event.sourceClientId, event.detail);
305
305
  });
@@ -379,7 +379,7 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
379
379
  sourceClientId: this.clientId,
380
380
  type: P2pLockStepMessageType.Actions,
381
381
  });
382
- this.dispatch(new ControllerFrameEvent({
382
+ this.dispatch(new MultiplayerControllerFrameEvent({
383
383
  detail: message.actions,
384
384
  }));
385
385
  }
@@ -410,7 +410,7 @@ export class P2pLockStepMultiplayerController extends ListenTarget {
410
410
  type: P2pLockStepMessageType.Frame,
411
411
  actions: currentFrameActions,
412
412
  });
413
- this.dispatch(new ControllerFrameEvent({
413
+ this.dispatch(new MultiplayerControllerFrameEvent({
414
414
  detail: currentFrameActions,
415
415
  }));
416
416
  this.frameTickReady = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antha/multiplayer-p2p-lock-step",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
4
4
  "description": "Multiplayer mod for the Antha engine.",
5
5
  "keywords": [
6
6
  "vir",
@@ -49,7 +49,7 @@
49
49
  "istanbul-smart-text-reporter": "^1.1.5"
50
50
  },
51
51
  "peerDependencies": {
52
- "@antha/multiplayer-core": "^0.14.1"
52
+ "@antha/multiplayer-core": "^0.14.2"
53
53
  },
54
54
  "engines": {
55
55
  "node": ">=22"