using UnityEngine;
public class Discrete2DRotation
{
public enum RotationDirection
{
North,
Northeast,
East,
Southeast,
South,
Southwest,
West,
Northwest
}
private RotationDirection _currentDirection;
public Discrete2DRotation(RotationDirection initialDirection = RotationDirection.North)
{
_currentDirection = initialDirection;
}
public float RotationAngle
{
get
{
return GetRotationAngle(_currentDirection);
}
}
public RotationDirection CurrentDirection
{
get => _currentDirection;
set => _currentDirection = value;
}
private float GetRotationAngle(RotationDirection direction)
{
switch (direction)
{
case RotationDirection.North:
return 0;
case RotationDirection.Northeast:
return 45;
case RotationDirection.East:
return 90;
case RotationDirection.Southeast:
return 135;
case RotationDirection.South:
return 180;
case RotationDirection.Southwest:
return 225;
case RotationDirection.West:
return 270;
case RotationDirection.Northwest:
return 315;
default:
return 0;
}
}
}