Beispiel #1
0
def main():
    logger.info("Starting {0}".format(version_string))

    try:
        gem.runite.context = gem.runite.Context()
        gem.runite.context.unpack(config.game_data['data_file'], config.game_data['index_files'])

        plugin_loader = PluginLoader(plugin_path)
        plugin_loader.load()

        # init service listeners
        # inserts an engine.Start hook to launch listeners
        listeners = ServiceListeners()

        # start the engine
        engine = gem.engine.Engine()
        engine.start()
        signal_handler.setup_exit_handler(engine.stop)

        logger.notice("Finished engine initialization")
    except Exception as e:
        logger.error("Startup failed: {0}".format(e))

    if args.no_console:
        logger.notice("Press Control-D to toggle the interactive console")
        while True:
            line = sys.stdin.readline()
            if not line: # readline will return "" on EOF
                interactive_console()
    else:
        while True:
            pass
Beispiel #2
0
def test_task_api():
    # For tasks to tick, we need the engine
    engine = gem.engine.Engine()
    engine.start()

    task_stack = ["pre", "tick", "post"]
    def task(task, userdata):
        assert task_stack.pop(0) == userdata
        if len(task_stack) == 0:
            engine.stop()
        return False

    scheduler = gem.task.submit(task, gem.task.PreTick, 2, "pre")
    scheduler = gem.task.submit(task, gem.task.Tick, 2, "tick")
    scheduler = gem.task.submit(task, gem.task.PostTick, 2, "post")

    engine.join()
    assert len(task_stack) == 0
Beispiel #3
0
def test_task_api():
    # For tasks to tick, we need the engine
    engine = gem.engine.Engine()
    engine.start()

    task_stack = ["pre", "tick", "post"]

    def task(task, userdata):
        assert task_stack.pop(0) == userdata
        if len(task_stack) == 0:
            engine.stop()
        return False

    scheduler = gem.task.submit(task, gem.task.PreTick, 2, "pre")
    scheduler = gem.task.submit(task, gem.task.Tick, 2, "tick")
    scheduler = gem.task.submit(task, gem.task.PostTick, 2, "post")

    engine.join()
    assert len(task_stack) == 0