public IResourceProvider Add(string FilePath) { //FilePath = PathUtils.GetFullPath(FilePath); MountedResources.Add(FilePath, new ValvePackage(FilePath)); Res.AddResourceProvider(MountedResources[FilePath]); return(this); }
public GameObject Generate() { _rootObject = new GameObject(_bsp.Name); _resourceLoader = new ResourceLoader(); _resourceLoader.AddResourceProvider(_bsp.PakFile); foreach (var appid in _options.GamesToMount) { if (SourceMounter.Mount(appid)) { foreach (var vpk in SourceMounter.MountedContent[appid]) { _resourceLoader.AddResourceProvider(vpk); } } } if (_options.WithModels) { GenerateModels(0, _bsp.Models.Count()); } if (_options.WithDisplacements) { GenerateDisplacements(); } if (_options.WithLightmaps) { GenerateLightmapPixels(); } if (_options.WithConvexColliders) { GeneratePhysModels(); } else { // add mesh colliders } if (_options.WithEntities) { GenerateEntities(); } return(_rootObject); }
static void SetBaseOptions(BaseOptions args) { BaseOptions = args; var vpkNames = args.Packages.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries) .Select(x => Path.IsPathRooted(x) ? x.Trim() : Path.Combine(args.GameDir, x.Trim())) .ToArray(); var loader = new ResourceLoader(); if (!string.IsNullOrEmpty(args.LooseDir)) { loader.AddResourceProvider(new FSLoader(args.LooseDir)); } foreach (var path in vpkNames) { loader.AddResourceProvider(new ValvePackage(path)); } Resources = loader; if (string.IsNullOrEmpty(args.ResourcesDir)) { args.ResourcesDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "..", "Resources"); } if (!Directory.Exists(args.ResourcesDir)) { args.ResourcesDir = null; } if (string.IsNullOrEmpty(args.MapsDir)) { args.MapsDir = "maps"; } if (!Path.IsPathRooted(args.MapsDir)) { args.MapsDir = Path.Combine(args.GameDir, args.MapsDir); } ValveBspFile.PakFileLump.DebugContents = args.DebugPakFile; }
private static void LoadGameArchive() { if (_sLoadedGameArchive) { return; } _sLoadedGameArchive = true; var vpkDirPath = Path.Combine(Config.CsgoPath, "pak01_dir.vpk"); using (Profiler.Begin("OpenVpkArchive")) { Resources.AddResourceProvider(new VpkArchve(vpkDirPath)); } }
static int Main(string[] args) { if (args.Length > 0) { CsgoDirectory = args[0]; } var assemblyDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); ResourcesDirectory = new DirectoryInfo(Path.Combine(assemblyDir, "..", "..", "Resources")).FullName; ScriptsDirectory = new DirectoryInfo(Path.Combine(assemblyDir, "..", "..", "Scripts")).FullName; CacheDirectory = Path.Combine(assemblyDir, "Cache"); BuildTimeUtc = new FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTimeUtc; Loader = new ResourceLoader(); Loader.AddResourceProvider(new ValvePackage(Path.Combine(CsgoDirectory, "pak01_dir.vpk"))); var server = new Server(8080); server.Controllers.Add("/", () => new StaticFileController(ResourcesDirectory)); server.Controllers.Add("/", () => new StaticFileController(ScriptsDirectory)); server.Controllers.Add(Assembly.GetExecutingAssembly()); server.Start(); var threads = new Thread[Math.Max(1, Environment.ProcessorCount - 1)]; for (var i = 0; i < threads.Length; ++i) { threads[i] = new Thread(() => server.Run()); threads[i].Start(); } server.Run(); return(0); }
public GameObject Generate() { _rootObject = new GameObject(_bsp.Name); _resourceLoader = new ResourceLoader(); _resourceLoader.AddResourceProvider(_bsp.PakFile); try { foreach (var appid in Options.GamesToMount) { if (SourceMounter.Mount(appid)) { foreach (var vpk in SourceMounter.MountedContent[appid]) { _resourceLoader.AddResourceProvider(vpk); } } } } catch (Exception e) { Debug.LogError(e); } if (Options.WithModels) { try { GenerateModels(0, _bsp.Models.Count()); } catch (Exception e) { Debug.LogError(e); } } if (Options.WithDisplacements) { try { GenerateDisplacements(); } catch (Exception e) { Debug.LogError(e); } } if (Options.WithLightmaps) { try { GenerateLightmapPixels(); } catch (Exception e) { Debug.LogError(e); } } if (Options.WithConvexColliders) { try { GeneratePhysModels(); } catch (Exception e) { Debug.LogError(e); } } else { // add mesh colliders } if (Options.WithEntities) { try { GenerateEntities(); } catch (Exception e) { Debug.LogError(e); } } if (Options.WithSkybox) { try { GenerateSkybox(); } catch (Exception e) { Debug.LogError(e); } } if (Options.WithProps) { try { GeneratePropModels(); GenerateStaticProps(); } catch (Exception e) { Debug.LogError(e); } } return(_rootObject); }
static void SetBaseOptions(BaseOptions args) { BaseOptions = args; var vpkNames = args.Packages.Split(new [] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries) .Select(x => Path.IsPathRooted(x) ? x.Trim() : Path.Combine(args.GameDir, x.Trim())) .ToArray(); var loader = new ResourceLoader(); if (!string.IsNullOrEmpty(args.LooseDir)) { loader.AddResourceProvider(new FSLoader(args.LooseDir)); } foreach (var path in vpkNames) { if (path.Contains("*")) { var wildcardPath = path.Replace('/', '\\'); var parts = wildcardPath.Split('\\'); var file = parts.Last(); var folder = @""; for (int i = 0; i < parts.Length - 1; i++) { folder += parts[i] + "\\"; } var paths = Directory.GetFiles(folder, file); foreach (var p in paths) { loader.AddResourceProvider(new ValvePackage(p)); } continue; } loader.AddResourceProvider(new ValvePackage(path)); } Resources = loader; if (string.IsNullOrEmpty(args.ResourcesDir)) { args.ResourcesDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..", "..", "Resources"); } if (!Directory.Exists(args.ResourcesDir)) { args.ResourcesDir = null; } if (string.IsNullOrEmpty(args.MapsDir)) { args.MapsDir = "maps"; } if (!Path.IsPathRooted(args.MapsDir)) { args.MapsDir = Path.Combine(args.GameDir, args.MapsDir); } ValveBspFile.PakFileLump.DebugContents = args.DebugPakFile; }