34 lines
998 B
Python
34 lines
998 B
Python
import asyncio
|
|
import signal
|
|
import logging
|
|
from solenoids.BottomLeftBankSolenoid import BottomLeftBankSolenoid
|
|
from solenoids.BottomRightBankSolenoid import BottomRightBankSolenoid
|
|
from solenoids.TopCentralBankSolenoid import TopCentralBankSolenoid
|
|
|
|
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()
|
|
|
|
BottomLeftBankSolenoid().trigger()
|
|
BottomRightBankSolenoid().trigger()
|
|
TopCentralBankSolenoid().trigger()
|
|
pass
|
|
|
|
def interrupt(self):
|
|
logging.info('Received SIGINT. Stopping Game :-)')
|
|
self.is_running.release()
|
|
|
|
async def run(self):
|
|
logging.info('Starting game')
|
|
|
|
await self.is_running.acquire()
|
|
|
|
await self.input_handler.handleInputs()
|
|
|
|
await self.is_running.wait()
|
|
pass
|