map-tool: grab brush models
This commit is contained in:
parent
7e23462f1f
commit
a2281b7ad7
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -2048,6 +2048,7 @@ dependencies = [
|
|||||||
"thiserror 2.0.11",
|
"thiserror 2.0.11",
|
||||||
"tokio",
|
"tokio",
|
||||||
"vbsp",
|
"vbsp",
|
||||||
|
"vbsp-entities",
|
||||||
"vmdl",
|
"vmdl",
|
||||||
"vmt-parser",
|
"vmt-parser",
|
||||||
"vpk",
|
"vpk",
|
||||||
|
@ -26,6 +26,7 @@ strafesnet_snf = { version = "0.3.0", path = "../lib/snf", registry = "strafesne
|
|||||||
thiserror = "2.0.11"
|
thiserror = "2.0.11"
|
||||||
tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread", "fs"] }
|
tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread", "fs"] }
|
||||||
vbsp = { version = "0.7.0-codegen5", registry = "strafesnet", default-features = false }
|
vbsp = { version = "0.7.0-codegen5", registry = "strafesnet", default-features = false }
|
||||||
|
vbsp-entities = { version = "0.1.0", registry = "strafesnet", default-features = false, features = ["css"]}
|
||||||
vmdl = "0.2.0"
|
vmdl = "0.2.0"
|
||||||
vmt-parser = "0.2.0"
|
vmt-parser = "0.2.0"
|
||||||
vpk = "0.2.0"
|
vpk = "0.2.0"
|
||||||
|
@ -6,6 +6,7 @@ use futures::StreamExt;
|
|||||||
use strafesnet_bsp_loader::loader::BspFinder;
|
use strafesnet_bsp_loader::loader::BspFinder;
|
||||||
use strafesnet_deferred_loader::loader::Loader;
|
use strafesnet_deferred_loader::loader::Loader;
|
||||||
use strafesnet_deferred_loader::deferred_loader::{LoadFailureMode,MeshDeferredLoader,RenderConfigDeferredLoader};
|
use strafesnet_deferred_loader::deferred_loader::{LoadFailureMode,MeshDeferredLoader,RenderConfigDeferredLoader};
|
||||||
|
use vbsp_entities::css::Entity;
|
||||||
|
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub enum Commands{
|
pub enum Commands{
|
||||||
@ -248,6 +249,55 @@ async fn gimme_them_textures(path:&Path,vpk_list:&[strafesnet_bsp_loader::Vpk],s
|
|||||||
mesh_deferred_loader.acquire_mesh_id(prop.model());
|
mesh_deferred_loader.acquire_mesh_id(prop.model());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for raw_ent in &bsp.entities{
|
||||||
|
let model=match raw_ent.parse(){
|
||||||
|
Ok(Entity::Cycler(brush))=>brush.model,
|
||||||
|
Ok(Entity::EnvSprite(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncBreakable(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncBrush(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncButton(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncDoor(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncDoorRotating(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncIllusionary(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncMonitor(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncMovelinear(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncPhysbox(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncPhysboxMultiplayer(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncRotButton(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncRotating(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncTracktrain(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncTrain(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncWall(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncWallToggle(brush))=>brush.model,
|
||||||
|
Ok(Entity::FuncWaterAnalog(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropDoorRotating(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropDynamic(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropDynamicOverride(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropPhysics(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropPhysicsMultiplayer(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropPhysicsOverride(brush))=>brush.model,
|
||||||
|
Ok(Entity::PropRagdoll(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerGravity(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerHurt(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerLook(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerMultiple(brush))=>brush.model.unwrap_or_default(),
|
||||||
|
Ok(Entity::TriggerOnce(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerProximity(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerPush(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerSoundscape(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerTeleport(brush))=>brush.model.unwrap_or_default(),
|
||||||
|
Ok(Entity::TriggerVphysicsMotion(brush))=>brush.model,
|
||||||
|
Ok(Entity::TriggerWind(brush))=>brush.model,
|
||||||
|
_=>continue,
|
||||||
|
};
|
||||||
|
match model.chars().next(){
|
||||||
|
Some('*')=>(),
|
||||||
|
_=>{
|
||||||
|
mesh_deferred_loader.acquire_mesh_id(model);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let finder=BspFinder{
|
let finder=BspFinder{
|
||||||
bsp:&loader_bsp,
|
bsp:&loader_bsp,
|
||||||
vpks:vpk_list
|
vpks:vpk_list
|
||||||
|
Loading…
x
Reference in New Issue
Block a user