This is a work in progress but already loads enough data from wld files to be able to do some basic rendering of models. The interface has been heavily influenced by the glTF crate. Parts of the wld file format are still not well understood and future understanding may influence the api of this crate.
```rust let archive = eqarchive::read("gfaydark.s3d").unwrap(); let wlddata = archive.get("gfaydark.wld").unwrap();
let wld = eqwld::load(&wlddata).unwrap();
// Iterate over meshes for mesh in wld.meshes() { let name = mesh.name(); let positions = mesh.positions(); let normals = mesh.normals(); let texturecoordinates = mesh.texturecoordinates(); let indices = mesh.indices(); let center = mesh.center(); ... }
// Iterate over materials for material in wld.materials() { let name = material.name(); let texture = material.basecolortexture(); let texture_source = texture.source(); ... } ```
This project wouldn't have been possible without Windcatcher's WLD File Reference. Some documentation has been reproduced as comments within the parser module. Names of file fragments have been changed when another term from the glTF reference seemed like a better fit. The goal is that this will be usable in more modern engines and hopefully the names used are more familiar in that context.