protected override bool TryParse(ArgList args, out Vector4f result) { result = Vector4f.ZERO; if (args.Count < 4) { return(false); } Arg[] tokens = new Arg[4]; for (int i = 0; i < tokens.Length; i++) { tokens[i] = args.Next; if (tokens[i].Type != ArgType.Numeric) { return(false); } } result.x = tokens[0].FloatValue; result.y = tokens[1].FloatValue; result.z = tokens[2].FloatValue; result.w = tokens[3].FloatValue; return(true); }
public void ExecuteCommand(ExecuteMode mode, string name, ArgList args) { if (IsAliasRegistered(name)) { name = aliases[name]; } if (!IsCommandRegistered(name)) { Engine.Log.WriteLine("error/system", "Could not find command {0}", name); return; } switch (mode) { case ExecuteMode.Append: commandBuffer.Append(commands[name], args); break; case ExecuteMode.Immediate: commands[name].Execute(args); break; case ExecuteMode.Insert: commandBuffer.Insert(commands[name], args); break; } }
public override void Parse(ArgList args) { if (HasFlag(CvarFlag.WriteProtected)) { Engine.Log.WriteLine("error/system", "Cvar {0} is write protected", Name); return; } T result; if (!TryParse(args, out result)) { Engine.Log.WriteLine("error/system", "Could not parse value {0} for cvar {1}", value, Name); return; } if (!IsValidValue(result)) { Engine.Log.WriteLine("error/system", "Value {0} is not valid for cvar {1}", value, Name); return; } Set(result); }
public void ExecuteCommand(ExecuteMode mode, string name, string argString) { ArgList args = new ArgList(); args.Parse(argString); ExecuteCommand(mode, name, args); }
protected override bool TryParse(ArgList args, out T result) { result = default(T); if (args.Count == 0) { return(false); } Arg token = args.Next; if (!Enum.TryParse <T>(token, out result)) { return(false); } return(Enum.IsDefined(typeof(T), result)); }
public void Execute(string statement) { ArgList args = new ArgList(); args.Parse(statement); if (args.Count == 0) { Engine.Log.WriteLine("warning/system", "Attempted to execute empty statement"); return; } Arg arg = args.Next; // Resolve alias if registered. if (aliases.ContainsKey(arg)) { arg = aliases[arg]; } if (IsCommandRegistered(arg)) { ExecuteCommand(ExecuteMode.Append, arg, args); } else if (IsCvarRegistered(arg)) { if (args.Count == 0) { // Print cvar value. Engine.Log.WriteLine("info/system", "{0} = {1}", arg, GetCvarValue(arg)); } else { // Assign cvar value. GetCvar(arg).Parse(args); } } else { Engine.Log.WriteLine("error/system", "Unknown command/cvar {0}", arg); } }
protected abstract bool TryParse(ArgList args, out T result);