/// <summary> /// Wird ausgeführt, sobald ein KeyBindingListener erstellt wird und danach, /// wenn sich die Tastenbelegung geändert hat. /// </summary> public static void ReadKeyAssignments() { // Drehe die Zuordnung um; von (Taste -> Aktion) zu (Aktion -> Taste) Dictionary <PlayerAction, Keys> defaultReversed = DefaultKeyAssignment.ReverseDictionary(); // Leere die aktuelle Zuordnung CurrentKeyAssignment.Clear(); // Fülle die aktuelle Zuordnung mit aus der Einstellungsdatei gelesenen werten. // Iteriere dazu über alle gültigen PlayerActions... foreach (PlayerAction action in PlayerAction.Values) { string actionName = action.Name; if (defaultReversed.ContainsKey(action)) { // Erstelle eine Option... KeyOption option = new KeyOption( section: "controls", name: actionName, defaultValue: defaultReversed [action], configFile: Config.Default ) { Verbose = false }; // und lese den Wert aus und speichere ihn in der Zuordnung. CurrentKeyAssignment [option.Value] = action; } } CurrentKeyAssignmentReversed = CurrentKeyAssignment.ReverseDictionary(); }
public static PlayerAction LookupAction(Keys key) { if (CurrentKeyAssignment.ContainsKey(key)) { return(CurrentKeyAssignment [key]); } else { throw new InvalidOperationException("There is no key -> action binding for key: " + key); } }
public static bool ContainsKey(Keys key) { return(CurrentKeyAssignment.ContainsKey(key)); }