2
0
mirror of https://github.com/9ParsonsB/Pulsar.git synced 2025-07-01 08:23:42 -04:00

Update Journal File Handling

Now Correctly deserializes Journal events
This commit is contained in:
2024-05-12 12:55:28 +10:00
parent e59ca066ab
commit bd811c861c
29 changed files with 714 additions and 442 deletions

View File

@ -7,13 +7,13 @@ class FleetCarrierTravelConverter : JsonConverter<float>
{
public override float Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
return float.Parse(reader.GetString().Split(' ')[0]);
return reader.GetSingle();
}
if (reader.TokenType == JsonTokenType.String)
return float.Parse(reader.GetString().Split(' ')[0]);
return reader.GetSingle();
}
public override void Write(Utf8JsonWriter writer, float value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
writer.WriteStringValue(value.ToString());
}
}

View File

@ -7,13 +7,13 @@ public class IntBoolFlexConverter : JsonConverter<bool>
{
public override bool Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.Number)
return reader.GetInt16() == 1;
return reader.GetBoolean();
}
if (reader.TokenType == JsonTokenType.Number)
return reader.GetInt16() == 1;
return reader.GetBoolean();
}
public override void Write(Utf8JsonWriter writer, bool value, JsonSerializerOptions options)
{
writer.WriteBooleanValue(value);
}
writer.WriteBooleanValue(value);
}
}

View File

@ -21,6 +21,6 @@ public class LegacyFactionConverter<TFaction> : JsonConverter<TFaction> where TF
public override void Write(Utf8JsonWriter writer, TFaction value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -41,11 +41,12 @@ public class MaterialCompositionConverter : JsonConverter<ImmutableList<Material
return materialComposition.ToImmutableList();
}
return (ImmutableList<MaterialComposition>)JsonSerializer.Deserialize(ref reader, typeof(ImmutableList<MaterialComposition>));
return JsonSerializer.Deserialize<ImmutableList<MaterialComposition>>(ref reader, options)!;
}
public override void Write(Utf8JsonWriter writer, ImmutableList<MaterialComposition> value, JsonSerializerOptions options)
public override void Write(Utf8JsonWriter writer, ImmutableList<MaterialComposition> value,
JsonSerializerOptions options)
{
throw new NotImplementedException();
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -11,42 +11,44 @@ namespace Observatory.Framework.Files.Converters;
/// </summary>
public class MaterialConverter : JsonConverter<ImmutableList<Material>>
{
public override ImmutableList<Material> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
public override ImmutableList<Material> Read(ref Utf8JsonReader reader, Type typeToConvert,
JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.StartObject)
if (reader.TokenType == JsonTokenType.StartObject)
{
var materialComposition = new List<Material>();
while (reader.Read())
{
var materialComposition = new List<Material>();
while (reader.Read())
if (reader.TokenType != JsonTokenType.EndObject)
{
if (reader.TokenType != JsonTokenType.EndObject)
if (reader.TokenType == JsonTokenType.PropertyName)
{
if (reader.TokenType == JsonTokenType.PropertyName)
var name = reader.GetString();
reader.Read();
var count = reader.GetInt32();
var material = new Material
{
var name = reader.GetString();
reader.Read();
var count = reader.GetInt32();
var material = new Material
{
Name = name,
Name_Localised = name,
Count = count
};
materialComposition.Add(material);
}
}
else
{
break;
Name = name,
Name_Localised = name,
Count = count
};
materialComposition.Add(material);
}
}
return materialComposition.ToImmutableList();
else
{
break;
}
}
return (ImmutableList<Material>)JsonSerializer.Deserialize(ref reader, typeof(ImmutableList<Material>));
return materialComposition.ToImmutableList();
}
return JsonSerializer.Deserialize<ImmutableList<Material>>(ref reader, options)!;
}
public override void Write(Utf8JsonWriter writer, ImmutableList<Material> value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -32,6 +32,6 @@ public class MissionEffectConverter : JsonConverter<MissionEffect>
public override void Write(Utf8JsonWriter writer, MissionEffect value, JsonSerializerOptions options)
{
throw new NotImplementedException();
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -14,6 +14,9 @@ class MutableStringDoubleConverter : JsonConverter<object>
public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options)
{
throw new NotImplementedException();
if (value.GetType() == typeof(string))
writer.WriteStringValue((string)value);
else
writer.WriteNumberValue((double)value);
}
}

View File

@ -14,6 +14,6 @@ class PipConverter : JsonConverter<(int Sys, int Eng, int Wep)>
public override void Write(Utf8JsonWriter writer, (int Sys, int Eng, int Wep) value, JsonSerializerOptions options)
{
JsonSerializer.Serialize(writer, new[] { value.Sys, value.Eng, value.Wep });
JsonSerializer.Serialize(writer, new {value.Sys, value.Eng, value.Wep}, options);
}
}

View File

@ -12,6 +12,6 @@ public class RepInfConverter : JsonConverter<int>
public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options)
{
throw new NotImplementedException();
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -17,6 +17,6 @@ public class StarPosConverter : JsonConverter<(double x, double y, double z)>
public override void Write(Utf8JsonWriter writer, (double x, double y, double z) value, JsonSerializerOptions options)
{
throw new NotImplementedException();
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -21,6 +21,6 @@ public class StationServiceConverter : JsonConverter<StationService>
public override void Write(Utf8JsonWriter writer, StationService value, JsonSerializerOptions options)
{
throw new NotImplementedException();
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -14,6 +14,6 @@ class StringIntConverter : JsonConverter<int>
public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
JsonSerializer.Serialize(writer, value, options);
}
}

View File

@ -7,22 +7,22 @@ class ThargoidWarRemainingTimeConverter : JsonConverter<int>
{
public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
var value = reader.GetString();
var dayCount = int.TryParse(value.Split(' ')[0], out var days)
? days
: 0;
if (reader.TokenType == JsonTokenType.String)
{
var value = reader.GetString();
return dayCount;
}
var dayCount = int.TryParse(value.Split(' ')[0], out var days)
? days
: 0;
return reader.GetInt32();
return dayCount;
}
return reader.GetInt32();
}
public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options)
{
writer.WriteStringValue(value + " Days");
}
writer.WriteStringValue(value + " Days");
}
}

View File

@ -8,18 +8,18 @@ class VoucherTypeConverter : JsonConverter<VoucherType>
{
public override VoucherType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var voucher = reader.GetString();
var voucher = reader.GetString();
if (voucher.Length == 0)
voucher = "None";
if (voucher.Length == 0)
voucher = "None";
var missionEffect = (VoucherType)Enum.Parse(typeof(VoucherType), voucher, true);
var missionEffect = (VoucherType)Enum.Parse(typeof(VoucherType), voucher, true);
return missionEffect;
}
return missionEffect;
}
public override void Write(Utf8JsonWriter writer, VoucherType value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
JsonSerializer.Serialize(writer, value, options);
}
}