Files
armorpaint/base/Sources/Res.ts
T
luboslenco ee67b50c0f Use ts
2024-01-17 18:53:31 +01:00

59 lines
1.4 KiB
TypeScript

class Res {
static bundled: Map<string, Image> = new Map();
static load = (names: string[], done: ()=>void) => {
let loaded = 0;
for (let s of names) {
Data.getImage(s, (image: Image) => {
Res.bundled.set(s, image);
loaded++;
if (loaded == names.length) done();
});
}
}
static get = (name: string): Image => {
return Res.bundled.get(name);
}
static tile50 = (img: Image, x: i32, y: i32): TRect => {
let size = Config.raw.window_scale > 1 ? 100 : 50;
return { x: x * size, y: y * size, w: size, h: size };
}
static tile25 = (img: Image, x: i32, y: i32): TRect => {
let size = Config.raw.window_scale > 1 ? 50 : 25;
return { x: x * size, y: y * size, w: size, h: size };
}
static tile18 = (img: Image, x: i32, y: i32): TRect => {
let size = Config.raw.window_scale > 1 ? 36 : 18;
return { x: x * size, y: img.height - (y + 1) * size, w: size, h: size };
}
///if arm_snapshot
static embedRaw = (handle: string, name: string, file: ArrayBuffer) => {
Data.cachedBlobs.set(name, file);
Data.getSceneRaw(handle, (_) => {});
Data.cachedBlobs.delete(name);
}
static embedBlob = (name: string, file: ArrayBuffer) => {
Data.cachedBlobs.set(name, file);
}
static embedFont = (name: string, file: ArrayBuffer) => {
Data.cachedFonts.set(name, new Font(file));
}
///end
}
type TRect = {
x: i32;
y: i32;
w: i32;
h: i32;
}