public static void WriteSyncTest(TileSetData outputData, string outputFileName) { var dir = Path.GetDirectoryName(outputFileName); dir.CreateDirectoryIfNeed(); var writer = new TileSetDataFileWriter(outputFileName); var isSuccess = false; var errorMessage = ""; try { writer.WriteSync(outputData); isSuccess = true; } catch (Exception e) { errorMessage = e.Message; } // 出力成功すること if (!isSuccess) { throw new InvalidOperationException( $"Error message: {errorMessage}"); } Assert.True(true); }
public static void SerializeTest() { var target = new TileSetData(); target.TileSetSettingList.AdjustLength(3); var clone = DeepCloner.DeepClone(target); Assert.IsTrue(clone.Equals(target)); }
async void ReadTileSetTest() { string path = Application.streamingAssetsPath + "/Project/Data/BasicData/TileSetData.dat"; var reader = new TileSetDataFileReader(); TileSetData setData = await reader.ReadFileAsync(path); var settingList = setData.TileSetSettingList.ToList(); }
public static void LinkIconsToPrefabs() { TileSetData tsd = AssetDatabase.LoadAssetAtPath <TileSetData>("Assets/Resources/Data/tileSet.asset"); for (int i = 0; i < tsd.Tiles.Length; i++) { string prefabName = tsd.Tiles[i].name; string path = "Assets/Resources/Prefabs/TileIcons/" + prefabName + ".png"; tsd.Tiles[i].Icon = AssetDatabase.LoadAssetAtPath <Texture2D>(path); } }
public void DeserializeTileSetData() { //string fileContent = System.IO.File.ReadAllText(TEST_TILESET_PATH); XmlSerializer serializer = new XmlSerializer(typeof(TileSetData)); TileSetData tileSetData = null; using (FileStream stream = new FileStream(TEST_TILESET_PATH, FileMode.Open)) { tileSetData = serializer.Deserialize(stream) as TileSetData; } Assert.IsTrue(tileSetData != null && tileSetData.Name == "Test" && tileSetData.TileWidth == 64); }
public static void File0Test() { const string inputFileName = @"Dir0\TileSetData.dat"; const string outputFileName = @"OutputDir0\TileSetData.dat"; var inputDir = Path.GetDirectoryName($@"{MapTreeDataFileItemGenerator.TestWorkRootDir}\{inputFileName}"); inputDir.CreateDirectoryIfNeed(); var outputDir = Path.GetDirectoryName($@"{MapTreeDataFileItemGenerator.TestWorkRootDir}\{outputFileName}"); outputDir.CreateDirectoryIfNeed(); var reader = new TileSetDataFileReader($@"{TileSetDataTestItemGenerator.TestWorkRootDir}\{inputFileName}"); TileSetData data = null; var isSuccessRead = false; try { data = reader.ReadAsync().GetAwaiter().GetResult(); isSuccessRead = true; } catch (Exception ex) { logger.Exception(ex); } Assert.IsTrue(isSuccessRead); var writer = new TileSetDataFileWriter( $@"{TileSetDataTestItemGenerator.TestWorkRootDir}\{outputFileName}"); var isSuccessWrite = false; try { writer.WriteAsync(data).GetAwaiter().GetResult(); isSuccessWrite = true; } catch (Exception ex) { logger.Exception(ex); } Assert.IsTrue(isSuccessWrite); Console.WriteLine($@"Written FilePath : {TileSetDataTestItemGenerator.TestWorkRootDir}\{outputFileName}"); }
public static void ToBinaryTest(string testFilePath, TileSetData generatedDat, int fileSize) { var generatedDataBuf = generatedDat.ToBinary(); using (var fs = new FileStream(testFilePath, FileMode.Open)) { var length = (int)fs.Length; // ファイルサイズが規定でない場合誤作動防止の為テスト失敗にする Assert.AreEqual(length, fileSize); var fileData = new byte[length]; fs.Read(fileData, 0, length); // binデータ出力 fileData.Select((s, index) => $"=\"[{index}] = {{byte}} {s:X}\"").ToList() .ForEach(Console.WriteLine); Console.WriteLine(); generatedDataBuf.Select((s, index) => $"=\"[{index}] = {{byte}} {s:X}\"").ToList() .ForEach(Console.WriteLine); for (var i = 0; i < generatedDataBuf.Length; i++) { if (i == fileData.Length) { Assert.Fail( $"データ帳が異なります。(期待値:{fileData.Length}, 実際:{generatedDataBuf.Length})"); } if (fileData[i] != generatedDataBuf[i]) { Assert.Fail( $"offset: {i} のバイナリが異なります。(期待値:{fileData[i]}, 実際:{generatedDataBuf[i]})"); } } if (fileData.Length != generatedDataBuf.Length) { Assert.Fail( $"データ帳が異なります。(期待値:{fileData.Length}, 実際:{generatedDataBuf.Length})"); } } }
public static void TileSetSettingListTest(TileSetSettingList list, bool isError) { var instance = new TileSetData(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var errorOccured = false; try { instance.TileSetSettingList = list; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (!errorOccured) { var setValue = instance.TileSetSettingList; // セットした値と取得した値が一致すること Assert.IsTrue(setValue.Equals(list)); } // 意図したとおりプロパティ変更通知が発火していること if (errorOccured) { Assert.AreEqual(changedPropertyList.Count, 0); } else { Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(TileSetData.TileSetSettingList))); } }
private static void Common(TileSetData resultData, string readFileName) { var filePath = $@"{CommonFileTestItemGenerator.TestWorkRootDir}\{readFileName}"; var reader = new TileSetDataFileReader(filePath); var readResult = false; TileSetData data = null; var errorMessage = ""; try { data = reader.ReadSync(); readResult = true; } catch (Exception ex) { logger.Exception(ex); errorMessage = ex.Message; } // 正しく読めること if (!readResult) { throw new InvalidOperationException( $"Error Occured. Message : {errorMessage}"); } Console.WriteLine("Write Test Clear."); var readResultDataBytes = data.ToBinary().ToArray(); // 元のデータと一致すること using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { var bufLength = (int)stream.Length; var buf = new byte[bufLength]; stream.Read(buf, 0, bufLength); if (readResultDataBytes.Length != bufLength) { throw new InvalidOperationException( $"Data Length Not Match. " + $"(answerLength: {bufLength}, readResultLength: {readResultDataBytes.Length})"); } for (long i = 0; i < 0; i++) { if (readResultDataBytes[i] != buf[i]) { throw new InvalidOperationException( $"Data Byte Not Match. (index: {i}, answer: {buf[i]}," + $" readResult: {readResultDataBytes[i]})"); } } } // 意図したデータと一致すること var resultDataBytes = resultData.ToBinary().ToArray(); if (resultDataBytes.Length != readResultDataBytes.Length) { throw new InvalidOperationException( $"Data Length Not Match. " + $"(answerLength: {resultDataBytes.Length}, readResultLength: {readResultDataBytes.Length})"); } for (long i = 0; i < 0; i++) { if (resultDataBytes[i] != readResultDataBytes[i]) { throw new InvalidOperationException( $"Data Byte Not Match. (index: {i}, answer: {resultDataBytes[i]}," + $" readResult: {readResultDataBytes[i]})"); } } }
async void RenderMap() { DatabaseMergedData systemDB = await ReadSystemDB(); var mapDataList = systemDB.GetDataDescList(0); if (mapNo >= mapDataList.Count) { return; } string mapPath = dataPath + mapDataList[mapNo].ItemValueList[0].StringValue.ToString(); var mpsReader = new MpsFileReader(); MapData mapData = await mpsReader.ReadFileAsync(mapPath); string tileSetPath = dataPath + "BasicData/TileSetData.dat"; var reader = new TileSetDataFileReader(); TileSetData setData = await reader.ReadFileAsync(tileSetPath); TileSetSetting tileSetting = setData.TileSetSettingList[mapData.TileSetId]; ReadBaseTileTexture(tileSetting.BaseTileSetFileName); ReadAutoTileTextures(tileSetting.AutoTileFileNameList.ToArray()); Texture2D mapTexture = new Texture2D(mapData.MapSizeWidth * chipSize, mapData.MapSizeHeight * chipSize); for (int i = 0; i < mapData.MapSizeHeight; i++) { for (int j = 0; j < mapData.MapSizeWidth; j++) { for (int k = 0; k < 3; k++) { int id = mapData.GetLayer(k).Chips[j][i]; if (mapData.GetLayer(k).Chips[j][i].IsAutoTile) { RenderAutoTile(mapTexture, j, i, id); } else { RenderNormalTile(mapTexture, j, i, id); } } } } for (int i = 0; i < mapData.MapEvents.Count; i++) { int x = mapData.MapEvents[i].Position.X; int y = mapData.MapEvents[i].Position.Y; MapEventPage mapEventPage = mapData.MapEvents[i].MapEventPageList[0]; if (mapEventPage.GraphicInfo.IsGraphicTileChip) { int tileId = mapEventPage.GraphicInfo.GraphicTileId; RenderNormalTile(mapTexture, x, y, tileId); } else if (!string.IsNullOrEmpty(mapEventPage.GraphicInfo.CharaChipFilePath)) { string graphicPath = dataPath + mapEventPage.GraphicInfo.CharaChipFilePath; Debug.Log(graphicPath); CharaChipDirection charaChipDirection = mapEventPage.GraphicInfo.InitDirection; Texture2D charaChipTexture = new Texture2D(1, 1); byte[] bytes = System.IO.File.ReadAllBytes(graphicPath); charaChipTexture.LoadImage(bytes); charaChipTexture.filterMode = FilterMode.Point; RenderCharaChip(mapTexture, x, y, charaChipTexture, charaChipDirection); } } mapTexture.Apply(); mapTexture.filterMode = FilterMode.Point; Sprite sprite = Sprite.Create(mapTexture, new Rect(0.0f, 0.0f, mapTexture.width, mapTexture.height), new Vector2(0.5f, 0.5f), 1.0f); mapSprite.sprite = sprite; }