mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-10 00:58:43 +08:00
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
|
|
type MultiplayerRoomListType = "all" | "unlocked" | "available";
|
|
type MultiplayerRoomState = "available" | "locked" | "full";
|
|
|
|
interface MultiplayerSignallingServerState {
|
|
myId: string;
|
|
serverVersion: string;
|
|
serverName: string;
|
|
serverOperator: string;
|
|
serverMOTD: string;
|
|
}
|
|
|
|
interface MultiplayerSignallingLoginResult {
|
|
myAlias: string;
|
|
}
|
|
|
|
interface MultiplayerSignallingJoinResult {
|
|
isHost: boolean;
|
|
hostId: string;
|
|
hostAlias: string;
|
|
}
|
|
|
|
interface MultiplayerSignallingAutoJoinResult {
|
|
isHost: boolean;
|
|
hostId: string;
|
|
hostAlias: string;
|
|
room: string;
|
|
}
|
|
|
|
interface MultiplayerSignallingGameInstanceEntry {
|
|
name: string;
|
|
peerCount: number;
|
|
}
|
|
|
|
interface MultiplayerSignallingRoomEntry {
|
|
name: string;
|
|
peerCount: number;
|
|
maxPeerCount: number;
|
|
state: MultiplayerRoomState;
|
|
}
|
|
|
|
interface MultiplayerErrorEvent extends ConstructEvent {
|
|
message: string;
|
|
}
|
|
|
|
interface MultiplayerSignallingEventMap {
|
|
"connected": MultiplayerSignallingServerState;
|
|
"login": MultiplayerSignallingLoginResult;
|
|
"join": MultiplayerSignallingAutoJoinResult;
|
|
"leave": ConstructEvent;
|
|
"disconnected": ConstructEvent;
|
|
"kicked": ConstructEvent;
|
|
"error": MultiplayerErrorEvent;
|
|
}
|
|
|
|
/** Represents the signalling state for the Multiplayer object.
|
|
* @see {@link https://www.construct.net/make-games/manuals/construct-3/scripting/scripting-reference/plugin-interfaces/multiplayer | IMultiplayerObjectType documentation } */
|
|
declare class MultiplayerSignallingState extends ConstructEventTarget<MultiplayerSignallingEventMap>
|
|
{
|
|
addICEServer(url: string, username?: string, credential?: string): void;
|
|
connect(url?: string): Promise<MultiplayerSignallingServerState>;
|
|
readonly isConnected: boolean;
|
|
disconnect(): void;
|
|
|
|
login(alias: string): Promise<MultiplayerSignallingLoginResult>;
|
|
readonly isLoggedIn: boolean;
|
|
|
|
joinRoom(game: string, instance: string, room: string, maxClients?: number): Promise<MultiplayerSignallingJoinResult>;
|
|
autoJoinRoom(game: string, instance: string, room: string, maxClients?: number, isLocking?: boolean): Promise<MultiplayerSignallingAutoJoinResult>;
|
|
leaveRoom(): Promise<void>;
|
|
|
|
requestGameInstanceList(game: string): Promise<MultiplayerSignallingGameInstanceEntry[]>;
|
|
requestRoomList(game: string, instance: string, type: MultiplayerRoomListType): Promise<MultiplayerSignallingRoomEntry[]>;
|
|
}
|