using System.Xml; namespace Oni.Objects { internal class Furniture : GunkObject { public FurnitureClass Class; public string ParticleTag; public Furniture() { TypeId = ObjectType.Furniture; } protected override void WriteOsd(BinaryWriter writer) { writer.Write(ClassName, 32); writer.Write(ParticleTag, 48); } protected override void ReadOsd(BinaryReader reader) { ClassName = reader.ReadString(32); ParticleTag = reader.ReadString(48); } protected override void WriteOsd(XmlWriter xml) { xml.WriteElementString("Class", ClassName); xml.WriteElementString("Particle", ParticleTag); } protected override void ReadOsd(XmlReader xml, ObjectLoadContext context) { string className = null; while (xml.IsStartElement()) { switch (xml.LocalName) { case "Class": className = xml.ReadElementContentAsString(); break; case "Particle": ParticleTag = xml.ReadElementContentAsString(); break; default: xml.Skip(); break; } } Class = context.GetClass(TemplateTag.OFGA, className, FurnitureClass.Read); GunkClass = Class; } } }