aboutsummaryrefslogtreecommitdiff
path: root/crates/fparkan-prototype
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-03 16:03:40 +0300
committerValentin Popov <valentin@popov.link>2026-07-03 16:03:40 +0300
commit66804e0bd2821e12ba0ed41de1133cd2b48febfa (patch)
tree2ac761d1e75ad7fde37dbd3a46f3b0150be28367 /crates/fparkan-prototype
parentee9b318172bf50fadd90e0cfc364330fb85f778a (diff)
downloadfparkan-66804e0bd2821e12ba0ed41de1133cd2b48febfa.tar.xz
fparkan-66804e0bd2821e12ba0ed41de1133cd2b48febfa.zip
feat(stage2): materialize visual dependency graph
Diffstat (limited to 'crates/fparkan-prototype')
-rw-r--r--crates/fparkan-prototype/src/lib.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/fparkan-prototype/src/lib.rs b/crates/fparkan-prototype/src/lib.rs
index e85322b..7ee07ad 100644
--- a/crates/fparkan-prototype/src/lib.rs
+++ b/crates/fparkan-prototype/src/lib.rs
@@ -179,6 +179,16 @@ pub enum PrototypeGraphNodeKind {
Prototype,
/// Mesh dependency.
MeshResource,
+ /// WEAR dependency.
+ WearResource,
+ /// MAT0 dependency.
+ MaterialResource,
+ /// TEXM texture dependency.
+ TextureResource,
+ /// TEXM lightmap dependency.
+ LightmapResource,
+ /// Effect dependency placeholder for later stages.
+ EffectResource,
/// Non-geometric prototype.
NonGeometric,
}
@@ -197,6 +207,17 @@ pub struct PrototypeGraphNode {
}
impl PrototypeGraphNode {
+ /// Creates a typed resource node.
+ #[must_use]
+ pub fn resource(kind: PrototypeGraphNodeKind, resource: ResourceKey, id: PrototypeGraphNodeId) -> Self {
+ Self {
+ id,
+ kind,
+ key: None,
+ resource: Some(resource),
+ }
+ }
+
/// Creates a mesh resource node.
#[must_use]
pub const fn mesh(resource: ResourceKey, id: PrototypeGraphNodeId) -> Self {
@@ -244,6 +265,16 @@ pub enum PrototypeGraphEdgeKind {
UnitDatToComponent,
/// Prototype to mesh dependency.
PrototypeToMesh,
+ /// Mesh resource to WEAR table.
+ MeshToWear,
+ /// WEAR table to MAT0 material.
+ WearToMaterial,
+ /// MAT0 material to TEXM texture.
+ MaterialToTexture,
+ /// WEAR table to TEXM lightmap.
+ WearToLightmap,
+ /// MAT0 material to effect dependency.
+ MaterialToEffect,
}
/// Prototype graph edge record.