/// <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); }