public void Load(ZON zon, string mapFolder, string himName, string tilName, Vector2 mapPosition) { this.zon = zon; this.mapPosition = mapPosition; this.him = ContentManager.Instance().GetHIM(himName, mapFolder); this.til = ContentManager.Instance().GetTIL(tilName, mapFolder); this.GenerateVertices(); }
public void Load(string ifoName, string mapFolder, ZSC dec, ZSC build, Vector2 mapPosition) { this.ifo = new IFO(); this.ifo = ContentManager.Instance().GetIFO(ifoName, mapFolder); this.decorationZSC = dec; this.buildingZSC = build; for (int i = 0; i < this.ifo.listDecorationBlock.Count; i++) { for (int j = 0; j < this.ifo.listDecorationBlock[i].listDecoration.Count; j++) { int objectID = this.ifo.listDecorationBlock[i].listDecoration[j].objectID; Entity entity = new Entity(); for (int k = 0; k < dec.listObject[objectID].list_mesh.Count; k++) { ZMS zMS = new ZMS(this.graphics); zMS.Load(ContentManager.GetRootPath() + dec.listMesh[(int)dec.listObject[objectID].list_mesh[k].mesh_id].path, ClientType.IROSE); zMS.LoadTexture(ContentManager.GetRootPath(), this.graphics, dec.listMateriel[(int)dec.listObject[objectID].list_mesh[k].material_id]); zMS.ApplyZSCData(dec.listObject[objectID], k); entity.AddPart(zMS); } Vector3 position = default(Vector3); position.X = this.ifo.listDecorationBlock[i].listDecoration[j].position.X / 100f + 5200f; position.Y = this.ifo.listDecorationBlock[i].listDecoration[j].position.Y / 100f + 5200f; position.Z = this.ifo.listDecorationBlock[i].listDecoration[j].position.Z / 100f; Matrix matrix = Matrix.Identity; matrix *= Matrix.CreateScale(this.ifo.listDecorationBlock[i].listDecoration[j].scale); matrix *= Matrix.CreateFromQuaternion(new Quaternion(this.ifo.listDecorationBlock[i].listDecoration[j].rotation.W, this.ifo.listDecorationBlock[i].listDecoration[j].rotation.X, this.ifo.listDecorationBlock[i].listDecoration[j].rotation.Y, this.ifo.listDecorationBlock[i].listDecoration[j].rotation.Z)); matrix *= Matrix.CreateTranslation(position); entity.ApplyTransformation(matrix); this.listEntity.Add(entity); } } for (int j = 0; j < this.ifo.listBuildingBlock[0].listBuilding.Count; j++) { int objectID = this.ifo.listBuildingBlock[0].listBuilding[j].objectID; Entity entity = new Entity(); for (int k = 0; k < build.listObject[objectID].list_mesh.Count; k++) { ZMS zMS = new ZMS(this.graphics); zMS.Load(ContentManager.GetRootPath() + build.listMesh[(int)build.listObject[objectID].list_mesh[k].mesh_id].path, ClientType.IROSE); zMS.LoadTexture(ContentManager.GetRootPath(), this.graphics, build.listMateriel[(int)build.listObject[objectID].list_mesh[k].material_id]); zMS.ApplyZSCData(build.listObject[objectID], k); entity.AddPart(zMS); } Vector3 position = default(Vector3); position.X = this.ifo.listBuildingBlock[0].listBuilding[j].position.X / 100f + 5200f; position.Y = this.ifo.listBuildingBlock[0].listBuilding[j].position.Y / 100f + 5200f; position.Z = this.ifo.listBuildingBlock[0].listBuilding[j].position.Z / 100f; Matrix matrix = Matrix.Identity; matrix *= Matrix.CreateScale(this.ifo.listBuildingBlock[0].listBuilding[j].scale); matrix *= Matrix.CreateFromQuaternion(new Quaternion(this.ifo.listBuildingBlock[0].listBuilding[j].rotation.W, this.ifo.listBuildingBlock[0].listBuilding[j].rotation.X, this.ifo.listBuildingBlock[0].listBuilding[j].rotation.Y, this.ifo.listBuildingBlock[0].listBuilding[j].rotation.Z)); matrix *= Matrix.CreateTranslation(position); entity.ApplyTransformation(matrix); this.listEntity.Add(entity); } }
public void Load(string zonPath, string zscBuildingPath, string zscDecorationPath, string mapFolder, int minSizeX, int minSizeY, int maxSizeX, int maxSizeY) { ZON zON = ContentManager.Instance().GetZON(zonPath); ZSC zSC = ContentManager.Instance().GetZSC(zscBuildingPath); ZSC zSC2 = ContentManager.Instance().GetZSC(zscDecorationPath); this.decorationBlocks = new DecorationBlock[maxSizeX - minSizeX + 1, maxSizeY - minSizeY + 1]; this.mapBlocks = new MapBlock[maxSizeX - minSizeX + 1, maxSizeY - minSizeY + 1]; this.isView = new bool[maxSizeX - minSizeX + 1, maxSizeY - minSizeY + 1]; for (int i = minSizeX; i <= maxSizeX; i++) { for (int j = minSizeY; j <= maxSizeY; j++) { string himName = string.Concat(new object[] { i, "_", j, ".HIM" }); string tilName = string.Concat(new object[] { i, "_", j, ".TIL" }); MapBlock mapBlock = new MapBlock(this.graphics); mapBlock.Load(zON, mapFolder, himName, tilName, new Vector2((float)i, (float)j)); this.mapBlocks[i - minSizeX, j - minSizeY] = mapBlock; string ifoName = string.Concat(new object[] { i, "_", j, ".IFO" }); DecorationBlock decorationBlock = new DecorationBlock(this.graphics); decorationBlock.Load(ifoName, mapFolder, zSC2, zSC, new Vector2((float)i, (float)j)); this.decorationBlocks[i - minSizeX, j - minSizeY] = decorationBlock; } } this.GenerateIndice(); }
public void Load(int mapIndex) { ContentManager.Instance().ClearMapData(); STB sTB = ContentManager.Instance().GetSTB("3DDATA\\STB\\LIST_ZONE.STB"); string cellValue = sTB.GetCellValue <string>(mapIndex, 2); string cellValue2 = sTB.GetCellValue <string>(mapIndex, 13); string cellValue3 = sTB.GetCellValue <string>(mapIndex, 12); this.mapFolder = Directory.GetParent(ContentManager.GetRootPath() + cellValue).FullName + "\\"; this.minSizeX = sTB.GetCellValue <int>(mapIndex, 10); this.minSizeY = sTB.GetCellValue <int>(mapIndex, 11); this.maxSizeY = this.minSizeY; this.maxSizeX = this.minSizeX; while (File.Exists(string.Concat(new object[] { this.mapFolder, this.maxSizeX, "_", this.minSizeY, ".HIM" }))) { this.maxSizeX++; } this.maxSizeX--; while (File.Exists(string.Concat(new object[] { this.mapFolder, this.minSizeX, "_", this.maxSizeY, ".HIM" }))) { this.maxSizeY++; } this.maxSizeY--; this.terrain = new Terrain(this.graphics); this.terrain.Load(cellValue, cellValue2, cellValue3, this.mapFolder, this.minSizeX, this.minSizeY, this.maxSizeX, this.maxSizeY); }