core: game: split backed django

This commit is contained in:
2024-04-08 14:19:53 +02:00
parent c1624cce83
commit 25d86012ba
19 changed files with 192 additions and 117 deletions

View File

@ -11,26 +11,37 @@ from .objects.GameManager import GameManager
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from .objects.Spectator import Spectator
from .objects.Player import Player
from .objects.Game import Game
from .objects.pong.PongSpectator import PongSpectator
from .objects.pong.PongPlayer import PongPlayer
from .objects.pong.PongGame import PongGame
from .objects.tictactoe.TicTacToeGame import TicTacToeGame
from .objects.tictactoe.TicTacToePlayer import TicTacToePlayer
from .objects.tictactoe.TicTacToeSpectator import TicTacToeSpectator
game_manager: GameManager = GameManager()
class TicTacToeWebSocket(WebsocketConsumer):
def connect(self):
return super().connect()
self.user: User = self.scope["user"]
if (self.user.pk is None):
self.user.pk = 0
self.accept()
self.game_id = int(self.scope['url_route']['kwargs']['game_id'])
self.game: PongGame = game_manager.get(self.game_id, "pong")
def receive(self, text_data=None, bytes_data=None):
return super().receive(text_data, bytes_data)
pass
class PongWebSocket(WebsocketConsumer):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.channel_name = "games"
self.group_name = "games"
self.member = None
def connect(self):
@ -43,14 +54,14 @@ class PongWebSocket(WebsocketConsumer):
self.game_id = int(self.scope['url_route']['kwargs']['game_id'])
self.game: Game = game_manager.get(self.game_id)
self.game: PongGame = game_manager.get(self.game_id, "pong")
if (self.game is None):
self.send(text_data=json.dumps({"detail": "Game not found"}))
self.disconnect(1404)
return
self.member: Player | Spectator = self.game.join(self.user.pk, self)
self.member: PongPlayer | PongSpectator = self.game.join(self.user.pk, self)
def disconnect(self, code):
if (self.member is not None):