deadem
Version:
JavaScript (Node.js & Browsers) parser for Deadlock (Valve Source 2 Engine) demo/replay files
38 lines (29 loc) • 849 B
JavaScript
import Assert from '#core/Assert.js';
import FieldDecoder from './FieldDecoder.js';
class FieldDecoderVectorN extends FieldDecoder {
/**
* @constructor
* @param {FieldDecoder} decoder - Value decoder.
* @param {number} n - Number of dimensions of the vector.
*/
constructor(decoder, n) {
super();
Assert.isTrue(decoder instanceof FieldDecoder);
Assert.isTrue(Number.isInteger(n) && n >= 2 && n <= 4);
this._decoder = decoder;
this._n = n;
}
/**
* @protected
* @param {BitBuffer} bitBuffer
* @returns {number[]}
*/
_decode(bitBuffer) {
const vector = [ ];
for (let i = 0; i < this._n; i++) {
vector[i] = this._decoder.decode(bitBuffer);
}
return vector;
}
}
export default FieldDecoderVectorN;