53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
/// <reference path="shims.d.ts"/>
|
|
|
|
import { expect } from "chai";
|
|
import { isSlimSkin, loadSkinToCanvas } from "../src/utils";
|
|
|
|
import skin1_8Default from "./textures/skin-1.8-default-no_hd.png";
|
|
import skin1_8Slim from "./textures/skin-1.8-slim-no_hd.png";
|
|
import skinOldDefault from "./textures/skin-old-default-no_hd.png";
|
|
import skinLegacyHatDefault from "./textures/skin-legacyhat-default-no_hd.png";
|
|
|
|
describe("detect model of texture", () => {
|
|
it("1.8 default", async () => {
|
|
const image = document.createElement("img");
|
|
image.src = skin1_8Default;
|
|
await Promise.resolve();
|
|
expect(isSlimSkin(image)).to.equal(false);
|
|
});
|
|
|
|
it("1.8 slim", async () => {
|
|
const image = document.createElement("img");
|
|
image.src = skin1_8Slim;
|
|
await Promise.resolve();
|
|
expect(isSlimSkin(image)).to.equal(true);
|
|
});
|
|
|
|
it("old default", async () => {
|
|
const image = document.createElement("img");
|
|
image.src = skinOldDefault;
|
|
await Promise.resolve();
|
|
expect(isSlimSkin(image)).to.equal(false);
|
|
});
|
|
});
|
|
|
|
describe("process skin texture", () => {
|
|
it("clear the hat area of legacy skin", async () => {
|
|
const image = document.createElement("img");
|
|
image.src = skinLegacyHatDefault;
|
|
await Promise.resolve();
|
|
const canvas = document.createElement("canvas");
|
|
loadSkinToCanvas(canvas, image);
|
|
const data = canvas.getContext("2d")!.getImageData(0, 0, 64, 32).data;
|
|
const checkArea = (x0, y0, w, h) => {
|
|
for (let x = x0; x < x0 + w; x++) {
|
|
for (let y = y0; y < y0 + h; y++) {
|
|
expect(data[(y * 64 + x) * 4 + 3]).to.equal(0);
|
|
}
|
|
}
|
|
};
|
|
checkArea(40, 0, 8 * 2, 8); // top + bottom
|
|
checkArea(32, 8, 8 * 4, 8) // right + front + left + back
|
|
});
|
|
});
|