dolphin-selerificator/index.js

35 lines
1.5 KiB
JavaScript
Raw Normal View History

2026-01-21 21:51:26 +01:00
const fs = require('node:fs')
const sharp = require('sharp')
const imageDimensions = require('image-dimensions')
const config = require('./config.json')
console.log(`selerifying game ${config.session.game}`)
if (fs.existsSync(`${config.general.dolphinFolder}Dump/Textures/${config.session.game}`)) {
if (!fs.existsSync(`${config.general.dolphinFolder}Load/Textures/${config.session.game}`)) {
console.log('creating Load folder')
fs.mkdirSync(`${config.general.dolphinFolder}Load/Textures/${config.session.game}`)
}
let dumpDir = fs.readdirSync(`${config.general.dolphinFolder}Dump/Textures/${config.session.game}`)
dumpDir.forEach(async element => {
console.log(`selerifying texture: ${element}`)
let stream = await ReadableStream.from(fs.createReadStream(`${config.general.dolphinFolder}Dump/Textures/${config.session.game}/${element}`))
let dims = await imageDimensions.imageDimensionsFromStream(stream)
let img = sharp('./seler.png')
if (config.session.rotateUpsideDown) {
img = await img.rotate(180)
}
if (config.session.flipHorizontal) {
img = await img.flop()
}
img = await img.resize({
width: dims.width,
height: dims.height,
fit: "fill"
})
await img.toFile(`${config.general.dolphinFolder}Load/Textures/${config.session.game}/${element}`)
})
} else {
console.log("you don't have a texture dump for this game you fucking idiot")
}