27 lines
713 B
Python
27 lines
713 B
Python
import asyncio
|
|
import signal
|
|
|
|
|
|
class Game:
|
|
def __init__(self, input_handler, events, game_state):
|
|
self.input_handler = input_handler
|
|
self.events = events
|
|
self.game_state = game_state
|
|
signal.signal(signal.SIGINT, self.interrupt)
|
|
self.is_running = asyncio.Condition()
|
|
pass
|
|
|
|
def interrupt(self):
|
|
print('Received SIGINT. Stopping Game :-)')
|
|
self.is_running.release()
|
|
|
|
async def run(self):
|
|
await self.is_running.acquire()
|
|
|
|
input_loop = asyncio.new_event_loop()
|
|
await input_loop.run_until_complete(self.input_handler.handleInputs())
|
|
input_loop.close()
|
|
|
|
await self.is_running.wait()
|
|
pass
|