from os import system
+from glob import glob
+from importlib import import_module
+from inspect import isclass
+from multiprocessing import Pool
+from pmachines.scene import Scene
+
+
+def do_screenshot(cls):
+ system('python main.py --screenshot ' + cls.__name__)
def bld_screenshots():
- system('python main.py --screenshots')
+ scene_classes = []
+ for _file in glob('pmachines/scenes/*.py'):
+ _fn = _file.replace('.py', '').replace('/', '.')
+ for member in import_module(_fn).__dict__.values():
+ if isclass(member) and issubclass(member, Scene) and \
+ member != Scene:
+ scene_classes += [member]
+ with Pool() as p:
+ p.map(do_screenshot, scene_classes)
'pmachines',
'assets/locale/')
self._fsm = MainFsm(self)
- if args.screenshots:
+ if args.screenshot:
scene_classes = []
for _file in glob('pmachines/scenes/*.py'):
_fn = _file.replace('.py', '').replace('/', '.')
if isclass(member) and issubclass(member, Scene) and \
member != Scene:
scene_classes += [member]
- for cls in scene_classes:
- scene = cls(BulletWorld(), None, True, False, lambda: None)
- scene.screenshot()
- scene.destroy()
+ cls = [cls for cls in scene_classes if cls.__name__ == args.screenshot][0]
+ scene = cls(BulletWorld(), None, True, False, lambda: None)
+ scene.screenshot()
+ scene.destroy()
exit()
elif self._options['development']['auto_start']:
mod_name = 'pmachines.scenes.scene_' + self._options['development']['auto_start']
load_prc_file_data('', 'sync-video true')
# load_prc_file_data('', 'threading-model Cull/Draw')
# it freezes when you go to the next scene
- if args.screenshots:
+ if args.screenshot:
load_prc_file_data('', 'window-type offscreen')
load_prc_file_data('', 'audio-library-name null')
parser.add_argument('--update', action='store_true')
parser.add_argument('--version', action='store_true')
parser.add_argument('--optfile')
- parser.add_argument('--screenshots', action='store_true')
+ parser.add_argument('--screenshot')
cmd_line = [arg for arg in iter(argv[1:]) if not arg.startswith('-psn_')]
args = parser.parse_args(cmd_line)
return args
props.set_size(res)
props.set_fullscreen(self._options['settings']['fullscreen'])
props.set_icon_filename('assets/icon/pmachines.ico')
- if not args.screenshots:
+ if not args.screenshot:
base.win.request_properties(props)
gltf.patch_loader(base.loader)
if self._options['development']['simplepbr']:
from distutils.cmd import Command
from setuptools import setup
from setuptools.command.develop import develop
+from multiprocessing import cpu_count
from direct.dist.commands import bdist_apps
from lib.build.build import branch, files, ver, files, bld_dpath
from lib.build.docs import bld_docs
'''Common functionalities for commands.'''
user_options = [('cores=', None, '#cores')]
- cores = 1
+ cores = cpu_count()
def initialize_options(self):
for arg in argv[:]: