ported update_se

This commit is contained in:
argoneus 2020-03-07 05:15:21 +01:00
parent 9bede047a5
commit 404de87624
3 changed files with 203 additions and 89 deletions

View file

@ -3,85 +3,69 @@ from contextlib import suppress
import diva
import shutil
import os
import subprocess
import tempfile
import utage
from distutils.dir_util import copy_tree, remove_tree
from glob import glob
from xdudata.asset_extract import process_se, process_bgm, process_voice, process_movie
def update_all(
cache_dir, update_dir, translation_dir, extract_dir, script_dir, languages,
cache_dir, update_dir, translation_dir, extract_dir, languages,
):
print("Cleaning cache")
cleanup_cache(cache_dir)
print("Copying images")
copy_images(cache_dir, update_dir)
print("Processing TSV files")
update_tsv(cache_dir, update_dir, extract_dir, translation_dir, languages)
print("Processing Quest Json files")
diva.quest.update_missions(extract_dir, translation_dir, languages)
# this code isn't going to run on windows (it is in WSL though) because i need to rewrite it
# it just calls my zsh tools and generates it that way, need to replace them
# with real python or something
# first copy over the necessary avtools to the extract dir
# TODO make it so that you don't need to copy them over (for example call them with python)
print("Copying necessary tools into extracting directory")
shutil.copy2(os.path.join(script_dir, "acb_extract.exe"), extract_dir)
shutil.copy2(os.path.join(script_dir, "usm_extract.exe"), extract_dir)
shutil.copy2(os.path.join(script_dir, "clHCA"), extract_dir)
# TODO uncomment
# print("Checking tool availability")
# validate_tools()
#
# print("Cleaning cache")
# cleanup_cache(cache_dir)
#
# print("Copying images")
# copy_images(cache_dir, update_dir)
#
# print("Processing TSV files")
# update_tsv(cache_dir, update_dir, extract_dir, translation_dir, languages)
#
# print("Processing Quest Json files")
# diva.quest.update_missions(extract_dir, translation_dir, languages)
print("Processing Sound Effects")
copy_tree(
os.path.join(cache_dir, "Android/Asset/Sound/Se"),
os.path.join(extract_dir, "Se"),
)
subprocess.run(
os.path.join(script_dir, "update_se.zsh"), shell=True, cwd=extract_dir
)
copy_tree(os.path.join(extract_dir, "se_extracted"), os.path.join(update_dir, "Se"))
process_se(cache_dir, extract_dir, update_dir)
print("Processing BGM - don't forget to copy that loop file")
copy_tree(
os.path.join(cache_dir, "Android/Asset/Sound/Bgm"),
os.path.join(extract_dir, "Bgm"),
)
subprocess.run(
os.path.join(script_dir, "update_bgm.zsh"), shell=True, cwd=extract_dir
)
copy_tree(
os.path.join(extract_dir, "bgm_extracted"), os.path.join(update_dir, "Bgm")
)
# print("Processing BGM")
# process_bgm(cache_dir, extract_dir, update_dir)
#
# print("Processing voices")
# process_voice(cache_dir, extract_dir, update_dir)
#
# print("Processing movies - this might take forever")
# process_movie(cache_dir, extract_dir, update_dir)
print("Processing voices")
copy_tree(
os.path.join(cache_dir, "Android/Asset/Sound/Voice"),
os.path.join(extract_dir, "Voice"),
)
subprocess.run(
os.path.join(script_dir, "update_voice.zsh"), shell=True, cwd=extract_dir
)
copy_tree(
os.path.join(extract_dir, "voice_extracted"), os.path.join(update_dir, "Voice")
)
print("Processing movies - this might take forever")
def validate_tools():
# TODO validate all the tools are in PATH
...
def cleanup_cache(cache_dir):
with suppress(FileNotFoundError):
shutil.rmtree(os.path.join(cache_dir, "Common/Asset/Utage/event32"))
os.remove(
os.path.join(
cache_dir, "Common/Asset/Utage/side01/Scenario/Sheet2.tsv.utage"
)
)
def copy_images(cache_dir, update_dir):
copy_tree(
os.path.join(cache_dir, "Common/Asset/Movie"),
os.path.join(extract_dir, "Movie"),
)
subprocess.run(
os.path.join(script_dir, "update_movie.zsh"), shell=True, cwd=extract_dir
os.path.join(cache_dir, "Common/Asset/Image"),
os.path.join(update_dir, "Asset/Image"),
)
copy_tree(
os.path.join(extract_dir, "movie_extracted"),
os.path.join(update_dir, "Asset/Movie"),
os.path.join(cache_dir, "Common/Sample"), os.path.join(update_dir, "Sample"),
)
@ -113,23 +97,3 @@ def update_tsv(cache_dir, update_dir, extract_dir, translation_dir, languages):
utage.names.update_names(utage_tmp, translation_dir, languages, False)
copy_tree(os.path.join(utage_tmp, "Diva"), os.path.join(update_dir, "Utage/Diva"))
remove_tree(utage_tmp)
def copy_images(cache_dir, update_dir):
copy_tree(
os.path.join(cache_dir, "Common/Asset/Image"),
os.path.join(update_dir, "Asset/Image"),
)
copy_tree(
os.path.join(cache_dir, "Common/Sample"), os.path.join(update_dir, "Sample"),
)
def cleanup_cache(cache_dir):
with suppress(FileNotFoundError):
shutil.rmtree(os.path.join(cache_dir, "Common/Asset/Utage/event32"))
os.remove(
os.path.join(
cache_dir, "Common/Asset/Utage/side01/Scenario/Sheet2.tsv.utage"
)
)