aboutsummaryrefslogtreecommitdiff
path: root/src/splitscreen_duo/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/splitscreen_duo/__init__.py')
-rw-r--r--src/splitscreen_duo/__init__.py51
1 files changed, 49 insertions, 2 deletions
diff --git a/src/splitscreen_duo/__init__.py b/src/splitscreen_duo/__init__.py
index e47c7cb..8233caf 100644
--- a/src/splitscreen_duo/__init__.py
+++ b/src/splitscreen_duo/__init__.py
@@ -1,3 +1,4 @@
+from .game import Game
from . import menu
from .command import Command
import os
@@ -5,6 +6,8 @@ import logging
import pygame
from .serial import Serial
import json
+from .games import benchmark, snake
+
def main() -> int:
logger = logging.getLogger(__name__)
@@ -19,9 +22,9 @@ def main() -> int:
level=(logging.DEBUG if os.getenv("DEVELOPMENT", "").lower() else logging.INFO)
)
print("The Dual Screen Console")
- logger.info(f"running as {os.getenv("INSTANCE", "unknown")}")
+ logger.info(f"running as {os.getenv('INSTANCE', 'unknown')}")
menu.init_display()
-
+
is_running = True
while is_running:
@@ -38,6 +41,31 @@ def main() -> int:
pygame.quit()
return 0
+ elif message.get("command") == Command.SELECT_GAME.value:
+ if message.get("value") == Game.BENCHMARK.value:
+ logger.info("received benchmark game selection from primary")
+
+ game_result = benchmark.main_loop(menu.screen, serial)
+
+ if (
+ game_result
+ and game_result.get("command") == Command.QUIT.value
+ ):
+ pygame.quit()
+
+ return 0
+ elif message.get("value") == Game.SNAKE.value:
+ logger.info("received snake game selection from primary")
+
+ game_result = snake.main_loop(menu.screen, serial, INSTANCE)
+
+ if (
+ game_result
+ and game_result.get("command") == Command.QUIT.value
+ ):
+ pygame.quit()
+
+ return 0
except json.JSONDecodeError:
logger.error("failed to decode serial message")
@@ -55,6 +83,25 @@ def main() -> int:
pygame.quit()
return 0
+ elif serial_command.get("command") == Command.SELECT_GAME.value:
+ if serial_command.get("value") == Game.BENCHMARK.value:
+ logger.info("starting benchmark game")
+
+ game_result = benchmark.main_loop(menu.screen, serial)
+
+ if game_result and game_result.get("command") == Command.QUIT.value:
+ pygame.quit()
+
+ return 0
+ elif serial_command.get("value") == Game.SNAKE.value:
+ logger.info("starting snake game")
+
+ game_result = snake.main_loop(menu.screen, serial, INSTANCE)
+
+ if game_result and game_result.get("command") == Command.QUIT.value:
+ pygame.quit()
+
+ return 0
menu.draw_menu()