Files
PCK-Studio/PCK-Studio/Internal/Json/JsonModelMetaData.cs
2024-11-16 16:51:35 +01:00

50 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace PckStudio.Internal.Json
{
internal class ModelMetaDataPart
{
[JsonProperty("name", Required = Required.Always)]
public string Name { get; set; }
[JsonProperty("children", NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore)]
public ModelMetaDataPart[] Children { get; set; } = Array.Empty<ModelMetaDataPart>();
[JsonConstructor]
public ModelMetaDataPart()
{
}
public ModelMetaDataPart(string name)
: this(name, Array.Empty<ModelMetaDataPart>())
{
}
public ModelMetaDataPart(string name, params ModelMetaDataPart[] children)
{
Name = name;
Children = children;
}
}
internal class JsonModelMetaData
{
[JsonProperty("textureLocations", Required = Required.Always)]
public string[] TextureLocations { get; set; }
[JsonProperty("materialName", NullValueHandling = NullValueHandling.Ignore)]
public string MaterialName { get; set; } = string.Empty;
[JsonProperty("parts", NullValueHandling = NullValueHandling.Ignore)]
public ModelMetaDataPart[] RootParts { get; set; } = Array.Empty<ModelMetaDataPart>();
}
}