KumiScript/loader/KSMetaParser.cs
2024-01-25 23:37:51 -06:00

43 lines
1.2 KiB
C#

using System.Text.RegularExpressions;
namespace KumiScript.Loader
{
public class KSMetaParser
{
readonly string _path;
readonly StreamReader _streamReader;
readonly Dictionary<string, int> _properties;
public KSMetaParser(string path)
{
_path = path;
_streamReader = new StreamReader(File.OpenRead(path));
_properties = new Dictionary<string, int>(8);
ParseFile();
}
private void ParseFile()
{
while (!_streamReader.EndOfStream)
{
string? line = _streamReader.ReadLine();
if (line is null)
continue;
line = Regex.Replace(line, "\\s+", string.Empty);
string[] kvp = line.Split(":", 2);
int v;
if (!int.TryParse(kvp[1], out v))
throw new Exception("Bad file!");
_properties.Add(kvp[0], v);
}
}
public int GetAttribute(string name)
{
int v = 0;
_properties.TryGetValue(name, out v);
return v;
}
}
}