load hl2 assets again

This commit is contained in:
Robin Appelman 2023-12-19 20:05:22 +01:00
commit 925cc3c37d
3 changed files with 15 additions and 11 deletions

10
Cargo.lock generated
View file

@ -2636,8 +2636,8 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]] [[package]]
name = "vbsp" name = "vbsp"
version = "0.2.0" version = "0.3.0"
source = "git+https://github.com/icewind1991/vbsp#160370b5f835e1671bc6eb1b8ee91474d9f1927e" source = "git+https://github.com/icewind1991/vbsp#7a491f86272a30a7022aa96c8ff44291bf57238e"
dependencies = [ dependencies = [
"ahash", "ahash",
"arrayvec", "arrayvec",
@ -2657,7 +2657,7 @@ dependencies = [
[[package]] [[package]]
name = "vbsp-derive" name = "vbsp-derive"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/icewind1991/vbsp#160370b5f835e1671bc6eb1b8ee91474d9f1927e" source = "git+https://github.com/icewind1991/vbsp#7a491f86272a30a7022aa96c8ff44291bf57238e"
dependencies = [ dependencies = [
"merge", "merge",
"proc-macro2", "proc-macro2",
@ -2696,7 +2696,7 @@ dependencies = [
[[package]] [[package]]
name = "vdf-reader" name = "vdf-reader"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/icewind1991/vdf-reader#d14f22d1bc97cd57c35585b9545c1491f32189bf" source = "git+https://github.com/icewind1991/vdf-reader#63b3bdbefdb97d7ea20858697702a8530b541e70"
dependencies = [ dependencies = [
"logos", "logos",
"miette", "miette",
@ -2735,7 +2735,7 @@ dependencies = [
[[package]] [[package]]
name = "vmt-parser" name = "vmt-parser"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/icewind1991/vmt-parser#8f31c601e56624482b541849f099ff233bb3e2b8" source = "git+https://github.com/icewind1991/vmt-parser#105afbc9550178c25143695091ab10ff869b5df6"
dependencies = [ dependencies = [
"miette", "miette",
"serde", "serde",

View file

@ -9,8 +9,8 @@ license = "MIT"
#three-d = { version = "0.16.3", features = ["egui-gui"] } #three-d = { version = "0.16.3", features = ["egui-gui"] }
three-d = { version = "0.16.3", features = ["egui-gui"], path = "../rust/three-d" } three-d = { version = "0.16.3", features = ["egui-gui"], path = "../rust/three-d" }
three-d-asset = { version = "0.6" } three-d-asset = { version = "0.6" }
vbsp = { version = "0.2.0", git = "https://github.com/icewind1991/vbsp" } vbsp = { version = "0.3.0", git = "https://github.com/icewind1991/vbsp" }
#vbsp = { version = "0.2.0", path = "../bsp" } #vbsp = { version = "0.3.0", path = "../bsp" }
miette = { version = "5.5.0", features = ["fancy"] } miette = { version = "5.5.0", features = ["fancy"] }
thiserror = "1.0.37" thiserror = "1.0.37"
delaunator = "1.0.1" delaunator = "1.0.1"

View file

@ -3,7 +3,7 @@ use std::fmt::{Debug, Formatter};
use std::fs; use std::fs;
use std::path::PathBuf; use std::path::PathBuf;
use steamlocate::SteamDir; use steamlocate::SteamDir;
use tracing::{debug, info}; use tracing::debug;
use vbsp::Packfile; use vbsp::Packfile;
use vpk::VPK; use vpk::VPK;
@ -24,15 +24,20 @@ impl Debug for Loader {
impl Loader { impl Loader {
pub fn new() -> Result<Self, Error> { pub fn new() -> Result<Self, Error> {
let tf_dir = SteamDir::locate() let tf2_dir = SteamDir::locate()
.ok_or("Can't find steam directory")? .ok_or("Can't find steam directory")?
.app(&440) .app(&440)
.ok_or("Can't find tf2 directory")? .ok_or("Can't find tf2 directory")?
.path .path
.join("tf"); .clone();
let tf_dir = tf2_dir.join("tf");
let hl_dir = tf2_dir.join("hl2");
let download = tf_dir.join("download"); let download = tf_dir.join("download");
let vpks = tf_dir let vpks = tf_dir
.read_dir()? .read_dir()?
.chain(hl_dir.read_dir()?)
.filter_map(|item| item.ok()) .filter_map(|item| item.ok())
.filter_map(|item| Some(item.path().to_str()?.to_string())) .filter_map(|item| Some(item.path().to_str()?.to_string()))
.filter(|path| path.ends_with("dir.vpk")) .filter(|path| path.ends_with("dir.vpk"))
@ -106,7 +111,6 @@ impl Loader {
return Ok(data); return Ok(data);
} }
} }
info!("Failed to find {} in vpk", name);
Err(Error::ResourceNotFound(name.to_string())) Err(Error::ResourceNotFound(name.to_string()))
} }