_asdf
This commit is contained in:
@@ -33,6 +33,8 @@ public enum NetworkMessageType : byte
|
||||
public static partial class NetworkManager
|
||||
{
|
||||
public delegate bool OnMessageDecl(ref NetworkEvent networkEvent);
|
||||
public delegate bool OnClientConnectingDecl(NetworkConnection sender);
|
||||
public delegate void OnClientConnectedDecl(NetworkConnection sender);
|
||||
|
||||
private static bool initialized;
|
||||
|
||||
@@ -45,28 +47,76 @@ public static partial class NetworkManager
|
||||
private static readonly ushort MaximumClients = 32;
|
||||
|
||||
private static List<OnMessageDecl> OnClientMessageDelegates = new(3);
|
||||
private static List<OnClientConnectingDecl> OnClientConnectingDelegates = new(3);
|
||||
private static List<OnClientConnectedDecl> OnClientConnectedDelegates = new(3);
|
||||
private static List<OnMessageDecl> OnServerMessageDelegates = new(3);
|
||||
private static List<OnClientConnectingDecl> OnServerConnectingDelegates = new(3);
|
||||
private static List<OnClientConnectedDecl> OnServerConnectedDelegates = new(3);
|
||||
|
||||
public static void RegisterClientMessageCallback(OnMessageDecl deleg)
|
||||
public static void RegisterClientCallbacks(OnMessageDecl onMessage, OnClientConnectingDecl onClientConnecting, OnClientConnectedDecl onClientConnected)
|
||||
{
|
||||
Assert.IsTrue(!OnClientMessageDelegates.Contains(deleg));
|
||||
OnClientMessageDelegates.Add(deleg);
|
||||
Assert.IsTrue(!OnClientMessageDelegates.Contains(onMessage));
|
||||
OnClientMessageDelegates.Add(onMessage);
|
||||
|
||||
if (onClientConnecting != null)
|
||||
{
|
||||
Assert.IsTrue(!OnClientConnectingDelegates.Contains(onClientConnecting));
|
||||
OnClientConnectingDelegates.Add(onClientConnecting);
|
||||
}
|
||||
if (onClientConnected != null)
|
||||
{
|
||||
Assert.IsTrue(!OnClientConnectedDelegates.Contains(onClientConnected));
|
||||
OnClientConnectedDelegates.Add(onClientConnected);
|
||||
}
|
||||
}
|
||||
public static void UnregisterClientMessageCallback(OnMessageDecl deleg)
|
||||
public static void UnregisterClientCallbacks(OnMessageDecl onMessage, OnClientConnectingDecl onClientConnecting, OnClientConnectedDecl onClientConnected)
|
||||
{
|
||||
Assert.IsTrue(OnClientMessageDelegates.Contains(deleg));
|
||||
OnClientMessageDelegates.Remove(deleg);
|
||||
Assert.IsTrue(OnClientMessageDelegates.Contains(onMessage));
|
||||
OnClientMessageDelegates.Remove(onMessage);
|
||||
|
||||
if (onClientConnecting != null)
|
||||
{
|
||||
Assert.IsTrue(OnClientConnectingDelegates.Contains(onClientConnecting));
|
||||
OnClientConnectingDelegates.Remove(onClientConnecting);
|
||||
}
|
||||
if (onClientConnected != null)
|
||||
{
|
||||
Assert.IsTrue(OnClientConnectedDelegates.Contains(onClientConnected));
|
||||
OnClientConnectedDelegates.Remove(onClientConnected);
|
||||
}
|
||||
}
|
||||
|
||||
public static void RegisterServerMessageCallback(OnMessageDecl deleg)
|
||||
public static void RegisterServerCallbacks(OnMessageDecl onMessage, OnClientConnectingDecl onClientConnecting, OnClientConnectedDecl onClientConnected)
|
||||
{
|
||||
Assert.IsTrue(!OnServerMessageDelegates.Contains(deleg));
|
||||
OnServerMessageDelegates.Add(deleg);
|
||||
Assert.IsTrue(!OnServerMessageDelegates.Contains(onMessage));
|
||||
OnServerMessageDelegates.Add(onMessage);
|
||||
|
||||
if (onClientConnecting != null)
|
||||
{
|
||||
Assert.IsTrue(!OnServerConnectingDelegates.Contains(onClientConnecting));
|
||||
OnServerConnectingDelegates.Add(onClientConnecting);
|
||||
}
|
||||
if (onClientConnected != null)
|
||||
{
|
||||
Assert.IsTrue(!OnServerConnectedDelegates.Contains(onClientConnected));
|
||||
OnServerConnectedDelegates.Add(onClientConnected);
|
||||
}
|
||||
}
|
||||
public static void UnregisterServerMessageCallback(OnMessageDecl deleg)
|
||||
public static void UnregisterServerCallbacks(OnMessageDecl onMessage, OnClientConnectingDecl onClientConnecting, OnClientConnectedDecl onClientConnected)
|
||||
{
|
||||
Assert.IsTrue(OnServerMessageDelegates.Contains(deleg));
|
||||
OnServerMessageDelegates.Remove(deleg);
|
||||
Assert.IsTrue(OnServerMessageDelegates.Contains(onMessage));
|
||||
OnServerMessageDelegates.Remove(onMessage);
|
||||
|
||||
if (onClientConnecting != null)
|
||||
{
|
||||
Assert.IsTrue(OnServerConnectingDelegates.Contains(onClientConnecting));
|
||||
OnServerConnectingDelegates.Remove(onClientConnecting);
|
||||
}
|
||||
if (onClientConnected != null)
|
||||
{
|
||||
Assert.IsTrue(OnServerConnectedDelegates.Contains(onClientConnected));
|
||||
OnServerConnectedDelegates.Remove(onClientConnected);
|
||||
}
|
||||
}
|
||||
|
||||
public static string DebugLastHandledMessage = "";
|
||||
@@ -129,22 +179,14 @@ public static partial class NetworkManager
|
||||
client = null;
|
||||
}
|
||||
|
||||
LocalPlayerClientId = 0;
|
||||
//LocalPlayerClientId = 0;
|
||||
|
||||
#if FLAX_EDITOR
|
||||
Editor.Instance.PlayModeEnd -= Cleanup;
|
||||
//GameModeManager.Cleanup(); // FIXME
|
||||
#endif
|
||||
if (clientWorldStateManager != null)
|
||||
{
|
||||
clientWorldStateManager.Cleanup();
|
||||
clientWorldStateManager = null;
|
||||
}
|
||||
if (serverWorldStateManager != null)
|
||||
{
|
||||
serverWorldStateManager.Cleanup();
|
||||
serverWorldStateManager = null;
|
||||
}
|
||||
World.CleanupClient();
|
||||
World.CleanupServer();
|
||||
|
||||
StopRecording();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user