예제 #1
0
    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();
            }
        }
    }
예제 #2
0
    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;
    }