25 lines
648 B
C#
25 lines
648 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace RobotAndDonkey.Game.Utils;
|
|
|
|
|
|
public static class DirectionExtensions
|
|
{
|
|
public static EDirection Opposite(this EDirection d) => Modify(d, 3);
|
|
public static EDirection RotateLeft(this EDirection d) => Modify(d, 1);
|
|
public static EDirection RotateRight(this EDirection d) => Modify(d, 5);
|
|
|
|
public static EDirection Modify(EDirection direction, int delta)
|
|
{
|
|
var i = (int)direction;
|
|
i += delta;
|
|
i %= 6;
|
|
if (i < 0)
|
|
i += 6;
|
|
return (EDirection)i;
|
|
}
|
|
} |