First commit on my server, yey!

This commit is contained in:
Sebastian Bularca
2026-03-19 18:12:07 +01:00
parent 5139ec2cec
commit fedd1961a0
602 changed files with 101587 additions and 6 deletions

View File

@@ -0,0 +1,34 @@
using System;
using System.Text;
using Newtonsoft.Json;
namespace Jovian.SaveSystem {
/// <summary>
/// Serializes data to/from JSON using Newtonsoft.Json.
/// </summary>
public sealed class JsonSaveSerializer : ISaveSerializer {
private readonly JsonSerializerSettings serializerSettings;
public JsonSaveSerializer() {
serializerSettings = new JsonSerializerSettings {
TypeNameHandling = TypeNameHandling.None,
NullValueHandling = NullValueHandling.Ignore,
Formatting = Formatting.Indented
};
}
public byte[] Serialize<TData>(TData data) {
string json = JsonConvert.SerializeObject(data, serializerSettings);
return Encoding.UTF8.GetBytes(json);
}
public TData Deserialize<TData>(byte[] payload) {
if(payload == null || payload.Length == 0) {
throw new ArgumentException("Payload is null or empty.", nameof(payload));
}
string json = Encoding.UTF8.GetString(payload);
return JsonConvert.DeserializeObject<TData>(json, serializerSettings);
}
}
}