private MazeRoom CreateMazeRoom(BlockData data, int direction, int col, int row) { MazeRoom room = new MazeRoom(); room.Data = data; room.Direction = direction; room.Col = col; room.Row = row; return room; }
public void Parse(string name, out Dictionary<PassageType, List<BlockData>> passageDic, out List<BlockData> roomList, out Dictionary<int, BlockData> kvDic) { LoadFile(name); passageDic = new Dictionary<PassageType, List<BlockData>>(); passageDic.Add(PassageType.One, new List<BlockData>()); passageDic.Add(PassageType.TwoLine, new List<BlockData>()); passageDic.Add(PassageType.TwoTurn, new List<BlockData>()); passageDic.Add(PassageType.Three, new List<BlockData>()); passageDic.Add(PassageType.Four, new List<BlockData>()); roomList = new List<BlockData>(); kvDic = new Dictionary<int, BlockData>(); while (!EndOfRow) { int col = 0; BlockData data = new BlockData(); data.Kid = ReadInt(col++); data.BlockType = ReadEnum<BlockType>(col++); data.PassageType = ReadEnum<PassageType>(col++); data.Cols = ReadInt(col++); data.Rows = ReadInt(col++); data.LeftOffset = ReadInt(col++); data.Res3D = ReadString(col++); if (data.BlockType == BlockType.Passage) { passageDic[data.PassageType].Add(data); } else { roomList.Add(data); } kvDic.Add(data.Kid, data); NextLine(); } }
public BlockDataConfig() { IDManager idManager = IDManager.Instance; PassageDataDic = new Dictionary<PassageType, List<BlockData>>(); RoomDataList = new List<BlockData>(); BlockDataDic = new Dictionary<int, BlockData>(); List<BlockData> list; BlockData data; //----One---- list = new List<BlockData>(); PassageDataDic.Add(PassageType.One, list); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 1); data.BlockType = BlockType.Passage; data.PassageType = PassageType.One; data.Res3D = "PassageOne"; list.Add(data); //----TwoLine---- list = new List<BlockData>(); PassageDataDic.Add(PassageType.TwoLine, list); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 1201); data.BlockType = BlockType.Passage; data.PassageType = PassageType.TwoLine; data.Res3D = "PassageTwoLine"; list.Add(data); //----TwoTurn---- list = new List<BlockData>(); PassageDataDic.Add(PassageType.TwoTurn, list); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 2401); data.BlockType = BlockType.Passage; data.PassageType = PassageType.TwoTurn; data.Res3D = "PassageTwoTurn"; list.Add(data); //----Three---- list = new List<BlockData>(); PassageDataDic.Add(PassageType.Three, list); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 3601); data.BlockType = BlockType.Passage; data.PassageType = PassageType.Three; data.Res3D = "PassageThree"; list.Add(data); //----Four---- list = new List<BlockData>(); PassageDataDic.Add(PassageType.Four, list); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 4801); data.BlockType = BlockType.Passage; data.PassageType = PassageType.Four; data.Res3D = "PassageFour"; list.Add(data); //----Room---- data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 6001); data.BlockType = BlockType.Room; data.PassageType = PassageType.One; data.Res3D = "Room_1"; data.Cols = 3; data.Rows = 3; data.LeftOffset = 2; RoomDataList.Add(data); data = new BlockData(); data.Kid = idManager.GetID(IDType.Block, 6002); data.BlockType = BlockType.Room; data.PassageType = PassageType.One; data.Res3D = "Room_2"; data.Cols = 5; data.Rows = 5; data.LeftOffset = 3; RoomDataList.Add(data); foreach(List<BlockData> dataList in PassageDataDic.Values) { for (int i = 0; i < dataList.Count; ++i) { data = dataList[i]; BlockDataDic.Add(data.Kid, data); } } for (int i = 0; i < RoomDataList.Count; ++i) { data = RoomDataList[i]; BlockDataDic.Add(data.Kid, data); } // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Start; // data.Length = 10; // data.Width = 10; // data.Height = 3; // data.Res3D = "MazeBlocks/Level_Enter"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Final; // data.Length = 15; // data.Width = 15; // data.Height = 3; // data.Res3D = "MazeBlocks/Level_Exit"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Dungeons_Module1A"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Dungeons_Module1B"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Dungeons_Module1C"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Dungeons_Module1D"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 30; // data.Width = 30; // data.Height = 3; // data.Res3D = "MazeBlocks/Courner1A"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 30; // data.Width = 30; // data.Height = 3; // data.Res3D = "MazeBlocks/Courner1B"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Passage; // data.Length = 30; // data.Width = 30; // data.Height = 3; // data.Res3D = "MazeBlocks/Courner1C"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Room1"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Room2"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 10; // data.Width = 10; // data.Height = 3; // data.Res3D = "MazeBlocks/Room3A"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 10; // data.Width = 10; // data.Height = 3; // data.Res3D = "MazeBlocks/Room3B"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 10; // data.Width = 10; // data.Height = 3; // data.Res3D = "MazeBlocks/Room3C"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 15; // data.Width = 15; // data.Height = 3; // data.Res3D = "MazeBlocks/Room4"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 20; // data.Width = 20; // data.Height = 3; // data.Res3D = "MazeBlocks/Room_down1"; // BlockDataDic.Add(data.Kid, data); // // data = new BlockData(); // data.Kid = idManager.GetID(IDType.Block, index++); // data.Type = BlockType.Room; // data.Length = 25; // data.Width = 25; // data.Height = 3; // data.Res3D = "MazeBlocks/Room_down2"; // BlockDataDic.Add(data.Kid, data); }