static NintendoSwitch.Key GetKey(string keyname, string direction = "0") { int degree; if (int.TryParse(direction, out degree)) { if (keyname.Equals("LS", StringComparison.OrdinalIgnoreCase)) { return(NintendoSwitch.Key.LStick(degree)); } else { return(NintendoSwitch.Key.RStick(degree)); } } else { var dk = NSKeys.GetDirection(direction); if (dk == NintendoSwitch.DirectionKey.None) { return(null); } if (keyname.Equals("LS", StringComparison.OrdinalIgnoreCase)) { return(NintendoSwitch.Key.LStick(dk)); } else { return(NintendoSwitch.Key.RStick(dk)); } } }
private static Statement KeyParse(ParserArgument args) { NintendoSwitch.ECKey key; var m = Regex.Match(args.Text, @"^([a-z]+)$", RegexOptions.IgnoreCase); if (m.Success && (key = NSKeys.Get(m.Groups[1].Value)) != null) { return(new KeyPress(key)); } m = Regex.Match(args.Text, $@"^([a-z]+)\s+{Formats.ValueEx}$", RegexOptions.IgnoreCase); if (m.Success && (key = NSKeys.Get(m.Groups[1].Value)) != null) { return(new KeyPress(key, args.Formatter.GetValueEx(m.Groups[2].Value))); } m = Regex.Match(args.Text, @"^([a-z]+)\s+down$", RegexOptions.IgnoreCase); if (m.Success && (key = NSKeys.Get(m.Groups[1].Value)) != null) { return(new KeyDown(key)); } m = Regex.Match(args.Text, @"^([a-z]+)\s+up$", RegexOptions.IgnoreCase); if (m.Success && (key = NSKeys.Get(m.Groups[1].Value)) != null) { return(new KeyUp(key)); } // stick return(StickParse(args)); }
protected override string _GetString(Formatter formatter) { return(_omitted ? $"{NSKeys.GetName(Key)}" : $"{NSKeys.GetName(Key)} {Duration.GetCodeText(formatter)}"); }
protected override string _GetString(Formatter formatter) { return($"{NSKeys.GetName(Key)} UP"); }