/// <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);
}
}
}
}
}