diff --git a/bin/ensure_minecraft_assets.js b/bin/ensure_minecraft_assets.js new file mode 100644 index 0000000..7cd6482 --- /dev/null +++ b/bin/ensure_minecraft_assets.js @@ -0,0 +1,28 @@ +#!/usr/bin/env node + +const fs = require('fs') +const { spawnSync } = require('child_process') + +const assetsCheck = 'minecraft-assets/data/26.1.2/blocks_textures.json' +const assetsRepo = 'https://github.com/mneuhaus/minecraft-assets.git' +const assetsBranch = 'add-26.1.2-assets' + +if (fs.existsSync(assetsCheck)) process.exit(0) + +if (fs.existsSync('.git')) { + const result = spawnSync('git', ['submodule', 'update', '--init', '--recursive'], { stdio: 'inherit' }) + if (result.status === 0 && fs.existsSync(assetsCheck)) process.exit(0) +} + +fs.rmSync('minecraft-assets', { recursive: true, force: true }) + +const clone = spawnSync('git', ['clone', '--depth', '1', '--filter=blob:none', '--sparse', '--branch', assetsBranch, assetsRepo, 'minecraft-assets'], { stdio: 'inherit' }) +if (clone.status !== 0) process.exit(clone.status || 1) + +const sparse = spawnSync('git', ['-C', 'minecraft-assets', 'sparse-checkout', 'set', 'data'], { stdio: 'inherit' }) +if (sparse.status !== 0) process.exit(sparse.status || 1) + +if (!fs.existsSync(assetsCheck)) { + console.error(`Could not load ${assetsCheck}`) + process.exit(1) +} diff --git a/index.js b/index.js index 0e4dd7f..f0d8153 100644 --- a/index.js +++ b/index.js @@ -176,6 +176,34 @@ const data = { textureContent: require('./minecraft-assets/data/1.21.8/texture_content'), blocksStates: require('./minecraft-assets/data/1.21.8/blocks_states'), blocksModels: require('./minecraft-assets/data/1.21.8/blocks_models') + }, + '1.21.9': { + blocksTextures: require('./minecraft-assets/data/1.21.9/blocks_textures'), + itemsTextures: require('./minecraft-assets/data/1.21.9/items_textures'), + textureContent: require('./minecraft-assets/data/1.21.9/texture_content'), + blocksStates: require('./minecraft-assets/data/1.21.9/blocks_states'), + blocksModels: require('./minecraft-assets/data/1.21.9/blocks_models') + }, + '1.21.10': { + blocksTextures: require('./minecraft-assets/data/1.21.10/blocks_textures'), + itemsTextures: require('./minecraft-assets/data/1.21.10/items_textures'), + textureContent: require('./minecraft-assets/data/1.21.10/texture_content'), + blocksStates: require('./minecraft-assets/data/1.21.10/blocks_states'), + blocksModels: require('./minecraft-assets/data/1.21.10/blocks_models') + }, + '1.21.11': { + blocksTextures: require('./minecraft-assets/data/1.21.11/blocks_textures'), + itemsTextures: require('./minecraft-assets/data/1.21.11/items_textures'), + textureContent: require('./minecraft-assets/data/1.21.11/texture_content'), + blocksStates: require('./minecraft-assets/data/1.21.11/blocks_states'), + blocksModels: require('./minecraft-assets/data/1.21.11/blocks_models') + }, + '26.1.2': { + blocksTextures: require('./minecraft-assets/data/26.1.2/blocks_textures'), + itemsTextures: require('./minecraft-assets/data/26.1.2/items_textures'), + textureContent: require('./minecraft-assets/data/26.1.2/texture_content'), + blocksStates: require('./minecraft-assets/data/26.1.2/blocks_states'), + blocksModels: require('./minecraft-assets/data/26.1.2/blocks_models') } } diff --git a/minecraft-assets b/minecraft-assets index adb82d5..ddfa868 160000 --- a/minecraft-assets +++ b/minecraft-assets @@ -1 +1 @@ -Subproject commit adb82d5d764511b0509a63827229656093bb1509 +Subproject commit ddfa868c0708aecf9a3b2268fc43ebba7bf4492c diff --git a/package.json b/package.json index 0137ff8..685343e 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "test": "npm run lint", "lint": "standard", "fix": "standard --fix", - "prepare": "npm install require-self && require-self" + "prepare": "node bin/ensure_minecraft_assets.js && npm install require-self && require-self" }, "repository": { "type": "git",