From 3e20d6edf8b15c64e70c78cafd0e403fb18a53ab Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Thu, 15 May 2025 00:29:43 +0200 Subject: [PATCH] feat(apps/extractor): add extractor for non windows (#22123) --- apps/extractor/extractor.sh | 85 ++++++++++++++++++++++++++++++++++ apps/extractor/extractor_es.sh | 85 ++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100755 apps/extractor/extractor.sh create mode 100755 apps/extractor/extractor_es.sh diff --git a/apps/extractor/extractor.sh b/apps/extractor/extractor.sh new file mode 100755 index 000000000..553a3d5d1 --- /dev/null +++ b/apps/extractor/extractor.sh @@ -0,0 +1,85 @@ +#!/bin/bash +function Base { + echo "Extract Base" + rm -rf dbc maps Cameras + ./map_extractor + Menu +} + +function VMaps { + echo "Extract VMaps" + mkdir -p Buildings vmaps + rm -rf Buildings/* vmaps/* + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + Menu +} + +function MMaps { + echo "This may take a few hours to complete. Please be patient." + mkdir -p mmaps + rm -rf mmaps/* + ./mmaps_generator + Menu +} + +function All { + echo "This may take a few hours to complete. Please be patient." + rm -rf dbc maps Cameras + mkdir -p Buildings vmaps mmaps + rm -rf Buildings/* vmaps/* mmaps/* + ./map_extractor + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + ./mmaps_generator + Menu +} + +function Menu { +echo "" +echo "..............................................." +echo "AzerothCore dbc, maps, vmaps, mmaps extractor" +echo "..............................................." +echo "PRESS 1, 2, 3 OR 4 to select your task, or 5 to EXIT." +echo "..............................................." +echo "" +echo "WARNING! when extracting the vmaps extractor will" +echo "output the text below, it's intended and not an error:" +echo ".........................................." +echo "Extracting World\Wmo\Band\Final_Stage.wmo" +echo "No such file." +echo "Couldn't open RootWmo!!!" +echo "Done!" +echo " .........................................." +echo "" +echo "Press 1, 2, 3 or 4 to start extracting or 5 to exit." +echo "1 - Extract base files (NEEDED) and cameras." +echo "2 - Extract vmaps (needs maps to be extracted before you run this) (OPTIONAL, highly recommended)" +echo "3 - Extract mmaps (needs vmaps to be extracted before you run this, may take hours) (OPTIONAL, highly recommended)" +echo "4 - Extract all (may take hours)" +echo "5 - EXIT" +echo "" + +read -rp "Type 1, 2, 3, 4 or 5 then press ENTER: " choice + +case $choice in + 1) Base ;; + 2) VMaps ;; + 3) MMaps ;; + 4) All ;; + 5) exit 0;; + *) echo "Invalid choice."; read -rp "Type 1, 2, 3, 4 or 5 then press ENTER: " choice ;; +esac +} + +if [ -d "./Data" ] && [ -f "map_extractor" ] && [ -f "vmap4_extractor" ] && [ -f "vmap4_assembler" ] && [ -f "mmaps_generator" ]; then + echo "The required files and folder exist in the current directory." + chmod +x map_extractor vmap4_extractor vmap4_assembler mmaps_generator + Menu +else + echo "One or more of the required files or folder is missing from the current directory." + echo "Place map_extractor vmap4_extractor vmap4_assembler mmaps_generator" + echo "In your WoW folder with WoW.exe" +fi diff --git a/apps/extractor/extractor_es.sh b/apps/extractor/extractor_es.sh new file mode 100755 index 000000000..c352cd2e5 --- /dev/null +++ b/apps/extractor/extractor_es.sh @@ -0,0 +1,85 @@ +#!/bin/bash +function Base { + echo "Extrayendo archivos base" + rm -rf dbc maps Cameras + ./map_extractor + Menu +} + +function VMaps { + echo "Extrayendo VMaps" + mkdir -p Buildings vmaps + rm -rf Buildings/* vmaps/* + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + Menu +} + +function MMaps { + echo "Esto puede tardar unas horas en completarse. Por favor, tenga paciencia." + mkdir -p mmaps + rm -rf mmaps/* + ./mmaps_generator + Menu +} + +function All { + echo "Esto puede tardar varias horas en completarse. Por favor, tenga paciencia." + rm -rf dbc maps Cameras + mkdir -p Buildings vmaps mmaps + rm -rf Buildings/* vmaps/* mmaps/* + ./map_extractor + ./vmap4_extractor + ./vmap4_assembler Buildings vmaps + rmdir -rf Buildings + ./mmaps_generator + Menu +} + +function Menu { +echo "" +echo "..............................................." +echo "Extractor de dbc, maps, vmaps, mmaps de AzerothCore" +echo "..............................................." +echo "PRESIONE 1, 2, 3 O 4 para seleccionar su tarea, o 5 para SALIR." +echo "..............................................." +echo "" +echo "ADVERTENCIA: al extraer los vmaps del extractor" +echo "la salida del texto de abajo, es intencional y no un error:" +echo ".........................................." +echo "Extracting World\Wmo\Band\Final_Stage.wmo" +echo "No such file." +echo "Couldn't open RootWmo!!!" +echo "Done!" +echo ".........................................." +echo "" +echo "Presione 1, 2, 3 o 4 para iniciar la extracción o 5 para salir." +echo "1 - Extraer los archivos base (NECESARIOS) y las cámaras." +echo "2 - Extraer vmaps (necesita que los mapas se extraigan antes de ejecutar esto) (OPCIONAL, muy recomendable)" +echo "3 - Extraer mmaps (necesita que los vmaps se extraigan antes de ejecutar esto, puede llevar horas) (OPCIONAL, muy recomendable)" +echo "4 - Extraer todo (puede llevar varias horas)" +echo "5 - SALIR" +echo "" + +read -rp "Escriba 1, 2, 3, 4 o 5 y pulse ENTER: " choice + +case $choice in + 1) Base ;; + 2) VMaps ;; + 3) MMaps ;; + 4) All ;; + 5) exit 0;; + *) echo "Opción inválida."; read -rp "Escriba 1, 2, 3, 4 o 5 y presione ENTER: " choice ;; +esac +} + +if [ -d "./Data" ] && [ -f "map_extractor" ] && [ -f "vmap4_extractor" ] && [ -f "vmap4_assembler" ] && [ -f "mmaps_generator" ]; then + echo "Los archivos y carpetas requeridos existen en el directorio actual." + chmod +x map_extractor vmap4_extractor vmap4_assembler mmaps_generator + Menu +else + echo "Uno o más archivos o carpetas requeridos no se encuentran en el directorio actual." + echo "Coloque map_extractor vmap4_extractor vmap4_assembler mmaps_generator" + echo "en su directorio de WoW junto con WoW.exe" +fi