Exemple #1
0
        public static Point?GetDirectionDown(this IDictionary <Keys, Point> map, InputTwinState state)
        {
            var shift  = state.IsKeyDown(Keys.LeftShift);
            var result = map.Where(x => state.IsKeyDown(x.Key)).Select(x => x.Value);

            if (result.Count() < 2 && shift)
            {
                return(null);
            }
            var direction = result.Aggregate(Point.Zero, (a, b) => a + b);

            if (direction == Point.Zero)
            {
                return(null);
            }
            return(direction);
        }
Exemple #2
0
        public static Point?GetDirectionNumpadDown(InputTwinState state)
        {
            var result = NumpadKeys.Where(x => state.IsKeyDown(x.Key)).Select(x => x.Value);

            if (result.Count() == 1)
            {
                return(result.Single());
            }
            return(null);
        }
Exemple #3
0
        public static int?GetNumberDown(this IDictionary <Keys, int> map, InputTwinState state)
        {
            var result = map.Where(x => state.IsKeyDown(x.Key)).Select(x => x.Value);

            if (result.Count() == 1)
            {
                return(result.Single());
            }
            return(null);
        }