/// <summary>
 /// Create a blank ComponentList
 /// </summary>
 public MultiEditorComponentList(int width, int height, MultiEditor parent)
 {
     Parent = parent;
     Width  = width;
     Height = height;
     Tiles  = new List <MultiTile>();
     for (int x = 0; x < Width; ++x)
     {
         for (int y = 0; y < Height; ++y)
         {
             Tiles.Add(new FloorTile(x, y, Parent.DrawFloorZ));
         }
     }
     UndoList = new UndoStruct[UndoListMaxSize];
     Modified = true;
     RecalcMinMax();
 }
 /// <summary>
 /// Create a ComponentList from UltimaSDK
 /// </summary>
 public MultiEditorComponentList(MultiComponentList list, MultiEditor parent)
 {
     Parent = parent;
     Width  = list.Width;
     Height = list.Height;
     Tiles  = new List <MultiTile>();
     for (int x = 0; x < Width; ++x)
     {
         for (int y = 0; y < Height; ++y)
         {
             for (int i = 0; i < list.Tiles[x][y].Length; ++i)
             {
                 Tiles.Add(new MultiTile(list.Tiles[x][y][i].ID, x, y, list.Tiles[x][y][i].Z, (int)list.Tiles[x][y][i].Flag));
             }
             Tiles.Add(new FloorTile(x, y, Parent.DrawFloorZ));
         }
     }
     CalcSolver();
     Tiles.Sort();
     UndoList = new UndoStruct[UndoListMaxSize];
     Modified = true;
     RecalcMinMax();
 }