'''Provides tools for building models.'''
from logging import info
from os import system, walk, makedirs
-from os.path import exists, basename, dirname
+from os.path import exists, dirname
from multiprocessing import Pool
-from glob import glob
from hashlib import md5
-from shutil import copyfile, move, rmtree
-from ya2.build.mtprocesser import ProcesserMgr
+from shutil import copyfile, rmtree
from ya2.build.build import to_be_built
ones.'''
args = []
for root, _, fnames in walk(blend_path):
- for fname in [fname for fname in fnames if fname.endswith('.blend')]:
+ blends = [fname for fname in fnames if fname.endswith('.blend')]
+ for fname in blends:
if '/prototypes/' not in root:
args += [(root, fname)]
with Pool() as p:
p.starmap(self._export_blend, args)
# caching is broken now: it is based on the previous
# non-multiprocessing approach
- # i should evaluate if fix it or just change the blend_path for building
- # only specific models
+ # i should evaluate if fix it or just change the blend_path for
+ # building only specific models
cache, lines = [], []
if exists('hash_cache.txt'):
with open('hash_cache.txt') as fhash:
new_dir = root.replace('assets/models/blend/', pgltf)
rmtree(new_dir, ignore_errors=True)
makedirs(new_dir)
- #files_before = [basename(gname) for gname in glob('./*')]
+ # files_before = [basename(gname) for gname in glob('./*')]
cmd = 'blender %s --background --python ya2/build/blend2gltf.py '
cmd += '-- %s.gltf'
cmd = cmd % (_fname, new_dir + '/' + fname[:-6])
return False
system(cmd)
self._cache_files += [_fname, gltf_name]
- #files_after = [basename(gname) for gname in glob('./*')]
- #new_files = [nnm for nnm in files_after if nnm not in files_before]
- #new_dir = root.replace('assets/models/blend/', pgltf)
- #rmtree(new_dir, ignore_errors=True)
- #makedirs(new_dir)
- #for mname in new_files:
- # new_name = '%s/%s' % (new_dir, mname)
- # move(mname, new_name)
- # info('move %s %s' % (mname, new_name))
+ # files_after = [basename(gname) for gname in glob('./*')]
+ # new_files = [nnm for nnm in files_after if nnm not in files_before]
+ # new_dir = root.replace('assets/models/blend/', pgltf)
+ # rmtree(new_dir, ignore_errors=True)
+ # makedirs(new_dir)
+ # for mname in new_files:
+ # new_name = '%s/%s' % (new_dir, mname)
+ # move(mname, new_name)
+ # info('move %s %s' % (mname, new_name))
# # blender rewrites metal files: let's restore them
# metal_files = [fnm for fnm in glob(new_dir + '/*') if 'metal' in fnm]
# for metal_file in metal_files:
makedirs(dirname(tgt), exist_ok=True)
info('convert %s %s' % (dep, tgt))
system('convert %s %s' % (dep, tgt))
- rpl = lambda lin: lin.replace('.png', '.dds').replace('.jpg', '.dds').replace('/png', '/dds').replace('/jpg', '/dds')
+
+ def rpl(lin):
+ lin = lin.replace('.png', '.dds')
+ lin = lin.replace('.jpg', '.dds')
+ lin = lin.replace('/png', '/dds')
+ return lin.replace('/jpg', '/dds')
with open(gltf_name, 'w') as fgltf:
fgltf.write(''.join([rpl(line) for line in lines]))
makedirs(dirname(bam_name), exist_ok=True)