public override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("EditorID", false, out subEle))
            {
                if (EditorID == null)
                {
                    EditorID = new SimpleSubrecord <String>();
                }

                EditorID.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ObjectBounds", false, out subEle))
            {
                if (ObjectBounds == null)
                {
                    ObjectBounds = new ObjectBounds();
                }

                ObjectBounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Model", false, out subEle))
            {
                if (Model == null)
                {
                    Model = new Model();
                }

                Model.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("NodeIndex", false, out subEle))
            {
                if (NodeIndex == null)
                {
                    NodeIndex = new SimpleSubrecord <Int32>();
                }

                NodeIndex.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Sound", false, out subEle))
            {
                if (Sound == null)
                {
                    Sound = new RecordReference();
                }

                Sound.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Data", false, out subEle))
            {
                if (Data == null)
                {
                    Data = new AddonNodeData();
                }

                Data.ReadXML(subEle, master);
            }
        }
 public AddonNode(SimpleSubrecord <String> EditorID, ObjectBounds ObjectBounds, Model Model, SimpleSubrecord <Int32> NodeIndex, RecordReference Sound, AddonNodeData Data)
 {
     this.EditorID     = EditorID;
     this.ObjectBounds = ObjectBounds;
     this.Model        = Model;
     this.NodeIndex    = NodeIndex;
     this.Data         = Data;
 }
 public AddonNode()
 {
     EditorID     = new SimpleSubrecord <String>("EDID");
     ObjectBounds = new ObjectBounds("OBND");
     Model        = new Model();
     NodeIndex    = new SimpleSubrecord <Int32>("DATA");
     Data         = new AddonNodeData("DNAM");
 }
        public override void ReadData(ESPReader reader, long dataEnd)
        {
            while (reader.BaseStream.Position < dataEnd)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "EDID":
                    if (EditorID == null)
                    {
                        EditorID = new SimpleSubrecord <String>();
                    }

                    EditorID.ReadBinary(reader);
                    break;

                case "OBND":
                    if (ObjectBounds == null)
                    {
                        ObjectBounds = new ObjectBounds();
                    }

                    ObjectBounds.ReadBinary(reader);
                    break;

                case "MODL":
                    if (Model == null)
                    {
                        Model = new Model();
                    }

                    Model.ReadBinary(reader);
                    break;

                case "DATA":
                    if (NodeIndex == null)
                    {
                        NodeIndex = new SimpleSubrecord <Int32>();
                    }

                    NodeIndex.ReadBinary(reader);
                    break;

                case "SNAM":
                    if (Sound == null)
                    {
                        Sound = new RecordReference();
                    }

                    Sound.ReadBinary(reader);
                    break;

                case "DNAM":
                    if (Data == null)
                    {
                        Data = new AddonNodeData();
                    }

                    Data.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }