public void LoadSceneFromModule(Module.Module module, string sceneRef) { try { XDocument doc = XDocument.Parse(module.GetFileXML(sceneRef, ResourceType.Scene)); XElement root = doc.Element("Scene"); string typeName = root.Attribute("Type").Value; ISceneFactory fac = OrionEngine.Instance.GetFactoryFor <ISceneFactory>(typeName); CurrentScene = fac.GetScene(typeName, OrionEngine.Instance, module, root); } catch (Exception) { LogManager.Instance.LogError("Error loading scene from module."); } }
public static SpriteDefinition LoadFromModule(Module.Module module, string reference) { SpriteDefinition spriteDef = null; string xml = module.GetFileXML(reference, ResourceType.SpriteDef); spriteDef = new SpriteDefinition(); XDocument doc = XDocument.Parse(xml); spriteDef.Tag = doc.Element("SpriteDefinition").Attribute("Tag").Value; foreach (XElement node in doc.Element("SpriteDefinition").Elements()) { switch (node.Name.LocalName) { case "Resource": { spriteDef.ReferenceName = node.Attribute("Ref").Value; spriteDef.Path = module.GetResourcePath(spriteDef.ReferenceName, ResourceType.Texture); module.LoadTexture(spriteDef.ReferenceName); } break; case "FrameData": LoadFrameData(node, spriteDef); break; case "AnimationList": foreach (XElement listNode in node.Elements()) { if (listNode.Name.LocalName == "Animation") { LoadAnimation(listNode, spriteDef); } } break; } } return(spriteDef); }