public DisplayRenderer Create(IEnumerable <IMyTextPanel> displays, RequestedDisplayConfiguration configuration) { local_Create_partsList.Clear(); foreach (var categoryDescriptor in configuration.IncludeCategories) { var part = GenerateDisplayPart(categoryDescriptor); if (part == null) { Debug.Write(Debug.Level.Warning, new Message("Display category {0} was not recognised and will be ignored.", categoryDescriptor)); continue; } local_Create_partsList.Add(part); } return(new DisplayRenderer(configuration.DisplayName, displays, local_Create_partsList.ToArray())); }
private bool ParseDisplayConfiguration(RequestedDisplayConfiguration displayConfiguration, IEnumerator <string> parts) { if (parts.MoveNext()) { if (parts.Current == "add") { if (!ExpectNextToken(parts, "{", "Expected '{' to follow 'display <name> add'.")) { return(false); } while (parts.MoveNext()) { if (parts.Current == "}") { return(true); } displayConfiguration.IncludeCategories.Add(parts.Current); } Debug.Write(Debug.Level.Error, "Expected display configuration to end with '}'."); return(false); } if (parts.Current == "clear") { displayConfiguration.IncludeCategories.Clear(); return(true); } if (parts.Current == "rename-to") { if (!ExpectNext(parts, "Expected a block name to follow 'display <name> rename-to'.")) { return(false); } displayConfiguration.DisplayName = parts.Current; return(true); } } Debug.Write(Debug.Level.Error, "Expected 'add', 'clear', or 'rename-to' to follow 'display <name>'."); return(false); }