mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
39 lines (32 loc) • 916 B
text/typescript
import BinaryStream from '../../common/binarystream';
import TokenStream from './tokenstream';
/**
* A face effect.
*/
export default class FaceEffect {
type: string = '';
path: string = '';
readMdx(stream: BinaryStream) {
this.type = stream.read(80);
this.path = stream.read(260);
}
writeMdx(stream: BinaryStream) {
stream.skip(80 - stream.write(this.type));
stream.skip(260 - stream.write(this.path));
}
readMdl(stream: TokenStream) {
this.type = stream.read();
for (let token of stream.readBlock()) {
if (token === 'Path') {
this.path = stream.read();
} else {
throw new Error(`Unknown token in FaceEffect: "${token}"`);
}
}
}
writeMdl(stream: TokenStream) {
stream.startObjectBlock('FaceFX', this.type);
stream.writeStringAttrib('Path', this.path);
stream.endBlock();
}
}