121 lines
4.1 KiB
C#
121 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine.Events;
|
|
|
|
namespace UnityEngine.Networking.PlayerConnection
|
|
{
|
|
// Token: 0x020004CE RID: 1230
|
|
[Serializable]
|
|
internal class PlayerEditorConnectionEvents
|
|
{
|
|
// Token: 0x06003BE7 RID: 15335 RVA: 0x000694E4 File Offset: 0x000676E4
|
|
public void InvokeMessageIdSubscribers(Guid messageId, byte[] data, int playerId)
|
|
{
|
|
IEnumerable<PlayerEditorConnectionEvents.MessageTypeSubscribers> enumerable = this.messageTypeSubscribers.Where((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId);
|
|
if (!enumerable.Any<PlayerEditorConnectionEvents.MessageTypeSubscribers>())
|
|
{
|
|
Debug.LogError("No actions found for messageId: " + messageId);
|
|
}
|
|
else
|
|
{
|
|
MessageEventArgs messageEventArgs = new MessageEventArgs
|
|
{
|
|
playerId = playerId,
|
|
data = data
|
|
};
|
|
foreach (PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers in enumerable)
|
|
{
|
|
messageTypeSubscribers.messageCallback.Invoke(messageEventArgs);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06003BE8 RID: 15336 RVA: 0x000695B0 File Offset: 0x000677B0
|
|
public UnityEvent<MessageEventArgs> AddAndCreate(Guid messageId)
|
|
{
|
|
PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId);
|
|
if (messageTypeSubscribers == null)
|
|
{
|
|
messageTypeSubscribers = new PlayerEditorConnectionEvents.MessageTypeSubscribers
|
|
{
|
|
MessageTypeId = messageId,
|
|
messageCallback = new PlayerEditorConnectionEvents.MessageEvent()
|
|
};
|
|
this.messageTypeSubscribers.Add(messageTypeSubscribers);
|
|
}
|
|
messageTypeSubscribers.subscriberCount++;
|
|
return messageTypeSubscribers.messageCallback;
|
|
}
|
|
|
|
// Token: 0x06003BE9 RID: 15337 RVA: 0x00069634 File Offset: 0x00067834
|
|
public void UnregisterManagedCallback(Guid messageId, UnityAction<MessageEventArgs> callback)
|
|
{
|
|
PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId);
|
|
if (messageTypeSubscribers != null)
|
|
{
|
|
messageTypeSubscribers.subscriberCount--;
|
|
messageTypeSubscribers.messageCallback.RemoveListener(callback);
|
|
if (messageTypeSubscribers.subscriberCount <= 0)
|
|
{
|
|
this.messageTypeSubscribers.Remove(messageTypeSubscribers);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x040011FE RID: 4606
|
|
[SerializeField]
|
|
public List<PlayerEditorConnectionEvents.MessageTypeSubscribers> messageTypeSubscribers = new List<PlayerEditorConnectionEvents.MessageTypeSubscribers>();
|
|
|
|
// Token: 0x040011FF RID: 4607
|
|
[SerializeField]
|
|
public PlayerEditorConnectionEvents.ConnectionChangeEvent connectionEvent = new PlayerEditorConnectionEvents.ConnectionChangeEvent();
|
|
|
|
// Token: 0x04001200 RID: 4608
|
|
[SerializeField]
|
|
public PlayerEditorConnectionEvents.ConnectionChangeEvent disconnectionEvent = new PlayerEditorConnectionEvents.ConnectionChangeEvent();
|
|
|
|
// Token: 0x020004CF RID: 1231
|
|
[Serializable]
|
|
public class MessageEvent : UnityEvent<MessageEventArgs>
|
|
{
|
|
}
|
|
|
|
// Token: 0x020004D0 RID: 1232
|
|
[Serializable]
|
|
public class ConnectionChangeEvent : UnityEvent<int>
|
|
{
|
|
}
|
|
|
|
// Token: 0x020004D1 RID: 1233
|
|
[Serializable]
|
|
public class MessageTypeSubscribers
|
|
{
|
|
// Token: 0x17000D8C RID: 3468
|
|
// (get) Token: 0x06003BED RID: 15341 RVA: 0x000696D4 File Offset: 0x000678D4
|
|
// (set) Token: 0x06003BEE RID: 15342 RVA: 0x000696F4 File Offset: 0x000678F4
|
|
public Guid MessageTypeId
|
|
{
|
|
get
|
|
{
|
|
return new Guid(this.m_messageTypeId);
|
|
}
|
|
set
|
|
{
|
|
this.m_messageTypeId = value.ToString();
|
|
}
|
|
}
|
|
|
|
// Token: 0x04001201 RID: 4609
|
|
[SerializeField]
|
|
private string m_messageTypeId;
|
|
|
|
// Token: 0x04001202 RID: 4610
|
|
public int subscriberCount = 0;
|
|
|
|
// Token: 0x04001203 RID: 4611
|
|
public PlayerEditorConnectionEvents.MessageEvent messageCallback = new PlayerEditorConnectionEvents.MessageEvent();
|
|
}
|
|
}
|
|
}
|