void InitializeLot(Neighborhood nhood) { var lotFile = Path.Combine(nhood.nhoodFolder, "Lots/" + Path.GetFileName(nhood.nhoodFolder) + "_Lot" + lotNumber.ToString() + ".package"); package = new DBPFFile(lotFile); var rcolFile = package.GetItemByFullID(Hash.TGIRHash(0xFF1FB89E, 0x3ADB7D39, 0xAC4F8687, Hash.GroupHash(Path.GetFileNameWithoutExtension(package.fname)))); if (rcolFile != null) { imposterGMDC = new RCOLFile(new DBPFReference(rcolFile, package), true).dataBlocks[0] as GMDCDataBlock; foreach (var element in imposterGMDC.model.meshes) { element.RecalculateNormals(); } } }
public Neighborhood(string folder) { nhoodFolder = Path.GetFullPath(folder).TrimEnd(Path.DirectorySeparatorChar); var packagePath = Path.Combine(folder, Path.GetFileName(nhoodFolder) + "_Neighborhood.package"); package = new DBPFFile(packagePath); var stringsFile = package.GetItemByFullID(Hash.TGIRHash(0x00000001, 0x00000000, 0x43545353, package.groupID)); if (stringsFile != null) { var ds = new STRFile(stringsFile); name = ds.GetString(0); desc = ds.GetString(1); } var pictureFile = Path.Combine(folder, Path.GetFileName(nhoodFolder) + "_Neighborhood.png"); var hoodTexture = Environment.LoadUITexture(Hash.TGIRHash(0xCCC30155, 0x00000000, 0x856DDBAC, 0x499DB772)); if (File.Exists(pictureFile)) { hoodTexture = Environment.LoadUITexture(File.ReadAllBytes(pictureFile)); } thumbnail = hoodTexture; largePic = hoodTexture; }