$ show lasa01/Plumber
Plumber is a Blender addon for importing Source 1 engine game assets (maps, models, materials, textures) into Blender. It features a hybrid Python/Rust architecture where Python handles Blender integration and UI, while Rust performs performance-critical asset parsing and processing. The addon automatically detects installed Source games on Steam and provides both interactive import operators and a programmatic API for batch processing. Notable for its elegant material node system that cleanly converts Source engine materials to Blender-compatible node materials using a builder pattern with automatic dependency resolution.
The LLM identified 4 files worth highlighting for reuse:
Implements a flexible node-based material builder system using topological sorting to resolve dependencies between material nodes. Provides a clean framework for constructing complex Blender materials from Source engine material definitions, with automatic node positioning and reusable node groups. Demonstrates excellent separation of concerns and reusable patterns for material conversion systems.
Provides a robust abstraction for accessing game files from various sources (directories, VPK archives, wildcard paths) with proper error handling and resource management. Cleanly encapsulates file system operations and could be reused in other game asset extraction tools with minimal modification.
Implements the ParallelImportBuilder class for batch importing assets with automatic deduplication and dependency tracking. Handles complex asset relationships (textures → materials → models) and enables efficient parallel processing through a clean API. Shows sophisticated understanding of asset dependency management and could be adapted for other asset processing systems.
Defines the AssetCallbacks class that decouples asset processing from Blender-specific implementation using a message-passing pattern. Rust processes assets and sends them as messages to Python, which then handles Blender-specific object creation. This clean separation of concerns makes the asset processing pipeline highly modular and testable.