Mappp
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user