61 lines
1.2 KiB
TypeScript
61 lines
1.2 KiB
TypeScript
import { Client } from "@/network";
|
|
import { GetterTree } from "vuex";
|
|
|
|
import { AppState } from "../types";
|
|
import { NetworkState } from "./types";
|
|
|
|
const getters: GetterTree<NetworkState, AppState> = {
|
|
peerID(state): string | null {
|
|
switch (state.peerType) {
|
|
case "server":
|
|
return state.server.id;
|
|
case "client":
|
|
return state.peer.id;
|
|
}
|
|
return null;
|
|
},
|
|
|
|
sessionID(state): string | null {
|
|
return state.serverID;
|
|
},
|
|
|
|
client(state): Client | null {
|
|
switch (state.peerType) {
|
|
case "server":
|
|
return state.local;
|
|
case "client":
|
|
return state.peer;
|
|
}
|
|
return null;
|
|
},
|
|
|
|
connectionType(state): "client" | "server" | "none" {
|
|
return state.peerType;
|
|
},
|
|
|
|
busy(state): boolean {
|
|
if (state.peerType == "client") {
|
|
if (state.connectionStatus == "connecting") {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
},
|
|
|
|
inRoom(state): boolean {
|
|
if (state.peerType == "client") {
|
|
return state.connectionStatus == "connected";
|
|
}
|
|
if (state.peerType == "server") {
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
|
|
players(state): string[] {
|
|
return state.players;
|
|
}
|
|
};
|
|
|
|
export default getters;
|