using System.Xml; using RobloxFiles.DataTypes; namespace RobloxFiles.Tokens { public class Vector3int16Token : IXmlPropertyToken { public string XmlPropertyToken => "Vector3int16"; private static readonly string[] Coords = new string[3] { "X", "Y", "Z" }; public bool ReadProperty(Property property, XmlNode token) { short[] xyz = new short[3]; for (int i = 0; i < 3; i++) { string key = Coords[i]; try { var coord = token[key]; xyz[i] = short.Parse(coord.InnerText); } catch { return false; } } short x = xyz[0], y = xyz[1], z = xyz[2]; property.Type = PropertyType.Vector3int16; property.Value = new Vector3int16(x, y, z); return true; } public void WriteProperty(Property prop, XmlDocument doc, XmlNode node) { Vector3int16 value = prop.CastValue(); XmlElement x = doc.CreateElement("X"); x.InnerText = value.X.ToString(); node.AppendChild(x); XmlElement y = doc.CreateElement("Y"); y.InnerText = value.Y.ToString(); node.AppendChild(y); XmlElement z = doc.CreateElement("Z"); z.InnerText = value.Z.ToString(); node.AppendChild(z); } } }