The complete migration from `minecraft-assets` to [`mc-assets`](https://npmjs.com/mc-assets). Now all block states & block models are processed dynamically! So it is now easily possible to implement custom models - no post-install work anymore: the building is now 3x faster and 4x faster in docker - drop 10x total deploy size - display world ~1.5x faster - fix snow & repeater state parser (they didn't render correctly) rsbuild pipeline! - the initial app load is faster ~1.2 - much fewer requests are made & cached - dev reloads are fast now Resource pack changes: - now textures are reloaded much more quickly on the fly - add hotkey to quickly reload textures (for debugging) assigned to F3+T (open dev widget is now assigned to F3+Y) - add a way to disable resource pack instead of uninstalling it - items render from resource pack are now support - resource pack widgets & icons are now supported
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import fs from 'fs'
|
|
import MinecraftData from 'minecraft-data'
|
|
import MCProtocol from 'minecraft-protocol'
|
|
import { appReplacableResources } from '../src/resourcesSource'
|
|
|
|
const { supportedVersions, defaultVersion } = MCProtocol
|
|
|
|
// gen generated/minecraft-data-data.js
|
|
|
|
const data = MinecraftData(defaultVersion)
|
|
const defaultVersionObj = {
|
|
[defaultVersion]: {
|
|
version: data.version,
|
|
protocol: data.protocol,
|
|
}
|
|
}
|
|
|
|
const mcDataContents = `window.mcData ??= ${JSON.stringify(defaultVersionObj)};module.exports = { pc: window.mcData }`
|
|
|
|
fs.writeFileSync('./generated/minecraft-data-data.js', mcDataContents, 'utf8')
|
|
|
|
// app resources
|
|
|
|
let headerImports = ''
|
|
let resourcesContent = 'export const appReplacableResources: { [key: string]: { content: any, resourcePackPath: string, cssVar?: string, cssVarRepeat?: number } } = {\n'
|
|
|
|
for (const resource of appReplacableResources) {
|
|
const { path, ...rest } = resource
|
|
const name = path.split('/').slice(-4).join('_').replace('.png', '').replaceAll('-', '_').replaceAll('.', '_')
|
|
headerImports += `import ${name} from '${path.replace('../node_modules/', '')}'\n`
|
|
resourcesContent += `
|
|
'${name}': {
|
|
content: ${name},
|
|
resourcePackPath: 'minecraft/textures/${path.slice(path.indexOf('other-textures/') + 'other-textures/'.length).split('/').slice(1).join('/')}',
|
|
...${JSON.stringify(rest)}
|
|
},
|
|
`
|
|
}
|
|
|
|
resourcesContent += '}'
|
|
|
|
fs.mkdirSync('./src/generated', { recursive: true })
|
|
fs.writeFileSync('./src/generated/resources.ts', headerImports + '\n' + resourcesContent, 'utf8')
|