示例#1
0
 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);
 }