Skip to main content

Crate plasma_prp

Crate plasma_prp 

Source
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