public override bool HandleXMLData(List <XElement> elements)
        {
            // ADR's only have 1 root element.
            XElement root = elements.FirstOrDefault();

            if (root == null)
            {
                return(false);
            }

            IsPlaceable = true;

            foreach (XElement child in root.Elements())
            {
                if (child.Name == "Base")
                {
                    XAttribute attribute = child.Attribute("fileName");

                    if (attribute == null)
                    {
                        Debug.LogWarning("Actor " + Name + " has an invalid Base definition. This actor may not display correctly.");
                        continue;
                    }

                    Base = attribute.Value;
                }

                else if (child.Name == "Lods")
                {
                    foreach (XElement lodElement in child.Elements())
                    {
                        Lod lod = new Lod();

                        XAttribute fileName = lodElement.Attribute("fileName");
                        if (fileName != null)
                        {
                            lod.FileName = fileName.Value;
                        }

                        XAttribute paletteName = lodElement.Attribute("paletteName");
                        if (paletteName != null)
                        {
                            lod.PaletteName = paletteName.Value;
                        }

                        XAttribute distance = lodElement.Attribute("distance");
                        if (distance != null)
                        {
                            lod.Distance = Convert.ToInt32(distance.Value);
                        }

                        Lods.Add(lod);
                    }
                }

                else if (child.Name == "Usage")
                {
                    if (child.Attribute("actorUsage").Value != "0" || child.Attribute("borrowSkeleton").Value != "0" && child.Attribute("validatePcNpc").Value != "0")
                    {
                        IsPlaceable = false;
                    }
                }

                else if (child.Name == "MaterialType")
                {
                    MaterialType = child.Attribute("type").Value;
                }
            }

            return(true);
        }
 public void Dispose(AssetManager assetManager)
 {
     Lods.Clear();
 }