Exemplo n.º 1
0
        public static int Main(string[] args)
        {
            Console.WriteLine("Exporting!");
            var vpkPath = @"C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\pak01_dir.vpk";

            //var heroName = "npc_dota_hero_void_spirit";
            var vpkLoader = BasicVpkFileLoader.FromVpk(vpkPath);

            var modelPaths = new List <string>();

            //var heroInfos = HeroInfo.LoadFromVpk(vpkLoader);
            //var heroInfo = heroInfos.FirstOrDefault(h => h.LocalizedName == heroName);
            //modelPaths.Add(heroInfo.ModelPath);
            //modelPaths.AddRange(heroInfo.Cosmetics.Where(item => item.IsDefault && !item.ModelPath.Contains("persona")).Select(item => item.ModelPath));

            modelPaths = new List <string>
            {
                "models/heroes/bristleback/bristleback.vmdl",
                "models/heroes/bristleback/bristleback_back.vmdl",
                "models/heroes/bristleback/bristleback_head.vmdl",
                "models/heroes/bristleback/bristleback_weapon.vmdl",
                "models/heroes/bristleback/bristleback_bracer.vmdl",
                "models/heroes/bristleback/bristleback_necklace.vmdl",
            };

            var exporter = new ObjExporter(vpkLoader);

            exporter.ExportModelsAsObj(modelPaths.Select(path =>
            {
                var resource = vpkLoader.LoadFile(path);

                if (resource.ResourceType != ResourceType.Model)
                {
                    throw new ArgumentException("Passed in path must be a path to a model");
                }

                return((Model)resource.DataBlock);
            }).ToList());
            return(0);
        }