public void Load(string file)
        {
            if (System.IO.File.Exists(file))
            {
                if (_consoleLayers != null)
                {
                    _consoleLayers.MouseMove -= _mouseMoveHandler;
                    _consoleLayers.MouseEnter -= _mouseEnterHandler;
                    _consoleLayers.MouseExit -= _mouseExitHandler;
                }

                var tempConsole = SadConsole.Serializer.Load<GameConsole>(file);
                _consoleLayers = new LayeredConsole(tempConsole.Layers, tempConsole.Width, tempConsole.Height);
                _consoleLayers.Font = SadConsoleEditor.Settings.Config.ScreenFont;
                for (int i = 0; i < tempConsole.Layers; i++)
                    _consoleLayers.RemoveLayer(0);

                GameObjects = new List<GameObjectCollection>(tempConsole.Layers);

                for (int i = 0; i < tempConsole.Layers; i++)
                {
                    _consoleLayers.AddLayer(tempConsole[i].CellData);
                    var metadataNew = new LayeredConsoleMetadata();
                    var metadataOld = tempConsole.GetLayerMetadata(i);

                    metadataNew.IsMoveable = metadataOld.IsMoveable;
                    metadataNew.IsRemoveable = metadataOld.IsRemoveable;
                    metadataNew.IsRenamable = metadataOld.IsRenamable;
                    metadataNew.IsVisible = metadataOld.IsVisible;
                    metadataNew.Name = metadataOld.Name;
                    metadataNew.Index = metadataOld.Index;
                    _consoleLayers.SetLayerMetadata(i, metadataNew);
                    GameObjects.Add(metadataOld.GameObjects);
                    _consoleLayers[i].IsVisible = metadataNew.IsVisible;
                }

                _consoleLayers.SetActiveLayer(0);
                _consoleLayers.CanUseMouse = true;
                _consoleLayers.CanUseKeyboard = true;
                _consoleLayers.MouseMove += _mouseMoveHandler;
                _consoleLayers.MouseEnter += _mouseEnterHandler;
                _consoleLayers.MouseExit += _mouseExitHandler;

                _width = _consoleLayers.Width;
                _height = _consoleLayers.Height;

                EditorConsoleManager.Instance.UpdateBox();

                SelectedGameObjects = GameObjects[0];
                SyncObjectsToLayer();

                //_consoleLayers = LayeredConsole.Load<LayeredConsole>(file);
                //_consoleLayers.Font = SadConsoleEditor.Settings.Config.ScreenFont;

                //_consoleLayers.MouseMove += _mouseMoveHandler;
                //_consoleLayers.MouseEnter += _mouseEnterHandler;
                //_consoleLayers.MouseExit += _mouseExitHandler;

                //_width = _consoleLayers.Width;
                //_height = _consoleLayers.Height;

                //EditorConsoleManager.Instance.UpdateBox();

                //if (System.IO.File.Exists(objectsFile))
                //{
                //    GameObjects = new List<GameObjectCollection>(GameObjectCollection.LoadCollection(objectsFile));
                //    SelectedGameObjects = GameObjects[0];
                //    SyncObjectsToLayer();
                //}
                //else
                //{
                //    GameObjects = new List<GameObjectCollection>();

                //    foreach (var layer in _consoleLayers.GetEnumeratorForLayers())
                //    {
                //        GameObjects.Add(new GameObjectCollection());
                //    }
                //    SelectedGameObjects = GameObjects[0];
                //    SyncObjectsToLayer();
                //}
            }
        }
        public void Load(string file)
        {
            if (System.IO.File.Exists(file))
            {
                if (_consoleLayers != null)
                {
                    _consoleLayers.MouseMove  -= _mouseMoveHandler;
                    _consoleLayers.MouseEnter -= _mouseEnterHandler;
                    _consoleLayers.MouseExit  -= _mouseExitHandler;
                }


                var tempConsole = SadConsole.Serializer.Load <GameConsole>(file);
                _consoleLayers      = new LayeredConsole(tempConsole.Layers, tempConsole.Width, tempConsole.Height);
                _consoleLayers.Font = SadConsoleEditor.Settings.Config.ScreenFont;
                for (int i = 0; i < tempConsole.Layers; i++)
                {
                    _consoleLayers.RemoveLayer(0);
                }


                GameObjects = new List <GameObjectCollection>(tempConsole.Layers);

                for (int i = 0; i < tempConsole.Layers; i++)
                {
                    _consoleLayers.AddLayer(tempConsole[i].CellData);
                    var metadataNew = new LayeredConsoleMetadata();
                    var metadataOld = tempConsole.GetLayerMetadata(i);

                    metadataNew.IsMoveable   = metadataOld.IsMoveable;
                    metadataNew.IsRemoveable = metadataOld.IsRemoveable;
                    metadataNew.IsRenamable  = metadataOld.IsRenamable;
                    metadataNew.IsVisible    = metadataOld.IsVisible;
                    metadataNew.Name         = metadataOld.Name;
                    metadataNew.Index        = metadataOld.Index;
                    _consoleLayers.SetLayerMetadata(i, metadataNew);
                    GameObjects.Add(metadataOld.GameObjects);
                    _consoleLayers[i].IsVisible = metadataNew.IsVisible;
                }

                _consoleLayers.SetActiveLayer(0);
                _consoleLayers.CanUseMouse    = true;
                _consoleLayers.CanUseKeyboard = true;
                _consoleLayers.MouseMove     += _mouseMoveHandler;
                _consoleLayers.MouseEnter    += _mouseEnterHandler;
                _consoleLayers.MouseExit     += _mouseExitHandler;

                _width  = _consoleLayers.Width;
                _height = _consoleLayers.Height;

                EditorConsoleManager.Instance.UpdateBox();

                SelectedGameObjects = GameObjects[0];
                SyncObjectsToLayer();



                //_consoleLayers = LayeredConsole.Load<LayeredConsole>(file);
                //_consoleLayers.Font = SadConsoleEditor.Settings.Config.ScreenFont;

                //_consoleLayers.MouseMove += _mouseMoveHandler;
                //_consoleLayers.MouseEnter += _mouseEnterHandler;
                //_consoleLayers.MouseExit += _mouseExitHandler;

                //_width = _consoleLayers.Width;
                //_height = _consoleLayers.Height;

                //EditorConsoleManager.Instance.UpdateBox();

                //if (System.IO.File.Exists(objectsFile))
                //{
                //    GameObjects = new List<GameObjectCollection>(GameObjectCollection.LoadCollection(objectsFile));
                //    SelectedGameObjects = GameObjects[0];
                //    SyncObjectsToLayer();
                //}
                //else
                //{
                //    GameObjects = new List<GameObjectCollection>();

                //    foreach (var layer in _consoleLayers.GetEnumeratorForLayers())
                //    {
                //        GameObjects.Add(new GameObjectCollection());
                //    }
                //    SelectedGameObjects = GameObjects[0];
                //    SyncObjectsToLayer();
                //}
            }
        }