public static void SetVariable(ConsoleManager console, ExecutableCommand cmd) { if (cmd.Arguments.Count != 2) { throw new ArgumentException(string.Format("Wrong number of arguments for set (expected 2, got {0})", cmd.Arguments.Count)); } string varName = cmd.Arguments[0].Value; string value = cmd.Arguments[1].Value; IConVar var = null; if (!console.ContainsVariable(varName)) { var = new BasicConVar(); console.RegisterVariable(varName, var); } else { var = console.GetVariable(varName); } var.Value = value; ConsoleManager.ConsoleLog.Info(string.Format("set {0} = \"{1}\"", varName, value)); }
/// <summary> /// Build the console variables for interfacing the engine and the console. /// </summary> /// <param name="console">The console.</param> public static void Build(ConsoleManager console) { console.RegisterVariable( "e_running", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.IsRunning.ToString(); } }); console.RegisterVariable( "e_time_delta", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.Delta.ToString(); } }); console.RegisterVariable( "e_timer", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.Timer.Elapsed.TotalSeconds.ToString(); } }); console.RegisterVariable( "e_state", new DelegateConVar() { GetFunc = () => { if (GameEngine.Instance.StateManager.CurrentState == null) { return "null"; } return GameEngine.Instance.StateManager.CurrentState.GetType().ToString(); } }); console.RegisterVariable( "e_fps", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.FPS.ToString(); } }); console.RegisterVariable( "e_frameskip", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.FrameSkip.ToString(); } }); console.RegisterVariable( "e_clearcolor", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.ClearColor.R.ToString() + ", " + GameEngine.Instance.ClearColor.G.ToString() + ", " + GameEngine.Instance.ClearColor.B.ToString(); } }); console.RegisterVariable( "e_clearcolor_r", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.ClearColor.R.ToString(); }, SetFunc = (value) => { GameEngine.Instance.ClearColor = new SFML.Graphics.Color(byte.Parse(value), GameEngine.Instance.ClearColor.G, GameEngine.Instance.ClearColor.B, GameEngine.Instance.ClearColor.A); } }); console.RegisterVariable( "e_clearcolor_g", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.ClearColor.G.ToString(); }, SetFunc = (value) => { GameEngine.Instance.ClearColor = new SFML.Graphics.Color(GameEngine.Instance.ClearColor.R, byte.Parse(value), GameEngine.Instance.ClearColor.B, GameEngine.Instance.ClearColor.A); } }); console.RegisterVariable( "e_clearcolor_b", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.ClearColor.B.ToString(); }, SetFunc = (value) => { GameEngine.Instance.ClearColor = new SFML.Graphics.Color(GameEngine.Instance.ClearColor.R, GameEngine.Instance.ClearColor.G, byte.Parse(value), GameEngine.Instance.ClearColor.A); } }); console.RegisterVariable( "e_task_count", new DelegateConVar() { GetFunc = () => { return GameEngine.Instance.Scheduler.Tasks.Count.ToString(); } }); }