@abextm/cache2
Version:
Utilities for reading OSRS "caches"
65 lines (64 loc) • 1.81 kB
JavaScript
import { PerFileLoadable } from "../Loadable.js";
import { Typed } from "../reflect.js";
export class HealthBar extends PerFileLoadable {
id;
constructor(id) {
super();
this.id = id;
}
static index = 2;
static archive = 33;
unused1 = undefined;
sortOrder = 255;
despawnPriority = 255;
fadeOutAt = -1;
duration = 70;
unused2 = undefined;
filledSprite = -1;
emptySprite = -1;
denominator = 30;
borderSize = 0;
static decode(r, id) {
const v = new HealthBar(id);
for (let opcode; (opcode = r.u8()) != 0;) {
switch (opcode) {
case 1:
v.unused1 = r.u16();
break;
case 2:
v.sortOrder = r.u8();
break;
case 3:
v.despawnPriority = r.u8();
break;
case 4:
v.fadeOutAt = 0;
break;
case 5:
v.duration = r.u16();
break;
case 6:
v.unused2 = r.u8();
break;
case 7:
v.filledSprite = r.u32o16n();
break;
case 8:
v.emptySprite = r.u32o16n();
break;
case 11:
v.fadeOutAt = r.u16();
break;
case 14:
v.denominator = r.u8();
break;
case 15:
v.borderSize = r.u8();
break;
default:
throw new Error(`unknown opcode ${opcode}`);
}
}
return v;
}
}