public Direction CarvableFlag()
        {
            var jumpableFlag = JumpableFlag();
            var flag         = GetFlagFromPoint();
            var carvableFlag = DirectionsFlagParser.FlagUnion(jumpableFlag, DirectionsFlagParser.OppositeFlag(flag));

            return(carvableFlag);
        }
 public bool AlreadyCarvedDirection(Direction d)
 {
     return(DirectionsFlagParser.FlagHasDirections(GetFlagFromPoint(), d));
 }
 public bool CanCarveInDirection(Direction d)
 {
     return(DirectionsFlagParser.FlagHasDirections(CarvableFlag(), d));
 }
 public IEnumerable <Direction> CarvableDirections()
 {
     return(DirectionsFlagParser.SplitDirectionsFromFlag(CarvableFlag()));
 }