This commit is contained in:
Eden Kirin
2023-03-26 23:59:15 +02:00
parent f74bc9b52e
commit fa2aee881d
6 changed files with 31 additions and 13 deletions

View File

@ -5,6 +5,7 @@ from typing import Optional
from hopper.enums import Direction, PlayerMoveResult
from hopper.errors import Collision, PositionOutOfBounds
from hopper.interfaces import SendGameStateInterface
from hopper.models.board import (
BOARD_DUMP_CHARS,
BoardLayout,
@ -17,12 +18,13 @@ from hopper.models.board import (
)
from hopper.models.player import Player, PlayerList, Position
from hopper.watchdog import InactivityWatchdog
from hopper.ws_server import WSServer
from settings import settings
class GameEngine:
def __init__(self, board: GameBoard, ws_server: Optional[WSServer] = None) -> None:
def __init__(
self, board: GameBoard, ws_server: Optional[SendGameStateInterface] = None
) -> None:
self.board = board
self.ws_server = ws_server
self.players = PlayerList()
@ -163,7 +165,7 @@ class GameEngineFactory:
board_width: int,
board_height: int,
obstacle_count: int = 0,
ws_server: Optional[WSServer] = None,
ws_server: Optional[SendGameStateInterface] = None,
) -> GameEngine:
board = GameBoard(
width=board_width,
@ -188,7 +190,9 @@ class GameEngineFactory:
return game
@staticmethod
def create_default(ws_server: Optional[WSServer] = None) -> GameEngine:
def create_default(
ws_server: Optional[SendGameStateInterface] = None,
) -> GameEngine:
return GameEngineFactory.create(
board_width=settings.board.WIDTH,
board_height=settings.board.HEIGHT,