Esempio n. 1
0
def run(expo_num, level_name, mode):
    game_str = "game%s" % expo_num
    game_settings_str = "Game%sSettings" % expo_num
    _temp = __import__("pkg.exponates", globals(), locals(), [game_str])
    Exhibit = getattr(_temp, game_str).Exhibit
    _temp = __import__("pkg.settings", globals(), locals(), [game_settings_str])
    Settings = getattr(_temp, game_settings_str)

    invoker = Invoker()
    settings = Settings(mode)

    level = None
    for l in settings.exhibit.levels:
        if l.name == level_name:
            level = l
    if level is None:
        level = settings.exhibit.levels[0]

    # inject level-specific settings into settings object
    for key, val in level.params.items():
        setattr(settings, key, val)

    # set test exhibit to selected level
    if expo_num == "Test" and level_name != "default":
        io_settings_str = "Game%sSettings" % level_name
        _temp = __import__("pkg.settings", globals(), locals(), [io_settings_str])
        IOSettings = getattr(_temp, io_settings_str)
        io_settings = IOSettings(mode)
        settings.key_map = io_settings.key_map
        settings.light_map = io_settings.light_map
        settings.seven_length = io_settings.seven_length

    logger.info("start_expo.py, before localizing settings")
    try:
        from pkg.local_settings import localize_settings
    except Exception as e:
        logger.warn("no local settings")

    if "localize_settings" in locals():
        try:
            localize_settings(settings)
            logger.info("localizing settings")
        except Exception as e:
            logger.error("failed to load local setings")
            logger.error(e)

    if mode == "emulator":
        env = Emulator(invoker, settings)
    else:
        from pkg.rpi_env import RpiEnv

        env = RpiEnv(invoker, settings)

    exhibit = Exhibit(invoker, env, settings)
    invoker.start()
    env.run()
Esempio n. 2
0
from pkg.emulator import Emulator
from pkg.general import Invoker, FakeQrScanner
from pkg.settings import Game91Settings
import random
import time

settings=Game91Settings('emulator')
settings.qr_factory=FakeQrScanner
invoker=Invoker()
env=Emulator(invoker, settings)

for i in range(24*3600):
        env.play_sound(random.choice(list(env.samples.keys())))
time.sleep(24*3600)
env.__exit__()