This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
+406
View File
@@ -0,0 +1,406 @@
using System;
using System.Collections.Generic;
namespace UnityEngine.Networking
{
// Token: 0x02000056 RID: 86
internal class NetworkScene
{
// Token: 0x1700009A RID: 154
// (get) Token: 0x0600039E RID: 926 RVA: 0x00014BE4 File Offset: 0x00012DE4
internal Dictionary<NetworkInstanceId, NetworkIdentity> localObjects
{
get
{
return this.m_LocalObjects;
}
}
// Token: 0x1700009B RID: 155
// (get) Token: 0x0600039F RID: 927 RVA: 0x00014C00 File Offset: 0x00012E00
internal static Dictionary<NetworkHash128, GameObject> guidToPrefab
{
get
{
return NetworkScene.s_GuidToPrefab;
}
}
// Token: 0x1700009C RID: 156
// (get) Token: 0x060003A0 RID: 928 RVA: 0x00014C1C File Offset: 0x00012E1C
internal static Dictionary<NetworkHash128, SpawnDelegate> spawnHandlers
{
get
{
return NetworkScene.s_SpawnHandlers;
}
}
// Token: 0x1700009D RID: 157
// (get) Token: 0x060003A1 RID: 929 RVA: 0x00014C38 File Offset: 0x00012E38
internal static Dictionary<NetworkHash128, UnSpawnDelegate> unspawnHandlers
{
get
{
return NetworkScene.s_UnspawnHandlers;
}
}
// Token: 0x060003A2 RID: 930 RVA: 0x00014C52 File Offset: 0x00012E52
internal void Shutdown()
{
this.ClearLocalObjects();
NetworkScene.ClearSpawners();
}
// Token: 0x060003A3 RID: 931 RVA: 0x00014C60 File Offset: 0x00012E60
internal void SetLocalObject(NetworkInstanceId netId, GameObject obj, bool isClient, bool isServer)
{
if (LogFilter.logDev)
{
Debug.Log(string.Concat(new object[] { "SetLocalObject ", netId, " ", obj }));
}
if (obj == null)
{
this.m_LocalObjects[netId] = null;
}
else
{
NetworkIdentity networkIdentity = null;
if (this.m_LocalObjects.ContainsKey(netId))
{
networkIdentity = this.m_LocalObjects[netId];
}
if (networkIdentity == null)
{
networkIdentity = obj.GetComponent<NetworkIdentity>();
this.m_LocalObjects[netId] = networkIdentity;
}
networkIdentity.UpdateClientServer(isClient, isServer);
}
}
// Token: 0x060003A4 RID: 932 RVA: 0x00014D14 File Offset: 0x00012F14
internal GameObject FindLocalObject(NetworkInstanceId netId)
{
if (this.m_LocalObjects.ContainsKey(netId))
{
NetworkIdentity networkIdentity = this.m_LocalObjects[netId];
if (networkIdentity != null)
{
return networkIdentity.gameObject;
}
}
return null;
}
// Token: 0x060003A5 RID: 933 RVA: 0x00014D64 File Offset: 0x00012F64
internal bool GetNetworkIdentity(NetworkInstanceId netId, out NetworkIdentity uv)
{
bool flag;
if (this.m_LocalObjects.ContainsKey(netId) && this.m_LocalObjects[netId] != null)
{
uv = this.m_LocalObjects[netId];
flag = true;
}
else
{
uv = null;
flag = false;
}
return flag;
}
// Token: 0x060003A6 RID: 934 RVA: 0x00014DBC File Offset: 0x00012FBC
internal bool RemoveLocalObject(NetworkInstanceId netId)
{
return this.m_LocalObjects.Remove(netId);
}
// Token: 0x060003A7 RID: 935 RVA: 0x00014DE0 File Offset: 0x00012FE0
internal bool RemoveLocalObjectAndDestroy(NetworkInstanceId netId)
{
bool flag;
if (this.m_LocalObjects.ContainsKey(netId))
{
NetworkIdentity networkIdentity = this.m_LocalObjects[netId];
Object.Destroy(networkIdentity.gameObject);
flag = this.m_LocalObjects.Remove(netId);
}
else
{
flag = false;
}
return flag;
}
// Token: 0x060003A8 RID: 936 RVA: 0x00014E32 File Offset: 0x00013032
internal void ClearLocalObjects()
{
this.m_LocalObjects.Clear();
}
// Token: 0x060003A9 RID: 937 RVA: 0x00014E40 File Offset: 0x00013040
internal static void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId)
{
NetworkIdentity component = prefab.GetComponent<NetworkIdentity>();
if (component)
{
component.SetDynamicAssetId(newAssetId);
if (LogFilter.logDebug)
{
Debug.Log(string.Concat(new object[] { "Registering prefab '", prefab.name, "' as asset:", component.assetId }));
}
NetworkScene.s_GuidToPrefab[component.assetId] = prefab;
}
else if (LogFilter.logError)
{
Debug.LogError("Could not register '" + prefab.name + "' since it contains no NetworkIdentity component");
}
}
// Token: 0x060003AA RID: 938 RVA: 0x00014EEC File Offset: 0x000130EC
internal static void RegisterPrefab(GameObject prefab)
{
NetworkIdentity component = prefab.GetComponent<NetworkIdentity>();
if (component)
{
if (LogFilter.logDebug)
{
Debug.Log(string.Concat(new object[] { "Registering prefab '", prefab.name, "' as asset:", component.assetId }));
}
NetworkScene.s_GuidToPrefab[component.assetId] = prefab;
NetworkIdentity[] componentsInChildren = prefab.GetComponentsInChildren<NetworkIdentity>();
if (componentsInChildren.Length > 1)
{
if (LogFilter.logWarn)
{
Debug.LogWarning("The prefab '" + prefab.name + "' has multiple NetworkIdentity components. There can only be one NetworkIdentity on a prefab, and it must be on the root object.");
}
}
}
else if (LogFilter.logError)
{
Debug.LogError("Could not register '" + prefab.name + "' since it contains no NetworkIdentity component");
}
}
// Token: 0x060003AB RID: 939 RVA: 0x00014FC8 File Offset: 0x000131C8
internal static bool GetPrefab(NetworkHash128 assetId, out GameObject prefab)
{
bool flag;
if (!assetId.IsValid())
{
prefab = null;
flag = false;
}
else if (NetworkScene.s_GuidToPrefab.ContainsKey(assetId) && NetworkScene.s_GuidToPrefab[assetId] != null)
{
prefab = NetworkScene.s_GuidToPrefab[assetId];
flag = true;
}
else
{
prefab = null;
flag = false;
}
return flag;
}
// Token: 0x060003AC RID: 940 RVA: 0x00015033 File Offset: 0x00013233
internal static void ClearSpawners()
{
NetworkScene.s_GuidToPrefab.Clear();
NetworkScene.s_SpawnHandlers.Clear();
NetworkScene.s_UnspawnHandlers.Clear();
}
// Token: 0x060003AD RID: 941 RVA: 0x00015054 File Offset: 0x00013254
public static void UnregisterSpawnHandler(NetworkHash128 assetId)
{
NetworkScene.s_SpawnHandlers.Remove(assetId);
NetworkScene.s_UnspawnHandlers.Remove(assetId);
}
// Token: 0x060003AE RID: 942 RVA: 0x00015070 File Offset: 0x00013270
internal static void RegisterSpawnHandler(NetworkHash128 assetId, SpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler)
{
if (spawnHandler == null || unspawnHandler == null)
{
if (LogFilter.logError)
{
Debug.LogError("RegisterSpawnHandler custom spawn function null for " + assetId);
}
}
else
{
if (LogFilter.logDebug)
{
Debug.Log(string.Concat(new object[]
{
"RegisterSpawnHandler asset '",
assetId,
"' ",
spawnHandler.GetMethodName(),
"/",
unspawnHandler.GetMethodName()
}));
}
NetworkScene.s_SpawnHandlers[assetId] = spawnHandler;
NetworkScene.s_UnspawnHandlers[assetId] = unspawnHandler;
}
}
// Token: 0x060003AF RID: 943 RVA: 0x00015118 File Offset: 0x00013318
internal static void UnregisterPrefab(GameObject prefab)
{
NetworkIdentity component = prefab.GetComponent<NetworkIdentity>();
if (component == null)
{
if (LogFilter.logError)
{
Debug.LogError("Could not unregister '" + prefab.name + "' since it contains no NetworkIdentity component");
}
}
else
{
NetworkScene.s_SpawnHandlers.Remove(component.assetId);
NetworkScene.s_UnspawnHandlers.Remove(component.assetId);
}
}
// Token: 0x060003B0 RID: 944 RVA: 0x00015188 File Offset: 0x00013388
internal static void RegisterPrefab(GameObject prefab, SpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler)
{
NetworkIdentity component = prefab.GetComponent<NetworkIdentity>();
if (component == null)
{
if (LogFilter.logError)
{
Debug.LogError("Could not register '" + prefab.name + "' since it contains no NetworkIdentity component");
}
}
else if (spawnHandler == null || unspawnHandler == null)
{
if (LogFilter.logError)
{
Debug.LogError("RegisterPrefab custom spawn function null for " + component.assetId);
}
}
else if (!component.assetId.IsValid())
{
if (LogFilter.logError)
{
Debug.LogError("RegisterPrefab game object " + prefab.name + " has no prefab. Use RegisterSpawnHandler() instead?");
}
}
else
{
if (LogFilter.logDebug)
{
Debug.Log(string.Concat(new object[]
{
"Registering custom prefab '",
prefab.name,
"' as asset:",
component.assetId,
" ",
spawnHandler.GetMethodName(),
"/",
unspawnHandler.GetMethodName()
}));
}
NetworkScene.s_SpawnHandlers[component.assetId] = spawnHandler;
NetworkScene.s_UnspawnHandlers[component.assetId] = unspawnHandler;
}
}
// Token: 0x060003B1 RID: 945 RVA: 0x000152D4 File Offset: 0x000134D4
internal static bool GetSpawnHandler(NetworkHash128 assetId, out SpawnDelegate handler)
{
bool flag;
if (NetworkScene.s_SpawnHandlers.ContainsKey(assetId))
{
handler = NetworkScene.s_SpawnHandlers[assetId];
flag = true;
}
else
{
handler = null;
flag = false;
}
return flag;
}
// Token: 0x060003B2 RID: 946 RVA: 0x00015314 File Offset: 0x00013514
internal static bool InvokeUnSpawnHandler(NetworkHash128 assetId, GameObject obj)
{
bool flag;
if (NetworkScene.s_UnspawnHandlers.ContainsKey(assetId) && NetworkScene.s_UnspawnHandlers[assetId] != null)
{
UnSpawnDelegate unSpawnDelegate = NetworkScene.s_UnspawnHandlers[assetId];
unSpawnDelegate(obj);
flag = true;
}
else
{
flag = false;
}
return flag;
}
// Token: 0x060003B3 RID: 947 RVA: 0x00015368 File Offset: 0x00013568
internal void DestroyAllClientObjects()
{
foreach (NetworkInstanceId networkInstanceId in this.m_LocalObjects.Keys)
{
NetworkIdentity networkIdentity = this.m_LocalObjects[networkInstanceId];
if (networkIdentity != null && networkIdentity.gameObject != null)
{
if (!NetworkScene.InvokeUnSpawnHandler(networkIdentity.assetId, networkIdentity.gameObject))
{
if (networkIdentity.sceneId.IsEmpty())
{
Object.Destroy(networkIdentity.gameObject);
}
else
{
networkIdentity.MarkForReset();
networkIdentity.gameObject.SetActive(false);
}
}
}
}
this.ClearLocalObjects();
}
// Token: 0x060003B4 RID: 948 RVA: 0x0001544C File Offset: 0x0001364C
internal void DumpAllClientObjects()
{
foreach (NetworkInstanceId networkInstanceId in this.m_LocalObjects.Keys)
{
NetworkIdentity networkIdentity = this.m_LocalObjects[networkInstanceId];
if (networkIdentity != null)
{
Debug.Log(string.Concat(new object[] { "ID:", networkInstanceId, " OBJ:", networkIdentity.gameObject, " AS:", networkIdentity.assetId }));
}
else
{
Debug.Log("ID:" + networkInstanceId + " OBJ: null");
}
}
}
// Token: 0x040001B3 RID: 435
private Dictionary<NetworkInstanceId, NetworkIdentity> m_LocalObjects = new Dictionary<NetworkInstanceId, NetworkIdentity>();
// Token: 0x040001B4 RID: 436
private static Dictionary<NetworkHash128, GameObject> s_GuidToPrefab = new Dictionary<NetworkHash128, GameObject>();
// Token: 0x040001B5 RID: 437
private static Dictionary<NetworkHash128, SpawnDelegate> s_SpawnHandlers = new Dictionary<NetworkHash128, SpawnDelegate>();
// Token: 0x040001B6 RID: 438
private static Dictionary<NetworkHash128, UnSpawnDelegate> s_UnspawnHandlers = new Dictionary<NetworkHash128, UnSpawnDelegate>();
}
}