This repository has been archived on 2024-06-11. You can view files and clone it, but cannot push or open issues or pull requests.
PackConverterJS/index.js
2023-11-15 12:01:00 -08:00

68 lines
2.5 KiB
JavaScript

const decompress = require('decompress');
const fs = require('fs');
const jsonfile = require('jsonfile')
const file = 'blocks.json'
let blocks;
jsonfile.readFile(file, function (err, obj) {
if (err) console.error(err)
// console.dir(obj)
blocks = obj;
})
extract("1.8")
// extract("1.20.1")
function extract(string) {
const extractedPath = `out/assets/minecraft/textures/`
decompress(`test/${string}.zip`, `out/`).then(files => {
try {
// fs.renameSync(`out/${string}/assets/minecraft/textures/blocks`, `out/${string}/assets/minecraft/textures/block`)
// fs.renameSync(`out/${string}/assets/minecraft/textures/items`, `out/${string}/assets/minecraft/textures/item`)
// fs.renameSync(`out/assets/minecraft/textures/blocks`, `out/assets/minecraft/textures/block`)
// fs.renameSync(`out/assets/minecraft/textures/items`, `out/assets/minecraft/textures/item`)
} catch (error) {
console.log(error);
}
files.forEach(element => {
if (!element.path.includes("assets/minecraft/textures/")) {
return;
}
let texture = element.path.match(/(?:[A-Za-z]*\/)*([A-za-z]*)\/([A-Za-z_]*).png/);
// console.log(files)
// console.log(texture)
/*
[
'assets/minecraft/textures/particle/particles.png', [0] (path)
'particle', [1] (group)
'particles', [2] (name)
index: 0, [3]
input: 'assets/minecraft/textures/particle/particles.png', [4]
groups: undefined [5]
]
*/
if (texture) {
let path = texture[0]
let group = texture[1]
let name = texture[2]
let rename = blocks[name]
const poggers = `${extractedPath}${group}/`
// console.log(texture)
// console.log(type)
if (group == "blocks" && rename) {
// console.log(rename)
try {
// TODO: fix trying to rename file twice because of png.mcmeta
fs.renameSync(`${poggers}${name}.png`, `${poggers}${rename}.png`)
console.log(`renamed ${poggers}${rename}`)
// fs.existsSync(poggers)
// console.log(poggers)
} catch (error) {
console.log(error)
}
}
}
})
})
}