muddesigner/MudEngine/GameObjects/Environment/TravelDirections.cs

68 lines
No EOL
2.5 KiB
C#

//Microsoft .NET Framework
using System;
namespace MudEngine.GameObjects
{
[System.Flags]
public enum AvailableTravelDirections : uint
{
None = 0,
North = 1,
South = 2,
East = 4,
West = 8,
Up = 16,
Down = 32,
Northeast = North | East,
Northwest = North | West,
Southeast = South | East,
Southwest = South | West
}
public static class TravelDirections
{
public static AvailableTravelDirections GetReverseDirection(AvailableTravelDirections Direction)
{
switch (Direction)
{
case AvailableTravelDirections.North:
return AvailableTravelDirections.South;
case AvailableTravelDirections.South:
return AvailableTravelDirections.North;
case AvailableTravelDirections.East:
return AvailableTravelDirections.West;
case AvailableTravelDirections.West:
return AvailableTravelDirections.East;
case AvailableTravelDirections.Up:
return AvailableTravelDirections.Down;
case AvailableTravelDirections.Down:
return AvailableTravelDirections.Up;
case AvailableTravelDirections.Northeast:
return AvailableTravelDirections.Southwest;
case AvailableTravelDirections.Southwest:
return AvailableTravelDirections.Northeast;
case AvailableTravelDirections.Northwest:
return AvailableTravelDirections.Southeast;
case AvailableTravelDirections.Southeast:
return AvailableTravelDirections.Northwest;
default:
return AvailableTravelDirections.None;
}
}
public static AvailableTravelDirections GetTravelDirectionValue(String Direction)
{
Array values = Enum.GetValues(typeof(AvailableTravelDirections));
foreach (Int32 value in values)
{
String displayName = Enum.GetName(typeof(AvailableTravelDirections), value);
if (displayName.ToLower() == Direction.ToLower())
return (AvailableTravelDirections)Enum.Parse(typeof(AvailableTravelDirections), displayName);
}
return AvailableTravelDirections.None;
}
}
}