Files
BlockSpace-v1.5.0b/Assets/Scripts/Assembly-CSharp/NodePlayerUtility.cs
T
2026-06-01 17:19:55 +02:00

102 lines
2.5 KiB
C#

using BlockSpace.Voxels;
using Photon.Pun;
using Photon.VR;
using Photon.VR.Player;
using UnityEngine;
internal static class NodePlayerUtility
{
public static float GetVoxelSize()
{
if (!(VoxelGroupManager.Instance != null))
{
return 0.125f;
}
return VoxelGroupManager.Instance.VoxelSize;
}
public static Vector3 WorldToVoxelPosition(Vector3 worldPosition)
{
float num = Mathf.Max(0.0001f, GetVoxelSize());
return worldPosition / num;
}
public static Vector3 VoxelToWorldPosition(Vector3 voxelPosition)
{
return voxelPosition * Mathf.Max(0.0001f, GetVoxelSize());
}
public static int NormalizeQuarterTurns(int turns)
{
turns %= 4;
if (turns >= 0)
{
return turns;
}
return turns + 4;
}
public static Vector3Int WorldEulerToQuarterTurns(Vector3 eulerAngles)
{
return new Vector3Int(NormalizeQuarterTurns(Mathf.RoundToInt(eulerAngles.x / 90f)), NormalizeQuarterTurns(Mathf.RoundToInt(eulerAngles.y / 90f)), NormalizeQuarterTurns(Mathf.RoundToInt(eulerAngles.z / 90f)));
}
public static int ResolveLocalPlayerId()
{
PhotonVRPlayer photonVRPlayer = ((PhotonVRManager.Manager != null) ? PhotonVRManager.Manager.LocalPlayer : null);
if (photonVRPlayer != null && photonVRPlayer.photonView != null && photonVRPlayer.photonView.Owner != null)
{
return photonVRPlayer.photonView.Owner.ActorNumber;
}
if (PhotonNetwork.LocalPlayer == null)
{
return 0;
}
return PhotonNetwork.LocalPlayer.ActorNumber;
}
public static bool IsLocalPlayerId(int playerId)
{
if (playerId > 0)
{
return playerId == ResolveLocalPlayerId();
}
return false;
}
public static PhotonVRPlayer ResolvePlayer(int playerId)
{
if (playerId <= 0)
{
return null;
}
PhotonVRPlayer photonVRPlayer = ((PhotonVRManager.Manager != null) ? PhotonVRManager.Manager.LocalPlayer : null);
if (photonVRPlayer != null && photonVRPlayer.photonView != null && photonVRPlayer.photonView.OwnerActorNr == playerId)
{
return photonVRPlayer;
}
PhotonVRPlayer[] array = Object.FindObjectsByType<PhotonVRPlayer>(FindObjectsInactive.Include);
foreach (PhotonVRPlayer photonVRPlayer2 in array)
{
if (!(photonVRPlayer2 == null) && !(photonVRPlayer2.photonView == null) && photonVRPlayer2.photonView.OwnerActorNr == playerId)
{
return photonVRPlayer2;
}
}
return null;
}
public static Transform ResolveHeadTransform(PhotonVRPlayer player)
{
if (player == null)
{
return null;
}
if (!(player.Head != null))
{
return player.transform;
}
return player.Head;
}
}