/// <summary> /// Parses a new element /// </summary> /// <param name="script"></param> /// <param name="type"></param> /// <param name="name"></param> /// <param name="isContainer"></param> /// <param name="overlay"></param> /// <param name="isTemplate"></param> /// <param name="templateName"></param> /// <param name="parent"></param> private void ParseNewElement(TextReader script, string type, string name, bool isContainer, Overlay overlay, bool isTemplate, string templateName, OverlayElementContainer parent) { string line; var element = OverlayElementManager.Instance.CreateElementFromTemplate(templateName, type, name, isTemplate); if (parent != null) { // add this element to the parent container parent.AddChild(element); } else if (overlay != null) { overlay.AddElement((OverlayElementContainer)element); } while ((line = ParseHelper.ReadLine(script)) != null) { // inore blank lines and comments if (line.Length > 0 && (!line.StartsWith("//") && !line.StartsWith("# "))) { if (line == "}") { // finished element break; } else { OverlayElementContainer container = null; if (element is OverlayElementContainer) { container = (OverlayElementContainer)element; } if (isContainer && ParseChildren(script, line, overlay, isTemplate, container)) { // nested children, so don't reparse it } else { // element attribute ParseElementAttrib(line, overlay, element); } } } } }
/// <summary> /// Parses a new element /// </summary> /// <param name="script"></param> /// <param name="type"></param> /// <param name="name"></param> /// <param name="isContainer"></param> /// <param name="overlay"></param> /// <param name="isTemplate"></param> /// <param name="templateName"></param> /// <param name="parent"></param> private void ParseNewElement(TextReader script, string type, string name, bool isContainer, Overlay overlay, bool isTemplate, string templateName, OverlayElementContainer parent) { string line; OverlayElement element = OverlayElementManager.Instance.CreateElementFromTemplate(templateName, type, name, isTemplate); if(parent != null) { // add this element to the parent container parent.AddChild(element); } else if(overlay != null) { overlay.AddElement((OverlayElementContainer)element); } while((line = ParseHelper.ReadLine(script)) != null) { // inore blank lines and comments if(line.Length > 0 && !line.StartsWith("//")) { if(line == "}") { // finished element break; } else { if(isContainer && ParseChildren(script, line, overlay, isTemplate, (OverlayElementContainer)element)) { // nested children, so don't reparse it } else { // element attribute ParseElementAttrib(line, overlay, element); } } } } }