public static void SettingLengthTest() { var instance = new TileSetSetting(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var length = 0; var errorOccured = false; try { length = instance.SettingLength; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 取得した結果が意図した値であること Assert.AreEqual(length, instance.TileTagNumberList.Count); Assert.AreEqual(length, instance.TilePathSettingList.Count); // プロパティ変更通知が発火していないこと Assert.AreEqual(changedPropertyList.Count, 0); }
public static void TilePathSettingListTest() { var instance = new TileSetSetting(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var errorOccured = false; try { var _ = instance.TilePathSettingList; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // プロパティ変更通知が発火していないこと Assert.AreEqual(changedPropertyList.Count, 0); }
private TileSetSetting ReadOneTileSetSetting(BinaryReadStatus readStatus) { // 設定名 ReadName(readStatus, out var name); // 基本タイルセットファイル名 ReadBaseTileSetFileName(readStatus, out var baseTileSetFileName); // オートタイルファイル名リスト ReadAutoTileSetFileNameList(readStatus, AutoTileFileNameList.MaxCapacity, out var autoTileFileNames); // セパレータ ReadSeparator(readStatus); // タグ番号リスト ReadTagNumberList(readStatus, out var tagNumbers); // セパレータ ReadSeparator(readStatus); // タイル設定リスト ReadTilePathSettingList(readStatus, out var tilePathSettings); var result = new TileSetSetting(new TileTagNumberList(tagNumbers), new TilePathSettingList(tilePathSettings), new AutoTileFileNameList(autoTileFileNames)) { Name = name, BaseTileSetFileName = baseTileSetFileName }; return(result); }
public static void ConstructorTest( int tileTagNumberLength, int tilePathSettingLength, int autoTileFileNameLength, bool isError) { TileSetSetting instance = null; var tileTagNumbers = MakeTileTagNumberList(tileTagNumberLength); var tilePathSettings = MakeTilePathSettingList(tilePathSettingLength); var autoTileFileNames = MakeAutoTileFileNameList(autoTileFileNameLength); var errorOccured = false; try { instance = new TileSetSetting(tileTagNumbers, tilePathSettings, autoTileFileNames); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (errorOccured) { return; } // セットした値と各プロパティの値が一致すること if (tileTagNumbers != null) { Assert.IsTrue(instance.TileTagNumberList.Equals(tileTagNumbers)); } else { Assert.NotNull(instance.TileTagNumberList); } if (tilePathSettings != null) { Assert.IsTrue(instance.TilePathSettingList.Equals(tilePathSettings)); } else { Assert.NotNull(instance.TilePathSettingList); } if (autoTileFileNames != null) { Assert.IsTrue(instance.AutoTileFileNameList.Equals(autoTileFileNames)); } else { Assert.NotNull(instance.AutoTileFileNameList); } }
public static void SerializeTest() { var target = new TileSetSetting { Name = "Name" }; var clone = DeepCloner.DeepClone(target); Assert.IsTrue(clone.Equals(target)); }
public static void TileSetSettingTest(TileSetSetting setting, bool isError) { var instance = new TileSetFileData(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var errorOccured = false; try { instance.TileSetSetting = setting; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (!errorOccured) { var setValue = instance.TileSetSetting; // セットした値と取得した値が一致すること Assert.IsTrue(setValue.Equals(setting)); } // 意図したとおりプロパティ変更通知が発火していること if (errorOccured) { Assert.AreEqual(changedPropertyList.Count, 0); } else { Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(TileSetFileData.TileSetSetting))); } }
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // ReadMethod // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ /// <summary> /// タイルセット設定一つ /// </summary> /// <param name="status">読み込み経過状態</param> /// <exception cref="InvalidOperationException">バイナリデータがファイル仕様と異なる場合</exception> private TileSetSetting ReadOneTileSetSetting(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(TileSetSettingReader), "タイルセット設定")); // 設定名 ReadName(status, out var name); // 基本タイルセットファイル名 ReadBaseTileSetFileName(status, out var baseTileSetFileName); // オートタイルファイル名リスト ReadAutoTileSetFileNameList(status, AutoTileFileNameList.MaxCapacity, out var autoTileFileNames); // セパレータ ReadSeparator(status); // タグ番号リスト ReadTagNumberList(status, out var tagNumbers); // セパレータ ReadSeparator(status); // タイル設定リスト ReadTilePathSettingList(status, out var tilePathSettings); var result = new TileSetSetting(new TileTagNumberList(tagNumbers), new TilePathSettingList(tilePathSettings), new AutoTileFileNameList(autoTileFileNames)) { Name = name, BaseTileSetFileName = baseTileSetFileName }; Logger.Debug(FileIOMessage.EndCommonRead(typeof(TileSetSettingReader), "タイルセット設定")); return(result); }
/// <summary> /// タイルセット設定 /// </summary> /// <param name="status"></param> /// <param name="setting"></param> private void ReadTileSetSetting(FileReadStatus status, out TileSetSetting setting) { var reader = new TileSetSettingReader(status); setting = reader.Read(); }
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; }
public static void ChangeSettingLengthTest() { var instance = new TileSetSetting(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var changedTileTagNumberListPropertyList = new List <string>(); instance.TileTagNumberList.PropertyChanged += (sender, args) => { changedTileTagNumberListPropertyList.Add(args.PropertyName); }; var changedTileTagNumberListCollectionList = new List <NotifyCollectionChangedEventArgs>(); instance.TileTagNumberList.CollectionChanged += (sender, args) => { changedTileTagNumberListCollectionList.Add(args); }; var changedTilePathSettingListPropertyList = new List <string>(); instance.TilePathSettingList.PropertyChanged += (sender, args) => { changedTilePathSettingListPropertyList.Add(args.PropertyName); }; var changedTilePathSettingListCollectionList = new List <NotifyCollectionChangedEventArgs>(); instance.TilePathSettingList.CollectionChanged += (sender, args) => { changedTilePathSettingListCollectionList.Add(args); }; const int length = 30; var errorOccured = false; try { instance.ChangeSettingLength(length); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 取得した結果が意図した値であること Assert.AreEqual(length, instance.SettingLength); // 意図したとおりプロパティ変更通知が発火していること Assert.AreEqual(changedPropertyList.Count, 0); Assert.AreEqual(changedTileTagNumberListPropertyList.Count, 2); Assert.IsTrue(changedTileTagNumberListPropertyList[0].Equals(nameof(instance.TileTagNumberList.Count))); Assert.IsTrue(changedTileTagNumberListPropertyList[1].Equals(ListConstant.IndexerName)); Assert.AreEqual(changedTileTagNumberListCollectionList.Count, 1); Assert.IsTrue(changedTileTagNumberListCollectionList[0].Action == NotifyCollectionChangedAction.Add); Assert.AreEqual(changedTilePathSettingListPropertyList.Count, 2); Assert.IsTrue(changedTilePathSettingListPropertyList[0].Equals(nameof(instance.TilePathSettingList.Count))); Assert.IsTrue(changedTilePathSettingListPropertyList[1].Equals(ListConstant.IndexerName)); Assert.AreEqual(changedTilePathSettingListCollectionList.Count, 1); Assert.IsTrue(changedTilePathSettingListCollectionList[0].Action == NotifyCollectionChangedAction.Add); }
void RenderMap() { MapData mapData = CoreData.Instance.mapDataArray[CoreData.Instance.currentMapID]; TileSetSetting tileSetting = CoreData.Instance.tileSetData.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 < mapTexture.height; i++) { for (int j = 0; j < mapTexture.width; j++) { mapTexture.SetPixel(j, i, new Color(0, 0, 0)); } } 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); /*sprite = Sprite.Create(baseTileTexture, * new Rect(0, 0, baseTileTexture.width, baseTileTexture.height), new Vector2(0.5f, 0.5f), 1.0f);*/ mapSprite.sprite = sprite; }