/// <summary> /// Initializes a new instance of the <see cref="DynamicCVar"/> class. /// Used by CryConsole.RegisterCVar to construct the CVar. /// </summary> /// <param name="name"></param> /// <param name="value"></param> /// <param name="flags"></param> /// <param name="help"></param> internal DynamicCVar(string name, object value, CVarFlags flags, string help) { Flags = flags; Help = help; Name = name; if (value is int) { intValue = (int)value; NativeCVarMethods.RegisterCVarInt(Name, ref intValue, intValue, Flags, Help); } else if (value is float || value is double) { floatValue = (float)value; NativeCVarMethods.RegisterCVarFloat(Name, ref floatValue, floatValue, Flags, Help); } else if (value is string) { stringValue = value as string; // String CVars are not supported yet. NativeCVarMethods.RegisterCVarString(Name, stringValue, stringValue, Flags, Help); } else { throw new CVarException(string.Format("Invalid data type ({0}) used in CVar {1}.", value.GetType(), Name)); } }
/// <summary> /// Registers a new console variable that will update the user defined float. /// </summary> /// <param name="name">console variable name</param> /// <param name="value">reference to the memory that will be updated</param> /// <param name="help">help text that is shown when you use <paramref name="name"/> ? in the console</param> /// <param name="flags"></param> /// <returns>Newly null if failed, new CVar instance if successful</returns> public static CVar RegisterFloat(string name, ref float value, string help = "", CVarFlags flags = CVarFlags.None) { NativeCVarMethods.RegisterCVarFloat(name, ref value, value, flags, help); CVars.Add(new ByRefCVar(name)); return(CVars.Last()); }
public static void Unregister(string name) { NativeCVarMethods.UnregisterCCommand(name); if (Commands.ContainsKey(name)) { Commands.Remove(name); } }
/// <summary> /// Register a new console command. /// </summary> /// <param name="name">Command name.</param> /// <param name="func">Delegate to the console command function to be called when command is invoked.</param> /// <param name="comment">Help string, will be displayed when typing in console "command ?".</param> /// <param name="flags">Bitfield consist of VF_ flags (e.g. VF_CHEAT)</param> public static void Register(string name, ConsoleCommandDelegate func, string comment = "", CVarFlags flags = CVarFlags.None) { if (!commands.ContainsKey(name)) { NativeCVarMethods.RegisterCommand(name, comment, flags); commands.Add(name, func); } else { throw new DuplicateConsoleCommandException(string.Format("The console command {0} was already registered", name)); } }
/// <summary> /// Retrieve a console variable by name - not case sensitive /// </summary> /// <param name="name">The name of the CVar to retrieve</param> /// <returns>null if not found, CVar instance if successful</returns> public static CVar Get(string name) { CVar cvar = CVars.FirstOrDefault(var => var.Name.Equals(name)); if (cvar != default(CVar)) { return(cvar); } if (NativeCVarMethods.HasCVar(name)) { CVars.Add(new ExternalCVar(name)); return(CVars.Last()); } return(null); }
internal static CVar Register(CVarAttribute attribute, MemberInfo memberInfo, string value) { if (attribute.Name == null) { attribute.Name = memberInfo.Name; } NativeCVarMethods.RegisterCVarString(attribute.Name, value, (string)attribute.DefaultValue ?? string.Empty, attribute.Flags, attribute.Help); if (memberInfo.MemberType == MemberTypes.Field) { CVars.Add(new StaticCVarField(attribute, memberInfo as FieldInfo)); } else { CVars.Add(new StaticCVarProperty(attribute, memberInfo as PropertyInfo)); } return(CVars.Last()); }
internal static CVar Register(CVarAttribute attribute, MemberInfo memberInfo, ref float value) { if (attribute.Name == null) { attribute.Name = memberInfo.Name; } NativeCVarMethods.RegisterCVarFloat(attribute.Name, ref value, System.Convert.ToSingle(attribute.DefaultValue), attribute.Flags, attribute.Help); if (memberInfo.MemberType == MemberTypes.Field) { CVars.Add(new StaticCVarField(attribute, memberInfo as FieldInfo)); } else { CVars.Add(new StaticCVarProperty(attribute, memberInfo as PropertyInfo)); } return(CVars.Last()); }
void Serialize() { var data = new ScriptManagerData(); data.LastScriptId = LastScriptId; data.Input.ActionmapEvents = Input.ActionmapEvents; data.Input.KeyEvents = Input.KeyEventsInvocationList; data.Input.MouseEvents = Input.MouseEventsInvocationList; if (GameRules.Current != null) { data.GameRulesId = GameRules.Current.Id; } else { data.GameRulesId = -1; } data.ConsoleCommands = ConsoleCommand.Commands; data.ConsoleVariables = CVar.CVars; data.ConsoleVariables.RemoveAll(cvar => { if (cvar is ByRefCVar) { NativeCVarMethods.UnregisterCVar(cvar.Name, true); return(true); } return(false); }); AddScriptInstance(data, ScriptType.CryScriptInstance); using (var stream = File.Create(SerializedScriptsFile)) Formatter.Serialize(stream, Scripts); }
/// <summary> /// Unregisters an existing console variable /// </summary> /// <param name="name"></param> /// <param name="delete"></param> public static void Unregister(string name, bool delete = false) { NativeCVarMethods.UnregisterCVar(name, delete); CVars.RemoveAll(x => x.Name == name); }
public static string GetCommandLineArgument(string name, CommandArgumentType type) { return(NativeCVarMethods.GetCmdArg(name, (int)type)); }
/// <summary> /// Executes a string in the console /// </summary> /// <param name="command">console command e.g. "map testy" - no leading slash</param> /// <param name="silent">suppresses log in error case and logging the command to the console</param> public static void Execute(string command, bool silent = false) { NativeCVarMethods.Execute(command, silent); }