/// <summary>
        /// Test function.  Builds list of block records, writes to XML & reads it back in.
        /// </summary>
        /// <returns></returns>
        IEnumerator Test()
        {
            Debug.Log("Waiting on dfUnity...");
            while (!dfUnity.IsReady)
            {
                yield return(new WaitForEndOfFrame());
            }

            Debug.Log("Finished waiting");
            bool check = false;

            recordCollection = new BlockRecordCollection();
            check            = BuildRecordList(out recordCollection.blockRecords);
            Debug.Log("BuildRecordList returned: " + check);
            if (check)
            {
                check = WriteBlockData(
                    recordCollection.FilterBlocks(DFBlock.BlockTypes.Rdb),
                    defaultFileName, FileMode.Create);

                Debug.Log("WriteBlockData returned: " + check);
            }
            if (check)
            {
                check = ReadBlockData(out recordCollection.blockRecords, defaultFileName);
                Debug.Log("ReadBlockData returned: " + check);
            }

            Debug.Log("Finished Test");
            yield break;
        }
        /// <summary>
        /// Creates list of BlockRecords from file or from arena2.  Will create a new file if one isn't
        /// found
        /// </summary>
        /// <returns></returns>
        bool GetBlockList()
        {
            bool getBlockRecordsFromArena2        = true;
            BlockRecordSerializer blockSerializer = new BlockRecordSerializer();

            if (blockSerializer.ReadBlockData(out blockCollection.blockRecords, fileName))
            {
                Debug.Log(string.Format("Read file successfully, record count: {0}", blockCollection.blockRecords.Count));

                if (blockCollection.blockRecords.Count != 0)
                {
                    getBlockRecordsFromArena2 = false;
                }
            }
            if (getBlockRecordsFromArena2)
            {
                Debug.Log("Getting blocks from arena2");
                if (!blockSerializer.BuildRecordList(out blockCollection.blockRecords))
                {
                    Debug.LogError("Failed to read in Block Record collection from Arena2.");
                    blockSerializer = null;
                    return(false);
                }
                else
                {
                    Debug.Log("Writing new file");
                    blockSerializer.WriteBlockData(blockCollection.FilterBlocks(blockCollection.blockRecords, DFBlock.BlockTypes.Rdb), fileName);
                }
            }
            //filter out RDB blocks
            blockCollection.blockRecords = blockCollection.FilterRDBBlocks(DFBlock.RdbTypes.Mausoleum, true);
            if (filterSpecialBlocks)
            {
                blockCollection.blockRecords = blockCollection.FilterRDBBlocks(DFBlock.RdbTypes.Quest, true);
            }

            if (filterWetBlocks)
            {
                blockCollection.blockRecords = blockCollection.FilterRDBBlocks(DFBlock.RdbTypes.Wet, true);
            }
            blockSerializer = null;
            return(true);
        }