Create NetStatus class

This commit is contained in:
in0finite 2019-04-23 16:54:18 +02:00
parent 076257b82c
commit 21c5cbfaab
3 changed files with 118 additions and 2 deletions

View file

@ -86,14 +86,14 @@ namespace SanAndreasUnity.Net
public static void CheckIfServerIsStarted() {
if (NetworkStatus.IsServerStarted ())
if (NetStatus.IsServerStarted ())
throw new System.Exception ("Server already started");
}
public static void CheckIfClientIsStarted() {
if (!NetworkStatus.IsClientDisconnected ())
if (!NetStatus.IsClientDisconnected ())
throw new System.Exception ("Client already started");
}

View file

@ -0,0 +1,105 @@
using Mirror;
namespace SanAndreasUnity.Net
{
public enum NetworkClientStatus
{
Disconnected = 0,
Connecting,
Connected
}
public enum NetworkServerStatus
{
Started = 1,
Starting = 2,
Stopped = 3
}
public class NetStatus
{
private static bool IsNetworkClientConnecting {
get {
return NetworkClient.active && !NetworkClient.isConnected;
}
}
public static NetworkClientStatus clientStatus {
get {
if (NetworkClient.isConnected)
return NetworkClientStatus.Connected;
if (IsNetworkClientConnecting)
return NetworkClientStatus.Connecting;
return NetworkClientStatus.Disconnected;
}
}
public static NetworkServerStatus serverStatus {
get {
if (!NetworkServer.active)
return NetworkServerStatus.Stopped;
return NetworkServerStatus.Started;
}
}
public static bool IsServerStarted() {
return serverStatus == NetworkServerStatus.Started;
}
/// <summary>
/// Is server active ?
/// </summary>
public static bool IsServer() {
return NetStatus.IsServerStarted ();
}
/// <summary>
/// Is host active ?
/// </summary>
public static bool IsHost() {
if (!NetStatus.IsServer ())
return false;
return NetworkServer.localClientActive;
}
public static bool IsClientConnected() {
return clientStatus == NetworkClientStatus.Connected;
}
public static bool IsClientConnecting() {
return clientStatus == NetworkClientStatus.Connecting;
}
public static bool IsClientDisconnected() {
return clientStatus == NetworkClientStatus.Disconnected;
}
/// <summary>
/// Is client connected ?
/// TODO: This method should be corrected to return: is client active.
/// </summary>
public static bool IsClient() {
return NetStatus.IsClientConnected();
}
public static bool IsClientActive() {
return ! NetStatus.IsClientDisconnected ();
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cfc1fbefe001f4addb0d7358d8ac7312
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: