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
@@ -0,0 +1,152 @@
using System;
using System.Collections.Generic;
namespace UnityEngine.Networking
{
// Token: 0x02000053 RID: 83
[AddComponentMenu("Network/NetworkProximityChecker")]
[RequireComponent(typeof(NetworkIdentity))]
public class NetworkProximityChecker : NetworkBehaviour
{
// Token: 0x0600036C RID: 876 RVA: 0x00013AB0 File Offset: 0x00011CB0
private void Update()
{
if (NetworkServer.active)
{
if (Time.time - this.m_VisUpdateTime > this.visUpdateInterval)
{
base.GetComponent<NetworkIdentity>().RebuildObservers(false);
this.m_VisUpdateTime = Time.time;
}
}
}
// Token: 0x0600036D RID: 877 RVA: 0x00013B00 File Offset: 0x00011D00
public override bool OnCheckObserver(NetworkConnection newObserver)
{
bool flag;
if (this.forceHidden)
{
flag = false;
}
else
{
GameObject gameObject = null;
for (int i = 0; i < newObserver.playerControllers.Count; i++)
{
PlayerController playerController = newObserver.playerControllers[i];
if (playerController != null && playerController.gameObject != null)
{
gameObject = playerController.gameObject;
break;
}
}
if (gameObject == null)
{
flag = false;
}
else
{
Vector3 position = gameObject.transform.position;
flag = (position - base.transform.position).magnitude < (float)this.visRange;
}
}
return flag;
}
// Token: 0x0600036E RID: 878 RVA: 0x00013BBC File Offset: 0x00011DBC
public override bool OnRebuildObservers(HashSet<NetworkConnection> observers, bool initial)
{
bool flag;
if (this.forceHidden)
{
NetworkIdentity component = base.GetComponent<NetworkIdentity>();
if (component.connectionToClient != null)
{
observers.Add(component.connectionToClient);
}
flag = true;
}
else
{
NetworkProximityChecker.CheckMethod checkMethod = this.checkMethod;
if (checkMethod != NetworkProximityChecker.CheckMethod.Physics3D)
{
if (checkMethod != NetworkProximityChecker.CheckMethod.Physics2D)
{
flag = false;
}
else
{
foreach (Collider2D collider2D in Physics2D.OverlapCircleAll(base.transform.position, (float)this.visRange))
{
NetworkIdentity component2 = collider2D.GetComponent<NetworkIdentity>();
if (component2 != null && component2.connectionToClient != null)
{
observers.Add(component2.connectionToClient);
}
}
flag = true;
}
}
else
{
foreach (Collider collider in Physics.OverlapSphere(base.transform.position, (float)this.visRange))
{
NetworkIdentity component3 = collider.GetComponent<NetworkIdentity>();
if (component3 != null && component3.connectionToClient != null)
{
observers.Add(component3.connectionToClient);
}
}
flag = true;
}
}
return flag;
}
// Token: 0x0600036F RID: 879 RVA: 0x00013D0B File Offset: 0x00011F0B
public override void OnSetLocalVisibility(bool vis)
{
NetworkProximityChecker.SetVis(base.gameObject, vis);
}
// Token: 0x06000370 RID: 880 RVA: 0x00013D1C File Offset: 0x00011F1C
private static void SetVis(GameObject go, bool vis)
{
foreach (Renderer renderer in go.GetComponents<Renderer>())
{
renderer.enabled = vis;
}
for (int j = 0; j < go.transform.childCount; j++)
{
Transform child = go.transform.GetChild(j);
NetworkProximityChecker.SetVis(child.gameObject, vis);
}
}
// Token: 0x040001A6 RID: 422
public int visRange = 10;
// Token: 0x040001A7 RID: 423
public float visUpdateInterval = 1f;
// Token: 0x040001A8 RID: 424
public NetworkProximityChecker.CheckMethod checkMethod = NetworkProximityChecker.CheckMethod.Physics3D;
// Token: 0x040001A9 RID: 425
public bool forceHidden = false;
// Token: 0x040001AA RID: 426
private float m_VisUpdateTime;
// Token: 0x02000054 RID: 84
public enum CheckMethod
{
// Token: 0x040001AC RID: 428
Physics3D,
// Token: 0x040001AD RID: 429
Physics2D
}
}
}