/// <summary> /// Fire <see cref="OnGetTabOptions"/> for any ConsoleCommand when its tabOptions member /// is first populated to add Jötunn entities to the option list /// </summary> /// <param name="self"></param> /// <param name="result"></param> /// <returns></returns> private void ConsoleCommand_GetTabOptions(Terminal.ConsoleCommand self, ref List <string> result) { if (self.m_tabOptions == null && self.m_tabOptionsFetcher != null) { OnGetTabOptions?.SafeInvoke(self.Command, result); } }
public void RegisterConsoleCommand(Terminal.ConsoleCommand cmd) { // Only register commands if the terminal has finished initializing if (!ReflectionUtils.GetPrivateStaticField <bool>(typeof(Terminal), "m_terminalInitialized")) { // Add to queue to initialize later queuedCommands.Add(cmd); return; } var commands = ReflectionUtils.GetPrivateField <Dictionary <string, Terminal.ConsoleCommand> >(Console.instance, "commands"); // Register queued commands if (queuedCommands.Count > 0) { foreach (Terminal.ConsoleCommand c in queuedCommands) { // Cannot have two commands with same name if (commands.ContainsKey(c.Command)) { Debug.LogError("Cannot have two console commands with same name: " + cmd.Command); return; } commands.Add(c.Command, c); } queuedCommands.Clear(); } // Cannot have two commands with same name if (commands.ContainsKey(cmd.Command)) { Debug.LogError("Cannot have two console commands with same name: " + cmd.Command); return; } // Add command commands.Add(cmd.Command, cmd); }
private static void ConsoleCommand_GetTabOptions(Terminal.ConsoleCommand __instance, ref List <string> __result) => Instance.ConsoleCommand_GetTabOptions(__instance, ref __result);