@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
36 lines (32 loc) • 3.53 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
class SkinImage {
width;
height;
data;
constructor({ width, height, data }) {
this.width = width;
this.height = height;
this.data = data;
}
// TODO: API
networkSerialize(stream) {
stream.writeUnsignedIntLE(this.width);
stream.writeUnsignedIntLE(this.height);
stream.writeUnsignedVarInt(this.data.length);
stream.write(this.data);
}
static networkDeserialize(stream) {
const width = stream.readUnsignedIntLE();
const height = stream.readUnsignedIntLE();
const length = stream.readUnsignedVarInt();
const data = stream.read(length);
return new SkinImage({
width,
height,
data
});
}
}
exports.default = SkinImage;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tpbkltYWdlLmNqcy5janMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9za2luL1NraW5JbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBCaW5hcnlTdHJlYW0gZnJvbSAnQGpzcHJpc21hcmluZS9qc2JpbmFyeXV0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2tpbkltYWdlIHtcbiAgICBwdWJsaWMgd2lkdGg6IG51bWJlcjtcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXI7XG4gICAgcHVibGljIGRhdGE6IEJ1ZmZlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IHdpZHRoLCBoZWlnaHQsIGRhdGEgfTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcjsgZGF0YTogQnVmZmVyIH0pIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBBUElcblxuICAgIHB1YmxpYyBuZXR3b3JrU2VyaWFsaXplKHN0cmVhbTogQmluYXJ5U3RyZWFtKTogdm9pZCB7XG4gICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkSW50TEUodGhpcy53aWR0aCk7XG4gICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkSW50TEUodGhpcy5oZWlnaHQpO1xuICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFZhckludCh0aGlzLmRhdGEubGVuZ3RoKTtcbiAgICAgICAgc3RyZWFtLndyaXRlKHRoaXMuZGF0YSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZXR3b3JrRGVzZXJpYWxpemUoc3RyZWFtOiBCaW5hcnlTdHJlYW0pOiBTa2luSW1hZ2Uge1xuICAgICAgICBjb25zdCB3aWR0aCA9IHN0cmVhbS5yZWFkVW5zaWduZWRJbnRMRSgpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBzdHJlYW0ucmVhZFVuc2lnbmVkSW50TEUoKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gc3RyZWFtLnJlYWRVbnNpZ25lZFZhckludCgpO1xuICAgICAgICBjb25zdCBkYXRhID0gc3RyZWFtLnJlYWQobGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBTa2luSW1hZ2Uoe1xuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBkYXRhXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsTUFBcUIsU0FBVSxDQUFBO0FBQUEsRUFDcEIsS0FBQTtBQUFBLEVBQ0EsTUFBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBRUEsV0FBWSxDQUFBLEVBQUUsS0FBTyxFQUFBLE1BQUEsRUFBUSxNQUF5RCxFQUFBO0FBQ3pGLElBQUEsSUFBQSxDQUFLLEtBQVEsR0FBQSxLQUFBO0FBQ2IsSUFBQSxJQUFBLENBQUssTUFBUyxHQUFBLE1BQUE7QUFDZCxJQUFBLElBQUEsQ0FBSyxJQUFPLEdBQUEsSUFBQTtBQUFBO0FBQ2hCO0FBQUEsRUFJTyxpQkFBaUIsTUFBNEIsRUFBQTtBQUNoRCxJQUFPLE1BQUEsQ0FBQSxrQkFBQSxDQUFtQixLQUFLLEtBQUssQ0FBQTtBQUNwQyxJQUFPLE1BQUEsQ0FBQSxrQkFBQSxDQUFtQixLQUFLLE1BQU0sQ0FBQTtBQUNyQyxJQUFPLE1BQUEsQ0FBQSxtQkFBQSxDQUFvQixJQUFLLENBQUEsSUFBQSxDQUFLLE1BQU0sQ0FBQTtBQUMzQyxJQUFPLE1BQUEsQ0FBQSxLQUFBLENBQU0sS0FBSyxJQUFJLENBQUE7QUFBQTtBQUMxQixFQUVBLE9BQWMsbUJBQW1CLE1BQWlDLEVBQUE7QUFDOUQsSUFBTSxNQUFBLEtBQUEsR0FBUSxPQUFPLGlCQUFrQixFQUFBO0FBQ3ZDLElBQU0sTUFBQSxNQUFBLEdBQVMsT0FBTyxpQkFBa0IsRUFBQTtBQUN4QyxJQUFNLE1BQUEsTUFBQSxHQUFTLE9BQU8sa0JBQW1CLEVBQUE7QUFDekMsSUFBTSxNQUFBLElBQUEsR0FBTyxNQUFPLENBQUEsSUFBQSxDQUFLLE1BQU0sQ0FBQTtBQUMvQixJQUFBLE9BQU8sSUFBSSxTQUFVLENBQUE7QUFBQSxNQUNqQixLQUFBO0FBQUEsTUFDQSxNQUFBO0FBQUEsTUFDQTtBQUFBLEtBQ0gsQ0FBQTtBQUFBO0FBRVQ7Ozs7In0=