Roblox-File-Format/Tokens/UDim2.cs
2021-02-25 14:09:54 -06:00

53 lines
1.4 KiB
C#

using System.Xml;
using RobloxFiles.DataTypes;
namespace RobloxFiles.Tokens
{
public class UDim2Token : IXmlPropertyToken, IAttributeToken<UDim2>
{
public string XmlPropertyToken => "UDim2";
public AttributeType AttributeType => AttributeType.UDim2;
public UDim2 ReadAttribute(Attribute attr)
{
UDim x = UDimToken.ReadUDim(attr);
UDim y = UDimToken.ReadUDim(attr);
return new UDim2(x, y);
}
public void WriteAttribute(Attribute attr, UDim2 value)
{
UDimToken.WriteUDim(attr, value.X);
UDimToken.WriteUDim(attr, value.Y);
}
public bool ReadProperty(Property property, XmlNode token)
{
UDim xUDim = UDimToken.ReadUDim(token, "X");
UDim yUDim = UDimToken.ReadUDim(token, "Y");
if (xUDim != null && yUDim != null)
{
property.Type = PropertyType.UDim2;
property.Value = new UDim2(xUDim, yUDim);
return true;
}
return false;
}
public void WriteProperty(Property prop, XmlDocument doc, XmlNode node)
{
UDim2 value = prop.CastValue<UDim2>();
UDim xUDim = value.X;
UDimToken.WriteUDim(doc, node, xUDim, "X");
UDim yUDim = value.Y;
UDimToken.WriteUDim(doc, node, yUDim, "Y");
}
}
}