/// <summary>
        /// Creates a new block node.
        /// </summary>
        /// <param name="name">Block name.</param>
        /// <param name="climate">Climate settings.</param>
        /// <param name="clearGroundTextures">Clear ground plane texture dictionary.</param>
        /// <returns>BlockNode.</returns>
        public BlockNode CreateBlockNode(string name, DFLocation.ClimateSettings?climate, bool clearGroundTextures)
        {
            // Load block
            DFBlock block;

            if (!LoadDaggerfallBlock(name, out block))
            {
                return(null);
            }

            // Set default world climate
            if (climate == null)
            {
                climate = MapsFile.GetWorldClimateSettings(defaultWorldClimate);
            }

            // Reset ground plane texture cache
            if (clearGroundTextures)
            {
                textureManager.ClearGroundTextures();
            }

            // Build node
            BlockNode node = null;

            switch (block.Type)
            {
            case DFBlock.BlockTypes.Rmb:
                textureManager.ClimateType = climate.Value.ClimateType;
                node = BuildRMBNode(ref block, climate.Value);
                break;

            case DFBlock.BlockTypes.Rdb:
                textureManager.ClimateType = DFLocation.ClimateBaseType.None;
                node = BuildRDBNode(ref block);
                break;
            }

            return(node);
        }