forked from Simnation/Main
45 lines
No EOL
1.2 KiB
JavaScript
45 lines
No EOL
1.2 KiB
JavaScript
const path = GetResourcePath(GetCurrentResourceName());
|
|
const Jimp = require('jimp');
|
|
|
|
let originalTexture = null;
|
|
|
|
async function beginSpritesReplacement() {
|
|
try {
|
|
originalTexture = await Jimp.read(`${path}/utils/miscellaneous/imgs/blips_texturesheet_ng.png`);
|
|
return true;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
exports('beginSpritesReplacement', beginSpritesReplacement);
|
|
|
|
async function replaceSprite(imageName, x, y) {
|
|
try {
|
|
let newSprite = await Jimp.read(`${path}/_sprites/REPLACEABLE/${imageName}`);
|
|
newSprite = newSprite.resize(64, 64, Jimp.RESIZE_NEAREST_NEIGHBOR);
|
|
|
|
const spriteWidth = newSprite.getWidth();
|
|
const spriteHeight = newSprite.getHeight();
|
|
|
|
const mask = new Jimp(spriteWidth, spriteHeight, 0x00000000);
|
|
|
|
originalTexture.mask(mask, x, y);
|
|
|
|
originalTexture.blit(newSprite, x, y, 0, 0, spriteWidth, spriteHeight);
|
|
|
|
return true;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
exports('replaceSprite', replaceSprite);
|
|
|
|
async function endSpritesReplacement() {
|
|
try {
|
|
await originalTexture.writeAsync(`${path}/utils/miscellaneous/imgs/blips_texturesheet_ng_custom.png`);
|
|
return true;
|
|
} catch (error) {
|
|
return false;
|
|
}
|
|
}
|
|
exports('endSpritesReplacement', endSpritesReplacement); |