Created
November 7, 2022 01:44
-
-
Save magneticflux-/91a9f6183c8ac69560f49c7acaf1eef7 to your computer and use it in GitHub Desktop.
A small utility script to generate LambdaBetterGrass data in bulk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
modid='terrestria' | |
input_base='client/src/main/resources/' | |
output_base='run/resourcepacks/bettergrass/' | |
input_resources="$input_base/assets/$modid/" | |
output_resources="$output_base/assets/$modid/" | |
# params: search text, (optional) data override, (optional) variant | |
# If `-d` not passed, an empty data file is generated | |
# If `-v` not passed, no variants are listed | |
gen_files() { | |
local OPTIND arg search data variant | |
while getopts 's:d:v:' arg; do | |
case ${arg} in | |
s) search=${OPTARG} ;; | |
d) data=${OPTARG} ;; | |
v) variant=${OPTARG} ;; | |
*) return 1 ;; | |
esac | |
done | |
readarray -t BLOCK_NAMES < <(find "$input_resources/blockstates/" -type f -printf "%f\n" | grep -E "(^|_)$search(_|.json$)" | perl -ne "print if s/^(.*)\.json$/\1/") | |
for block in "${BLOCK_NAMES[@]}"; do | |
echo "$search $data $variant $block" | |
if [ -z "$data" ]; then # data missing | |
if [ -z "$variant" ]; then # variant missing | |
echo "\ | |
{ | |
\"type\": \"layer\", | |
\"data\": \"$modid:bettergrass/data/$block\" | |
}" >"$output_resources/bettergrass/states/$block.json" | |
else # variant present | |
echo "\ | |
{ | |
\"type\": \"layer\", | |
\"variants\":{ | |
\"$variant\": { | |
\"data\": \"$modid:bettergrass/data/$block\" | |
} | |
} | |
}" >"$output_resources/bettergrass/states/$block.json" | |
fi | |
# data missing, make empty data file | |
echo "\ | |
{}" >"$output_resources/bettergrass/data/$block.json" | |
else # data present | |
if [ -z "$variant" ]; then # variant missing | |
echo "\ | |
{ | |
\"type\": \"layer\", | |
\"data\": \"$data\" | |
}" >"$output_resources/bettergrass/states/$block.json" | |
else # variant present | |
echo "\ | |
{ | |
\"type\": \"layer\", | |
\"variants\":{ | |
\"$variant\": { | |
\"data\": \"$data\" | |
} | |
} | |
}" >"$output_resources/bettergrass/states/$block.json" | |
fi | |
fi | |
done | |
} | |
gen_files -s 'fence' -v 'waterlogged=false' | |
gen_files -s 'trapdoor' -v 'waterlogged=false' | |
gen_files -s 'door' | |
gen_files -s 'fence_gate' | |
gen_files -s 'sapling' | |
gen_files -s 'potted' | |
gen_files -s 'button' -d 'minecraft:bettergrass/data/button' | |
gen_files -s 'aloe' | |
gen_files -s 'agave' | |
gen_files -s 'dead_grass' | |
gen_files -s 'tiny_cactus' | |
gen_files -s 'monsteras' | |
gen_files -s 'indian_paintbrush' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment