Crates.io | wow-adt |
lib.rs | wow-adt |
version | 0.3.2 |
created_at | 2025-06-14 01:35:58.788161+00 |
updated_at | 2025-08-29 03:59:00.247319+00 |
description | Parser for World of Warcraft ADT terrain files with heightmap and texture layer support |
homepage | https://github.com/wowemulation-dev/warcraft-rs |
repository | https://github.com/wowemulation-dev/warcraft-rs |
max_upload_size | |
id | 1712019 |
size | 459,309 |
Parser for World of Warcraft ADT (terrain) files.
✅ Production Ready - Full parsing and validation support for ADT terrain files.
ADT files contain terrain and object information for WoW map tiles. Each map in World of Warcraft is divided into 64x64 tiles, with each tile stored as an ADT file.
Add to your Cargo.toml
:
[dependencies]
wow-adt = "0.3.0"
Or use cargo add:
cargo add wow-adt
use wow_adt::{Adt, AdtVersion};
// Parse an ADT file
let adt = Adt::from_path("path/to/terrain.adt")?;
// Get version information
println!("ADT Version: {:?}", adt.version());
// Access terrain chunks
println!("Terrain chunks: {}", adt.mcnk_chunks().len());
// Check for water data
if let Some(water) = adt.mh2o() {
println!("Contains water data");
}
use wow_adt::{Adt, ValidationLevel};
let adt = Adt::from_path("terrain.adt")?;
// Basic validation
adt.validate()?;
// Detailed validation with report
let report = adt.validate_with_report(ValidationLevel::Strict)?;
if !report.errors.is_empty() {
for error in &report.errors {
eprintln!("Error: {}", error);
}
}
use wow_adt::{Adt, AdtVersion};
let adt = Adt::from_path("vanilla_terrain.adt")?;
// Convert to Cataclysm format
let cata_adt = adt.to_version(AdtVersion::Cataclysm)?;
// Write to file
use std::fs::File;
use std::io::BufWriter;
let file = File::create("cata_terrain.adt")?;
let mut writer = BufWriter::new(file);
cata_adt.write(&mut writer)?;
The ADT functionality is integrated into the warcraft-rs
CLI:
# Show ADT file information
warcraft-rs adt info terrain.adt
# Validate an ADT file
warcraft-rs adt validate terrain.adt --level strict
# Convert between versions
warcraft-rs adt convert input.adt output.adt --to cataclysm
# Visualize ADT structure
warcraft-rs adt tree terrain.adt --show-refs
Licensed under either of
at your option.