263 lines
6.9 KiB
C#
263 lines
6.9 KiB
C#
using System;
|
|
using UnityEngine.Networking.NetworkSystem;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace UnityEngine.Networking
|
|
{
|
|
// Token: 0x0200004A RID: 74
|
|
[DisallowMultipleComponent]
|
|
[AddComponentMenu("Network/NetworkLobbyPlayer")]
|
|
public class NetworkLobbyPlayer : NetworkBehaviour
|
|
{
|
|
// Token: 0x17000068 RID: 104
|
|
// (get) Token: 0x06000297 RID: 663 RVA: 0x0001108C File Offset: 0x0000F28C
|
|
// (set) Token: 0x06000298 RID: 664 RVA: 0x000110A7 File Offset: 0x0000F2A7
|
|
public byte slot
|
|
{
|
|
get
|
|
{
|
|
return this.m_Slot;
|
|
}
|
|
set
|
|
{
|
|
this.m_Slot = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000069 RID: 105
|
|
// (get) Token: 0x06000299 RID: 665 RVA: 0x000110B4 File Offset: 0x0000F2B4
|
|
// (set) Token: 0x0600029A RID: 666 RVA: 0x000110CF File Offset: 0x0000F2CF
|
|
public bool readyToBegin
|
|
{
|
|
get
|
|
{
|
|
return this.m_ReadyToBegin;
|
|
}
|
|
set
|
|
{
|
|
this.m_ReadyToBegin = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600029B RID: 667 RVA: 0x000110D9 File Offset: 0x0000F2D9
|
|
private void Start()
|
|
{
|
|
Object.DontDestroyOnLoad(base.gameObject);
|
|
}
|
|
|
|
// Token: 0x0600029C RID: 668 RVA: 0x000110E7 File Offset: 0x0000F2E7
|
|
private void OnEnable()
|
|
{
|
|
SceneManager.sceneLoaded += this.OnSceneLoaded;
|
|
}
|
|
|
|
// Token: 0x0600029D RID: 669 RVA: 0x000110FB File Offset: 0x0000F2FB
|
|
private void OnDisable()
|
|
{
|
|
SceneManager.sceneLoaded -= this.OnSceneLoaded;
|
|
}
|
|
|
|
// Token: 0x0600029E RID: 670 RVA: 0x00011110 File Offset: 0x0000F310
|
|
public override void OnStartClient()
|
|
{
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
networkLobbyManager.lobbySlots[(int)this.m_Slot] = this;
|
|
this.m_ReadyToBegin = false;
|
|
this.OnClientEnterLobby();
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("LobbyPlayer could not find a NetworkLobbyManager. The LobbyPlayer requires a NetworkLobbyManager object to function. Make sure that there is one in the scene.");
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600029F RID: 671 RVA: 0x00011164 File Offset: 0x0000F364
|
|
public void SendReadyToBeginMessage()
|
|
{
|
|
if (LogFilter.logDebug)
|
|
{
|
|
Debug.Log("NetworkLobbyPlayer SendReadyToBeginMessage");
|
|
}
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
LobbyReadyToBeginMessage lobbyReadyToBeginMessage = new LobbyReadyToBeginMessage();
|
|
lobbyReadyToBeginMessage.slotId = (byte)base.playerControllerId;
|
|
lobbyReadyToBeginMessage.readyState = true;
|
|
networkLobbyManager.client.Send(43, lobbyReadyToBeginMessage);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A0 RID: 672 RVA: 0x000111CC File Offset: 0x0000F3CC
|
|
public void SendNotReadyToBeginMessage()
|
|
{
|
|
if (LogFilter.logDebug)
|
|
{
|
|
Debug.Log("NetworkLobbyPlayer SendReadyToBeginMessage");
|
|
}
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
LobbyReadyToBeginMessage lobbyReadyToBeginMessage = new LobbyReadyToBeginMessage();
|
|
lobbyReadyToBeginMessage.slotId = (byte)base.playerControllerId;
|
|
lobbyReadyToBeginMessage.readyState = false;
|
|
networkLobbyManager.client.Send(43, lobbyReadyToBeginMessage);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A1 RID: 673 RVA: 0x00011234 File Offset: 0x0000F434
|
|
public void SendSceneLoadedMessage()
|
|
{
|
|
if (LogFilter.logDebug)
|
|
{
|
|
Debug.Log("NetworkLobbyPlayer SendSceneLoadedMessage");
|
|
}
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
IntegerMessage integerMessage = new IntegerMessage((int)base.playerControllerId);
|
|
networkLobbyManager.client.Send(44, integerMessage);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A2 RID: 674 RVA: 0x0001128C File Offset: 0x0000F48C
|
|
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
|
{
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
string name = scene.name;
|
|
if (name == networkLobbyManager.lobbyScene)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
if (base.isLocalPlayer)
|
|
{
|
|
this.SendSceneLoadedMessage();
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A3 RID: 675 RVA: 0x000112E4 File Offset: 0x0000F4E4
|
|
public void RemovePlayer()
|
|
{
|
|
if (base.isLocalPlayer && !this.m_ReadyToBegin)
|
|
{
|
|
if (LogFilter.logDebug)
|
|
{
|
|
Debug.Log("NetworkLobbyPlayer RemovePlayer");
|
|
}
|
|
ClientScene.RemovePlayer(base.GetComponent<NetworkIdentity>().playerControllerId);
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A4 RID: 676 RVA: 0x00011331 File Offset: 0x0000F531
|
|
public virtual void OnClientEnterLobby()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060002A5 RID: 677 RVA: 0x00011334 File Offset: 0x0000F534
|
|
public virtual void OnClientExitLobby()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060002A6 RID: 678 RVA: 0x00011337 File Offset: 0x0000F537
|
|
public virtual void OnClientReady(bool readyState)
|
|
{
|
|
}
|
|
|
|
// Token: 0x060002A7 RID: 679 RVA: 0x0001133C File Offset: 0x0000F53C
|
|
public override bool OnSerialize(NetworkWriter writer, bool initialState)
|
|
{
|
|
writer.WritePackedUInt32(1U);
|
|
writer.Write(this.m_Slot);
|
|
writer.Write(this.m_ReadyToBegin);
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x060002A8 RID: 680 RVA: 0x00011374 File Offset: 0x0000F574
|
|
public override void OnDeserialize(NetworkReader reader, bool initialState)
|
|
{
|
|
if (reader.ReadPackedUInt32() != 0U)
|
|
{
|
|
this.m_Slot = reader.ReadByte();
|
|
this.m_ReadyToBegin = reader.ReadBoolean();
|
|
}
|
|
}
|
|
|
|
// Token: 0x060002A9 RID: 681 RVA: 0x000113AC File Offset: 0x0000F5AC
|
|
private void OnGUI()
|
|
{
|
|
if (this.ShowLobbyGUI)
|
|
{
|
|
NetworkLobbyManager networkLobbyManager = NetworkManager.singleton as NetworkLobbyManager;
|
|
if (networkLobbyManager)
|
|
{
|
|
if (!networkLobbyManager.showLobbyGUI)
|
|
{
|
|
return;
|
|
}
|
|
string name = SceneManager.GetSceneAt(0).name;
|
|
if (name != networkLobbyManager.lobbyScene)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
Rect rect = new Rect((float)(100 + this.m_Slot * 100), 200f, 90f, 20f);
|
|
if (base.isLocalPlayer)
|
|
{
|
|
string text;
|
|
if (this.m_ReadyToBegin)
|
|
{
|
|
text = "(Ready)";
|
|
}
|
|
else
|
|
{
|
|
text = "(Not Ready)";
|
|
}
|
|
GUI.Label(rect, text);
|
|
if (this.m_ReadyToBegin)
|
|
{
|
|
rect.y += 25f;
|
|
if (GUI.Button(rect, "STOP"))
|
|
{
|
|
this.SendNotReadyToBeginMessage();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
rect.y += 25f;
|
|
if (GUI.Button(rect, "START"))
|
|
{
|
|
this.SendReadyToBeginMessage();
|
|
}
|
|
rect.y += 25f;
|
|
if (GUI.Button(rect, "Remove"))
|
|
{
|
|
ClientScene.RemovePlayer(base.GetComponent<NetworkIdentity>().playerControllerId);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GUI.Label(rect, "Player [" + base.netId + "]");
|
|
rect.y += 25f;
|
|
GUI.Label(rect, "Ready [" + this.m_ReadyToBegin + "]");
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000153 RID: 339
|
|
[SerializeField]
|
|
public bool ShowLobbyGUI = true;
|
|
|
|
// Token: 0x04000154 RID: 340
|
|
private byte m_Slot;
|
|
|
|
// Token: 0x04000155 RID: 341
|
|
private bool m_ReadyToBegin;
|
|
}
|
|
}
|