private static Material LoadMaterialFromNode(XmlNode _node, SceneBase scene, SceneItem item) { String _materialSource = _node.Attributes["materialSource"].InnerText; String _materialRef = _node.Attributes["materialRef"].InnerText; Material _returnMaterial = null; if (_materialSource.ToUpper() == "LOCAL") { _returnMaterial = scene.GetMaterial(_materialRef); } else if (_materialSource.ToUpper() == "GLOBAL") { _returnMaterial = SceneManager.GlobalDataHolder.GetMaterial(_materialRef); } else if (_materialSource.ToUpper() == "EMBEDDED") { _returnMaterial = SceneManager.GetEmbeddedMaterial(_materialRef); } if (_returnMaterial != null) { return _returnMaterial; } else { throw new Exception("The SceneItem \"" + item.Name + "\" is trying to use an invalid material: [" + _materialSource.ToUpper() + "] \"" + _materialRef + "\""); } }
private static Material GetMaterialAssetFromNode(XmlNode node, SceneBase scene) { string _materialSource = node.Attributes["materialSource"].InnerText; string _matRef = ""; if (node.Attributes["materialRef"] != null) _matRef = node.Attributes["materialRef"].InnerText; else _matRef = node.InnerText; if (_materialSource.ToUpper() == "LOCAL") return scene.GetMaterial(_matRef); else if (_materialSource.ToUpper() == "GLOBAL") return SceneManager.GlobalDataHolder.GetMaterial(_matRef); else if (_materialSource.ToUpper() == "EMBEDDED") return SceneManager.GetEmbeddedMaterial(_matRef); else return null; }