/build/
/dist/
/assets/locale/
+/assets/images/scenes/
\ No newline at end of file
--- /dev/null
+from os import system
+
+
+def bld_screenshots():
+ system('python main.py --screenshots')
import argparse
import simplepbr
import gltf
+from glob import glob
from importlib import import_module
from inspect import isclass
-from sys import platform, argv
+from sys import platform, argv, exit
from logging import info, debug
from os.path import exists
from os import makedirs
'pmachines',
'assets/locale/')
self._fsm = MainFsm(self)
- if self._options['development']['auto_start']:
+ if args.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]
+ for cls in scene_classes:
+ scene = cls(BulletWorld(), None, True, False)
+ scene.screenshot()
+ scene.destroy()
+ exit()
+ elif self._options['development']['auto_start']:
mod_name = 'pmachines.scenes.scene_' + self._options['development']['auto_start']
for member in import_module(mod_name).__dict__.values():
if isclass(member) and issubclass(member, Scene) and \
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')
cmd_line = [arg for arg in iter(argv[1:]) if not arg.startswith('-psn_')]
args = parser.parse_args(cmd_line)
return args
'frameColor': (1, 1, 1, .8)}
self._widgets += [DirectButton(
text=scene_classes[0].name(), pos=(-.4, 1, .1), command=self.start,
- extraArgs=[scene_classes[0]], **cmn)]
+ extraArgs=[scene_classes[0]],
+ frameTexture='assets/images/scenes/%s.png' % scene_classes[0].__name__,
+ **cmn)]
self._widgets += [DirectButton(
text=scene_classes[1].name(), pos=(.4, 1, .1), command=self.start,
- extraArgs=[scene_classes[1]], **cmn)]
- #s = Scene(BulletWorld(), None, True, None)
- #self._widgets[-1]['frameTexture'] = s.screenshot().make_copy()
- #base.graphicsEngine.renderFrame()
- #base.graphicsEngine.renderFrame()
- #s.destroy()
+ extraArgs=[scene_classes[1]],
+ frameTexture='assets/images/scenes/%s.png' % scene_classes[1].__name__,
+ **cmn)]
self._widgets += [DirectButton(
text=_('Back'), pos=(0, 1, -.8), command=self.on_back,
**self._common_btn)]
enable_shadows=True)
base.graphicsEngine.renderFrame()
base.graphicsEngine.renderFrame()
- # buffer.save_screenshot('assets/scene.png')
+ fname = self.__class__.__name__
+ buffer.save_screenshot('assets/images/scenes/%s.png' % fname)
# img = DirectButton(
# frameTexture=buffer.get_texture(), relief=FLAT,
# frameSize=(-.2, .2, -.2, .2))
* issues
* todo
-** save screenshots of the levels in files (and use them in the menu)
** frame for the end of the level (back, replay, next level)
** create one level per item, then levels with more items
*** e.g. item1, item2, item1+2, item3, item1+2+3, ...
from lib.build.docs import bld_docs
from lib.build.models import ModelsBuilder
from lib.build.images import bld_images
+from lib.build.screenshots import bld_screenshots
from lib.build.lang import LanguageBuilder
from p3d_appimage import AppImageBuilder
from p3d_flatpak import FlatpakBuilder
def run(self):
'''Builds the images.'''
+ bld_screenshots()
bld_images(
files(['jpg', 'png'], ['models', 'gltf', 'bam'], ['_png.png']), int(AbsCmd.cores))