From 66804e0bd2821e12ba0ed41de1133cd2b48febfa Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Fri, 3 Jul 2026 17:03:40 +0400 Subject: feat(stage2): materialize visual dependency graph --- crates/fparkan-prototype/src/lib.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'crates/fparkan-prototype') 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. -- cgit v1.2.3