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); |