private static IEnumerable <AdvCommandInfo> GatherCommands() { var largestValue = Enum.GetValues(typeof(Command)).Cast <int>().Max(); for (var i = 1; ; i++) { var value = (Command)i; // Try CommandGet first range check later, in order to support custom commands var aboveLargest = i > largestValue; #if KK var command = CommandList.CommandGet(value); #elif KKS var command = CommandGenerator.Create(value); #endif if (command != null) { yield return(new AdvCommandInfo(value, command, aboveLargest)); } else if (aboveLargest) { break; } else { AdvEditorPlugin.Logger.LogWarning("Unsupported ADV.Command: " + value); } } }
public override IEnumerable <int> GetScenarioCommandTranslationIndexes(Command command) { if (SelectionCommands.Contains(command)) { if (!SelectionParamIndex.TryGetValue(command, out var result)) { var cmd = CommandGenerator.Create(command); SelectionParamIndex[command] = result = cmd.ArgsLabel.ToList().IndexOf("Text"); } yield return(result); yield break; } foreach (var i in base.GetScenarioCommandTranslationIndexes(command)) { yield return(i); } }