/* ┌──────────────────────────────────────────────────────────────────┐ │ Author: Ivan Murzak (https://github.com/IvanMurzak) │ │ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │ │ Copyright (c) 2025 Ivan Murzak │ │ Licensed under the Apache License, Version 2.0. │ │ See the LICENSE file in the project root for more information. │ └──────────────────────────────────────────────────────────────────┘ */ #nullable enable using System; using System.Text.Json; using System.Text.Json.Nodes; using com.IvanMurzak.ReflectorNet.Json; using com.IvanMurzak.ReflectorNet.Utils; using UnityEngine; namespace com.IvanMurzak.Unity.MCP.JsonConverters { public class Vector3Converter : JsonSchemaConverter, IJsonSchemaConverter { public override JsonNode GetSchema() => new JsonObject { [JsonSchema.Type] = JsonSchema.Object, [JsonSchema.Properties] = new JsonObject { ["x"] = new JsonObject { [JsonSchema.Type] = JsonSchema.Number }, ["y"] = new JsonObject { [JsonSchema.Type] = JsonSchema.Number }, ["z"] = new JsonObject { [JsonSchema.Type] = JsonSchema.Number } }, [JsonSchema.Required] = new JsonArray { "x", "y", "z" }, [JsonSchema.AdditionalProperties] = false }; public override JsonNode GetSchemaRef() => new JsonObject { [JsonSchema.Ref] = JsonSchema.RefValue + Id }; public override Vector3 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => JsonFloatHelper.ReadVector3(ref reader, options); public override void Write(Utf8JsonWriter writer, Vector3 value, JsonSerializerOptions options) => JsonFloatHelper.WriteVector3(writer, value, options); } }