class Scene(DirectObject):
- def __init__(self, world, exit_cb, auto_close_instr, dbg_items, reload_cb):
+ def __init__(self, world, exit_cb, auto_close_instr, dbg_items, reload_cb, scenes):
super().__init__()
self._world = world
self._exit_cb = exit_cb
self._dbg_items = dbg_items
self._reload_cb = reload_cb
+ self._scenes = scenes
self._set_camera()
self._cursor = MouseCursor(
'assets/images/buttons/arrowUpLeft.dds', (.04, 1, .04), (.5, .5, .5, 1),
rolloverSound=loader.load_sfx('assets/audio/sfx/rollover.ogg'),
clickSound=loader.load_sfx('assets/audio/sfx/click.ogg'))
btn.set_transparency(True)
- scenes = []
- for _file in glob('game/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:
- scenes += [member]
- scenes = sorted(scenes, key=lambda elm: elm.sorting)
- enabled = scenes.index(self.__class__) < len(scenes) - 1
+ enabled = self._scenes.index(self.__class__) < len(self._scenes) - 1
if enabled:
- next_scene = scenes[scenes.index(self.__class__) + 1]
+ next_scene = self._scenes[self._scenes.index(self.__class__) + 1]
else:
next_scene = None
imgs = [self.__load_img_btn('right', col) for col in colors]