Esempio n. 1
0
 /// <summary>
 /// Used internally by the alias command to execute aliases.
 /// </summary>
 /// <param name="console">The console.</param>
 /// <param name="cmd">The command.</param>
 private static void AliasExecution(ConsoleManager console, ExecutableCommand cmd)
 {
     CommandList commands = ScriptUtilities.ParseString(console.GetCommand(cmd.Name).Help);
     console.Execute(commands);
 }
Esempio n. 2
0
        public static void Repeat(ConsoleManager console, ExecutableCommand cmd)
        {
            if (cmd.Arguments.Count != 2)
            {
                throw new ArgumentException(string.Format("Wrong number of arguments for repeat (expected 2, got {0})", cmd.Arguments.Count));
            }

            int n = int.Parse(cmd.Arguments[0].Value);
            string cmds = cmd.Arguments[1].Value;

            CommandList commands = ScriptUtilities.ParseString(cmds);
            for (int i = 0; i < n; i++)
            {
                console.Execute(commands);
            }
        }
Esempio n. 3
0
        public static void Timer(ConsoleManager console, ExecutableCommand cmd)
        {
            if (cmd.Arguments.Count != 2)
            {
                throw new ArgumentException(string.Format("Wrong number of arguments for timer (expected 2, got {0})", cmd.Arguments.Count));
            }

            string secondsString = cmd.Arguments[0].Value;
            float seconds = 0;
            if (!float.TryParse(secondsString, out seconds))
            {
                throw new ArgumentException(string.Format("Unable to parse \"{0}\" to a float", secondsString));
            }

            string command = cmd.Arguments[1].Value;

            TaskInfo task = new TaskInfo()
            {
                ExecuteAfter = seconds,
                Task = () =>
                    {
                        try
                        {
                            console.Execute(ScriptUtilities.ParseString(command));
                        }
                        catch (Exception e)
                        {
                            ConsoleManager.ConsoleLog.Warn("Unable to execute delayed commands", e);
                        }
                    }
            };

            GameEngine.Instance.Scheduler.ScheduleTask(task);
        }
Esempio n. 4
0
        public static void IfLess(ConsoleManager console, ExecutableCommand cmd)
        {
            if (cmd.Arguments.Count != 3 && cmd.Arguments.Count != 4)
            {
                throw new ArgumentException(string.Format("Wrong number of arguments for if_less (expected 3 or 4, got {0})", cmd.Arguments.Count));
            }

            double a = double.Parse(cmd.Arguments[0].Value);
            double b = double.Parse(cmd.Arguments[1].Value);
            string ifTrue = cmd.Arguments[2].Value;
            string ifFalse = cmd.Arguments.Count == 4 ? cmd.Arguments[3].Value : null;

            if (ifTrue != null && !string.Empty.Equals(ifTrue) && a < b)
            {
                CommandList commands = ScriptUtilities.ParseString(ifTrue);
                console.Execute(commands);
            }
            else if (ifFalse != null && !string.Empty.Equals(ifFalse))
            {
                CommandList commands = ScriptUtilities.ParseString(ifFalse);
                console.Execute(commands);
            }
        }
Esempio n. 5
0
        public static void Include(ConsoleManager console, ExecutableCommand cmd)
        {
            if (cmd.Arguments.Count != 1)
            {
                throw new ArgumentException(string.Format("Wrong number of arguments for include (expected 1, got {0})", cmd.Arguments.Count));
            }

            string filename = cmd.Arguments[0].Value;

            CommandList commands = GameEngine.Instance.AssetManager.Load<CommandList>(filename);
            console.Execute(commands);
        }