This repository has been archived on 2025-10-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

37 lines
907 B
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RhythmBase.Events;
namespace RhythmBase.Converters
{
internal class TabsConverter : JsonConverter<Tabs>
{
public override void WriteJson(JsonWriter writer, Tabs value, JsonSerializer serializer) => writer.WriteValue(TabNames[(int)value]);
public override Tabs ReadJson(JsonReader reader, Type objectType, Tabs existingValue, bool hasExistingValue, JsonSerializer serializer)
{
string value = JToken.Load(reader).ToObject<string>()??throw new RhythmBase.Exceptions.ConvertingException("Cannot read the tab.");
int t = TabNames.ToList().IndexOf(value);
bool flag = t >= 0;
Tabs ReadJson;
if (flag)
{
ReadJson = (Tabs)t;
}
else
{
ReadJson = Tabs.Unknown;
}
return ReadJson;
}
private static readonly string[] TabNames =
[
"Song",
"Rows",
"Actions",
"Sprites",
"Rooms"
];
}
}