UNPKG

@abextm/cache2

Version:

Utilities for reading OSRS "caches"

65 lines (64 loc) 1.81 kB
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; } }