// Methods public override void Load(string filePath) { base.Load(filePath); // Load External Texset (if any) if (!string.IsNullOrEmpty(TexsetName)) { string dir = Path.GetDirectoryName(filePath); string texsetPath = Path.Combine(dir, $"{TexsetName}{GensTexset.Extension}"); if (File.Exists(texsetPath)) { Texset = new GensTexset(); Texset.Load(texsetPath); } } }
public virtual void ImportXML(Stream fs) { var xml = XDocument.Load(fs); var root = xml.Root; string headerType = root.GetAttrValue("headerType"); headerType = headerType.ToLower(); if (headerType == "mirage") { Header = new MirageHeader(); } else { Header = new GensHeader(); } Header.RootNodeType = root.GetUIntAttr("version"); MaterialFlag = root.GetByteAttr("flags"); ShaderName = root.GetElemValue("ShaderName"); SubShaderName = root.GetElemValue("SubShaderName"); NoBackFaceCulling = root.GetBoolElem("NoBackfaceCulling"); AdditiveBlending = root.GetBoolElem("AdditiveBlending"); // Parameters var paramsElem = root.Element("Parameters"); parameters.Clear(); foreach (var paramElem in paramsElem.Elements()) { parameters.Add(new Parameter(paramElem)); } // Texset var texsetElem = root.Element("Texset"); if (texsetElem != null) { TexsetName = root.GetAttrValue("externalName"); Texset = new GensTexset(texsetElem); } }