Files
FORT-BO/Assets/CONTENT/FEATURES/MapRadar/MapPlayer.cs
T
2026-08-14 18:51:23 +05:00

37 lines
1.1 KiB
C#

using UnityEngine;
[DisallowMultipleComponent]
public sealed class MapPlayer : MonoBehaviour
{
[Header("Map Position")]
[SerializeField] private Vector2 mapCoordinates = new(5f, 5f);
private MapCoordinateSystem coordinateSystem;
public Vector2 MapCoordinates => mapCoordinates;
public MapCoordinateSystem CoordinateSystem => coordinateSystem;
public void Configure(MapCoordinateSystem newCoordinateSystem)
{
coordinateSystem = newCoordinateSystem;
SetMapCoordinates(mapCoordinates);
}
public void SetMapCoordinates(Vector2 coordinates)
{
mapCoordinates = coordinateSystem != null
? coordinateSystem.ClampCoordinates(coordinates)
: new Vector2(
Mathf.Clamp(coordinates.x, 0f, MapCoordinateSystem.CoordinateMaximum),
Mathf.Clamp(coordinates.y, 0f, MapCoordinateSystem.CoordinateMaximum));
if (coordinateSystem != null && coordinateSystem.HasValidCorners())
transform.position = coordinateSystem.CoordinatesToWorldPosition(mapCoordinates);
}
public Vector2 GetMapCoordinates()
{
return mapCoordinates;
}
}