75 lines
No EOL
2.2 KiB
C#
75 lines
No EOL
2.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using EFT;
|
|
using EscapeFromTarkovCheat.Utils;
|
|
using UnityEngine;
|
|
|
|
namespace EscapeFromTarkovCheat.Data
|
|
{
|
|
|
|
public class GamePlayer
|
|
{
|
|
|
|
public Player Player { get; }
|
|
|
|
public Vector3 ScreenPosition => screenPosition;
|
|
|
|
public Vector3 HeadScreenPosition => headScreenPosition;
|
|
|
|
public bool IsOnScreen { get; private set; }
|
|
|
|
public bool IsVisible { get; private set; }
|
|
|
|
public float Distance { get; private set; }
|
|
|
|
public bool IsAI { get; private set; }
|
|
|
|
public string FormattedDistance => $"{(int)Math.Round(Distance)}m";
|
|
|
|
private Vector3 screenPosition;
|
|
private Vector3 headScreenPosition;
|
|
|
|
public GamePlayer(Player player)
|
|
{
|
|
if (player == null)
|
|
throw new ArgumentNullException(nameof(player));
|
|
|
|
this.Player = player;
|
|
screenPosition = default;
|
|
headScreenPosition = default;
|
|
IsOnScreen = false;
|
|
Distance = 0f;
|
|
IsAI = true;
|
|
}
|
|
public Vector3 GetBonePosition(BoneType boneType)
|
|
{
|
|
if (Player.PlayerBody?.SkeletonRootJoint?.Bones == null)
|
|
return Vector3.zero;
|
|
|
|
Transform boneTransform = Player.PlayerBody.SkeletonRootJoint.Bones.ElementAtOrDefault((int)boneType).Value;
|
|
|
|
if (boneTransform == null)
|
|
return Vector3.zero;
|
|
|
|
return GameUtils.WorldPointToScreenPoint(boneTransform.position);
|
|
}
|
|
|
|
public void RecalculateDynamics()
|
|
{
|
|
if (!GameUtils.IsPlayerValid(Player))
|
|
return;
|
|
|
|
screenPosition = GameUtils.WorldPointToScreenPoint(Player.Transform.position);
|
|
|
|
if (Player.PlayerBones != null)
|
|
headScreenPosition = GameUtils.WorldPointToScreenPoint(Player.PlayerBones.Head.position);
|
|
|
|
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
|
Distance = Vector3.Distance(Main.MainCamera.transform.position, Player.Transform.position);
|
|
|
|
if ((Player.Profile != null) && (Player.Profile.Info != null))
|
|
IsAI = (Player.Profile.Info.RegistrationDate <= 0);
|
|
|
|
}
|
|
}
|
|
} |