Expand description
plasma-prp — Parser library for Plasma engine files (Myst Online: Uru Live).
Reads and writes .prp (Plasma Resource Page), .age, .sdl, and .fni files.
Zero engine dependencies — no GPU, audio, or physics.
§Quick Start
use plasma_prp::resource::prp::{PrpPage, class_types};
use plasma_prp::age::description::AgeDescription;
// Load an age description
let age = AgeDescription::from_file("Cleft.age".as_ref()).unwrap();
println!("Age: {} ({} pages)", age.age_name, age.pages.len());
// Load a PRP page
let page = PrpPage::from_file("Cleft_District_Cleft.prp".as_ref()).unwrap();
println!("{} objects", page.keys.len());
// Access objects by type
let drawables = page.keys_of_type(class_types::PL_DRAWABLE_SPANS);
println!("{} drawable spans", drawables.len());Re-exports§
pub use core::class_index::ClassIndex;pub use core::load_mask::LoadMask;pub use core::location::Location;pub use core::uoid::Uoid;pub use resource::prp::PlasmaRead;pub use resource::prp::PlasmaWrite;pub use resource::prp::PrpPage;pub use resource::prp::PageHeader;pub use resource::prp::ObjectKey;pub use age::description::AgeDescription;
Modules§
- age
- Age description parsing — .age file format.
- animation
- Animation system — keyframes, controllers, evaluators, time conversion.
- camera
- Camera brain parsing.
- core
- Core object infrastructure — plLocation, plUoid, plKey, plFactory, hsKeyedObject, plSynchedObject, plSceneObject and interfaces.
- lighting
- Lighting system — plLightInfo, directional/omni/spot lights.
- material
- Material and layer parsing — hsGMaterial, plLayer, plLayerAnimation.
- rendering
- Rendering data parsing — fog environments.
- resource
- Resource parsing — .prp binary format, vertex codecs, cluster groups.
- sdl