From 4e37a5dcfca4ce99a19e2ebbb0021c8a13d4e3a7 Mon Sep 17 00:00:00 2001 From: TheAfroOfDoom Date: Fri, 18 Oct 2024 15:42:26 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20prune=20unused=20AJ=20datapack?= =?UTF-8?q?=20exports=20from=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-scripts/build.js | 64 +++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/package-scripts/build.js b/package-scripts/build.js index 9e96e23ad..830c2695a 100644 --- a/package-scripts/build.js +++ b/package-scripts/build.js @@ -6,6 +6,18 @@ const { rimraf } = require('rimraf'); const buildDir = './build'; +const prefixPaths = (prefix, paths) => paths.map((path) => `${prefix}${path}`); +const suffixPaths = (paths, suffix) => paths.map((path) => `${path}${suffix}`); + +const animatedJavaExportsToPrune = prefixPaths('omegaflowey_', [ + 'housefly', + 'petal_pipe_circle', + 'petal_pipe_middle', + 'soul_0_bandaid', + 'soul_0_sword', + 'venus_fly_trap', +]); + const getSummitDatapackPaths = () => { const postProcessors = []; @@ -130,6 +142,47 @@ const getSummitDatapackPaths = () => { ...primaryDatapackPaths, ]); + const pruneAnimatedJavaDatapackExports = async ({ compiledPath }) => { + const prunePromises = []; + for (const dir of animatedJavaExportsToPrune) { + const pruneFunctionDir = `${compiledPath}/datapacks/animated_java/data/animated_java/function/${dir}`; + prunePromises.push(rimraf(pruneFunctionDir)); + prunePromises.push( + rimraf( + `${compiledPath}/datapacks/animated_java/data/animated_java/tags/function/${dir}`, + ), + ); + } + await Promise.all(prunePromises); + }; + postProcessors.push(pruneAnimatedJavaDatapackExports); + + const pruneAnimatedJavaDatapackTags = async ({ compiledPath }) => { + for (const [tagPath, suffix] of [ + [ + `${compiledPath}/datapacks/animated_java/data/animated_java/tags/function/global/on_load.json`, + '/on_load', + ], + [ + `${compiledPath}/datapacks/animated_java/data/animated_java/tags/function/global/root/on_load.json`, + '/root/on_load', + ], + [ + `${compiledPath}/datapacks/animated_java/data/animated_java/tags/function/global/root/on_tick.json`, + '/root/on_tick', + ], + ]) { + const loadTagJson = await readJson(tagPath); + loadTagJson.values = loadTagJson.values.filter((modelTag) => { + const namespace = modelTag + .replace('animated_java:', '') + .replace(suffix, ''); + return !animatedJavaExportsToPrune.includes(namespace); + }); + await writeJson(tagPath, loadTagJson); + } + }; + postProcessors.push(pruneAnimatedJavaDatapackTags); return { paths: datapackPaths, postProcessors }; }; @@ -140,14 +193,6 @@ const getSummitResourcepackPaths = () => { // Not `minecraft/sounds.json` since we just use that to disable ambient sounds const minecraftPaths = prefixPaths('minecraft/', ['atlases', 'models']); - const animatedJavaExportsToPrune = prefixPaths('omegaflowey_', [ - 'housefly', - 'petal_pipe_circle', - 'petal_pipe_middle', - 'soul_0_bandaid', - 'soul_0_sword', - 'venus_fly_trap', - ]); const pruneAnimatedJavaDisplayItem = async ({ compiledPath }) => { const displayItemPath = `${compiledPath}/assets/minecraft/models/item/pink_dye.json`; const displayItemJson = await readJson(displayItemPath); @@ -392,9 +437,6 @@ const logLevel = (level, ...data) => { } }; -const prefixPaths = (prefix, paths) => paths.map((path) => `${prefix}${path}`); -const suffixPaths = (paths, suffix) => paths.map((path) => `${path}${suffix}`); - const getCompilePaths = ({ getSummitPaths }) => { const { variant } = args; switch (variant) {