TypeScript-based mdl/mdx (Warcraft 3 model formats) converter/renderer
npm i war3-model --save
MDL parsing/generation
import { parseMDL, generateMDL } from 'war3-model';
let model = parseMDL('...');
let mdl = generateMDL(model);
console.log(mdl);
BLP => PNG node.js cli converter
import * as fs from 'fs';
import { PNG } from 'pngjs';
import { decodeBLP, getBLPImageData } from 'war3-model';
let blp = decode(new Uint8Array(fs.readFileSync(process.argv[2])).buffer);
let imageData = getImageData(blp, 0);
let png = new PNG({width: blp.width, height: blp.height, inputHasAlpha: true});
png.data = Buffer.from(imageData.data.buffer);
fs.writeFileSync('out.png', PNG.sync.write(png));
100% of old classic Warcraft 3 models can be parsed.
After conversion mdx binary file
-> in-memory structure
-> mdx binary file
all of them would be byte-to-byte identical.
~98.4% of models (3276/3329) would be identical after mdx
-> structure
-> mdl
-> structure
-> mdx
(because warcraft contains extraneous data in models and because of unsupported multiple texture chunks in mdl).
Nope. Currently not supported, sorry
MIT Licence
Version | Tag | Published |
---|---|---|
2.2.1 | latest | 2mos ago |