/// <summary>
        /// Shows location dungeon blocks.
        /// </summary>
        /// <param name="dfLocation">DFLocation.</param>
        public void ShowLocationDungeon(DFLocation dfLocation)
        {
            // Exit if not ready
            if (!isReady)
            {
                return;
            }

            // Load dungeon
            LocationView view = (LocationView)viewClients[ViewModes.DungeonView];

            view.CreateDungeonLocationScene(dfLocation.RegionName, dfLocation.Name);

            // Set view mode
            lastViewMode = viewMode;
            viewMode     = ViewModes.DungeonView;
            viewClients[viewMode].ResumeView();
            RaiseViewModeChangedEvent();
        }
        /// <summary>
        /// Moves active camera to origin of specified block.
        /// </summary>
        public void MoveToBlock(int x, int z)
        {
            // Exit if not ready
            if (!isReady)
            {
                return;
            }

            // Move to block
            if (viewMode == ViewModes.LocationView)
            {
                LocationView view = (LocationView)viewClients[ViewModes.LocationView];
                view.MoveToBlock(x, z);
            }
            else if (viewMode == ViewModes.DungeonView)
            {
                LocationView view = (LocationView)viewClients[ViewModes.DungeonView];
                view.MoveToBlock(x, z);
            }
        }
        /// <summary>
        /// Shows a single block view.
        /// </summary>
        /// <param name="name">Block name.</param>
        /// <param name="climate">Climate of block.</param>
        public void ShowBlockView(string name, DFLocation.ClimateSettings?climate)
        {
            // Exit if not ready
            if (!isReady)
            {
                return;
            }

            // Show block scene
            if (!string.IsNullOrEmpty(name))
            {
                name = name.ToUpper();
                LocationView view = (LocationView)viewClients[ViewModes.BlockView];
                view.CreateBlockScene(name, climate);
            }

            // Set view mode
            lastViewMode = viewMode;
            viewMode     = ViewModes.BlockView;
            viewClients[viewMode].ResumeView();
            RaiseViewModeChangedEvent();
        }