using OWML.Common;
using QSB.Utility;
using UnityEngine;
namespace QSB.Player;
public partial class PlayerInfo
{
public OWCamera Camera
{
get => _camera;
set
{
if (value == null)
{
DebugLog.ToConsole($"Warning - Setting {PlayerId}.Camera to null.", MessageType.Warning);
}
_camera = value;
}
}
private OWCamera _camera;
public GameObject CameraBody { get; set; }
public GameObject Body
{
get
{
if (_body == null && IsReady)
{
DebugLog.ToConsole($"Warning - {PlayerId}.Body is null!", MessageType.Warning);
}
return _body;
}
set
{
if (value == null)
{
DebugLog.ToConsole($"Warning - Setting {PlayerId}.Body to null.", MessageType.Warning);
}
_body = value;
}
}
private GameObject _body;
///
/// remote light sensor is disabled.
/// it only acts as a storage of data and is always synced with the local light sensor.
///
public LightSensor LightSensor
{
get
{
if (IsLocalPlayer)
{
return Locator.GetPlayerLightSensor();
}
if (CameraBody == null)
{
DebugLog.ToConsole($"Error - Can't get LightSensor for {PlayerId}, because CameraBody is null.", MessageType.Error);
return null;
}
return CameraBody.transform.Find("REMOTE_CameraDetector").GetComponent();
}
}
public Vector3 Velocity
{
get
{
if (IsLocalPlayer)
{
return Locator.GetPlayerBody().GetVelocity();
}
if (Body == null)
{
DebugLog.ToConsole($"Error - Can't get velocity for {PlayerId}, because Body is null.", MessageType.Error);
return Vector3.zero;
}
return Body.GetComponent().Velocity;
}
}
}