mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 23:02:34 +02:00
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Globalization;
|
|
using Robust.Shared.Console;
|
|
|
|
namespace Robust.Shared.Configuration
|
|
{
|
|
[SuppressMessage("ReSharper", "StringLiteralTypo")]
|
|
internal abstract class SharedCVarCommand : ICommand
|
|
{
|
|
public string Command => "cvar";
|
|
public string Description => "Gets or sets a CVar.";
|
|
|
|
public string Help => @"cvar <name> [value]
|
|
If a value is passed, the value is parsed and stored as the new value of the CVar.
|
|
If not, the current value of the CVar is displayed.";
|
|
|
|
protected static object ParseObject(Type type, string input)
|
|
{
|
|
if (type == typeof(bool))
|
|
{
|
|
if(bool.TryParse(input, out var val))
|
|
return val;
|
|
|
|
if (int.TryParse(input, out var intVal))
|
|
{
|
|
if (intVal == 0) return false;
|
|
if (intVal == 1) return true;
|
|
}
|
|
|
|
throw new FormatException($"Could not parse bool value: {input}");
|
|
}
|
|
|
|
if (type == typeof(string))
|
|
{
|
|
return input;
|
|
}
|
|
|
|
if (type == typeof(int))
|
|
{
|
|
return int.Parse(input, CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
if (type == typeof(float))
|
|
{
|
|
return float.Parse(input, CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|