/// <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(); }
void ShowMenuItem(KeyOption keyOption) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(keyOption.KeyName); Console.ForegroundColor = ConsoleColor.White; Console.Write(keyOption.Description); }
public override void ExplicitVisit(KeyOption fragment) { _fragments.Add(fragment); }
public override void ExplicitVisit(KeyOption node) { this.action(node); }