Show progress bar when unpacking files.

This commit is contained in:
2022-12-31 11:49:00 -05:00
parent 2e62063c14
commit 6bc7e3ecd8
2 changed files with 152 additions and 121 deletions
+149 -121
View File
@@ -13,6 +13,7 @@ import json
import os
import sys
import wave
from tqdm import tqdm
from arcane.ArcImage import *
from arcane.ArcMesh import *
@@ -29,6 +30,7 @@ from arcane.objects import ArcObj, ArcDoorObject, ArcStaticObject, ArcStructureO
from arcane.util import *
from arcane.zones import *
DUMP_DIRECTORY = 'ARCANE_DUMP'
WORKING_DIRECTORY = os.path.dirname(__file__)
TARGET_DIRECTORY = os.path.join(WORKING_DIRECTORY, DUMP_DIRECTORY)
@@ -148,21 +150,23 @@ def unpack_cobjects():
resources = load_cache_file('CObjects.cache')
for res_id, data in resources:
in_stream = ResStream(data)
magic = in_stream.read_dword()
obj_type = in_stream.read_dword()
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
in_stream = ResStream(data)
magic = in_stream.read_dword()
obj_type = in_stream.read_dword()
arc_in = COBJECTS_MAP[obj_type]()
filepath = os.path.join(
COBJECTS_DIRECTORY,
OBJECT_TYPE_TO_STRING[obj_type],
f'{res_id:d}.json'
)
arc_in.load_binary(in_stream)
parsed = arc_in.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
arc_in = COBJECTS_MAP[obj_type]()
filepath = os.path.join(
COBJECTS_DIRECTORY,
OBJECT_TYPE_TO_STRING[obj_type],
f'{res_id:d}.json'
)
arc_in.load_binary(in_stream)
parsed = arc_in.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_cobjects():
@@ -221,17 +225,19 @@ def unpack_czones():
resources = load_cache_file('CZone.cache')
for res_id, data in resources:
arc_zone = ArcZone()
in_stream = ResStream(data)
filepath = os.path.join(
CZONE_DIRECTORY,
f'{res_id:d}.json'
)
arc_zone.load_binary(in_stream)
parsed = arc_zone.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_zone = ArcZone()
in_stream = ResStream(data)
filepath = os.path.join(
CZONE_DIRECTORY,
f'{res_id:d}.json'
)
arc_zone.load_binary(in_stream)
parsed = arc_zone.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_czones():
@@ -278,19 +284,21 @@ def unpack_sound():
resources = load_cache_file('Sound.cache')
for res_id, data in resources:
arc_sound = ArcSound()
in_stream = ResStream(data)
filepath = os.path.join(
SOUND_DIRECTORY,
f'{res_id:d}.wav'
)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_sound = ArcSound()
in_stream = ResStream(data)
filepath = os.path.join(
SOUND_DIRECTORY,
f'{res_id:d}.wav'
)
arc_sound.load_binary(in_stream)
with open(filepath, 'wb') as fp:
wave_writer = wave.Wave_write(fp)
arc_sound.save_wav(wave_writer)
wave_writer.close()
arc_sound.load_binary(in_stream)
with open(filepath, 'wb') as fp:
wave_writer = wave.Wave_write(fp)
arc_sound.save_wav(wave_writer)
wave_writer.close()
pBar.update(1)
def pack_sound():
@@ -344,17 +352,22 @@ def test_sound():
def unpack_texture():
init_texture()
print('Decompressing Texture Cache...')
resources = load_cache_file('Textures.cache')
for res_id, data in resources:
filepath = os.path.join(
TEXTURE_DIRECTORY,
f'{res_id:d}.tga'
)
arc_texture = ArcTexture()
in_stream = ResStream(data)
arc_texture.load_binary(in_stream)
arc_texture.save_img(filepath)
print('Writing images')
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
filepath = os.path.join(
TEXTURE_DIRECTORY,
f'{res_id:d}.tga'
)
arc_texture = ArcTexture()
in_stream = ResStream(data)
arc_texture.load_binary(in_stream)
arc_texture.save_img(filepath)
pBar.update(1)
def pack_texture():
@@ -408,16 +421,19 @@ def unpack_terrain():
init_terrain()
resources = load_cache_file('TerrainAlpha.cache')
for res_id, data in resources:
filepath = os.path.join(
TERRAIN_DIRECTORY,
f'{res_id:d}.tga'
)
arc_terrain = ArcTerrain()
in_stream = ResStream(data)
arc_terrain.load_binary(in_stream)
arc_terrain.save_img(filepath)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
filepath = os.path.join(
TERRAIN_DIRECTORY,
f'{res_id:d}.tga'
)
arc_terrain = ArcTerrain()
in_stream = ResStream(data)
arc_terrain.load_binary(in_stream)
arc_terrain.save_img(filepath)
pBar.update(1)
def pack_terrain():
@@ -474,17 +490,19 @@ def unpack_mesh():
resources = load_cache_file('Mesh.cache')
for res_id, data in resources:
arc_mesh = ArcMesh()
in_stream = ResStream(data)
filepath = os.path.join(
MESH_DIRECTORY,
f'{res_id:d}.json'
)
arc_mesh.load_binary(in_stream)
parsed = arc_mesh.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_mesh = ArcMesh()
in_stream = ResStream(data)
filepath = os.path.join(
MESH_DIRECTORY,
f'{res_id:d}.json'
)
arc_mesh.load_binary(in_stream)
parsed = arc_mesh.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_mesh():
@@ -531,17 +549,19 @@ def unpack_visual():
resources = load_cache_file('Visual.cache')
for res_id, data in resources:
arc_visual = ArcVisual()
in_stream = ResStream(data)
filepath = os.path.join(
VISUAL_DIRECTORY,
f'{res_id:d}.json'
)
arc_visual.load_binary(in_stream)
parsed = arc_visual.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_visual = ArcVisual()
in_stream = ResStream(data)
filepath = os.path.join(
VISUAL_DIRECTORY,
f'{res_id:d}.json'
)
arc_visual.load_binary(in_stream)
parsed = arc_visual.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_visual():
@@ -588,17 +608,19 @@ def unpack_motion():
resources = load_cache_file('Motion.cache')
for res_id, data in resources:
arc_motion = ArcMotion()
in_stream = ResStream(data)
filepath = os.path.join(
MOTION_DIRECTORY,
f'{res_id:d}.json'
)
arc_motion.load_binary(in_stream)
parsed = arc_motion.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_motion = ArcMotion()
in_stream = ResStream(data)
filepath = os.path.join(
MOTION_DIRECTORY,
f'{res_id:d}.json'
)
arc_motion.load_binary(in_stream)
parsed = arc_motion.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_motion():
@@ -645,17 +667,19 @@ def unpack_tile():
resources = load_cache_file('Tile.cache')
for res_id, data in resources:
arc_tile = ArcTileManager()
in_stream = ResStream(data)
filepath = os.path.join(
TILE_DIRECTORY,
f'{res_id:d}.json'
)
arc_tile.load_binary(in_stream)
parsed = arc_tile.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_tile = ArcTileManager()
in_stream = ResStream(data)
filepath = os.path.join(
TILE_DIRECTORY,
f'{res_id:d}.json'
)
arc_tile.load_binary(in_stream)
parsed = arc_tile.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_tile():
@@ -702,18 +726,20 @@ def unpack_skeleton():
resources = load_cache_file('Skeleton.cache')
for res_id, data in resources:
arc_skeleton = ArcSkeleton()
in_stream = ResStream(data)
filepath = os.path.join(
SKELETON_DIRECTORY,
f'{res_id:d}.json'
)
arc_skeleton.load_binary(in_stream)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_skeleton = ArcSkeleton()
in_stream = ResStream(data)
filepath = os.path.join(
SKELETON_DIRECTORY,
f'{res_id:d}.json'
)
arc_skeleton.load_binary(in_stream)
parsed = arc_skeleton.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
parsed = arc_skeleton.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_skeleton():
@@ -760,18 +786,20 @@ def unpack_render():
resources = load_cache_file('render.cache')
for res_id, data in resources:
arc_render = ArcRender()
in_stream = ResStream(data)
filepath = os.path.join(
RENDER_DIRECTORY,
f'{res_id:d}.json'
)
arc_render.load_binary(in_stream)
with tqdm(total=len(resources)) as pBar:
for res_id, data in resources:
arc_render = ArcRender()
in_stream = ResStream(data)
filepath = os.path.join(
RENDER_DIRECTORY,
f'{res_id:d}.json'
)
arc_render.load_binary(in_stream)
parsed = arc_render.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
parsed = arc_render.save_json()
with open(filepath, 'w') as fp:
json.dump(parsed, fp, indent=2)
pBar.update(1)
def pack_render():
+3
View File
@@ -1 +1,4 @@
pillow==9.3.0
tqdm~=4.64.1