StrawberryBF/src/Struct/Facings.bf

51 lines
745 B
Brainfuck
Raw Normal View History

2021-02-12 14:50:20 +08:00
using System;
2020-05-27 13:23:02 +08:00
namespace Strawberry
{
public enum Facings
{
case Right = 1;
case Left = -1;
public Facings Opposite()
{
if (this == .Right)
return .Left;
else
return .Right;
}
static public Facings FromInt(int i, Facings ifZero = .Right)
{
if (i == 0)
return ifZero;
else
return i;
}
2021-02-12 14:50:20 +08:00
[Inline, Commutable]
static public int operator*(Facings a, int b)
{
return b * (int)a;
}
[Inline, Commutable]
static public float operator*(Facings a, float b)
{
return b * (int)a;
}
2020-05-27 13:23:02 +08:00
static public implicit operator Facings(int i)
{
if (i < 0)
return .Left;
else
return .Right;
}
2020-06-21 08:31:04 +08:00
static public implicit operator Point(Facings f)
{
return .((int)f, 0);
}
2020-05-27 13:23:02 +08:00
}
}