added old code, fixed it (mostly), merged some new code to the old code, made it mostly runnable

This commit is contained in:
2024-01-21 23:03:24 +01:00
parent d6ba33874d
commit 5daffa8a8e
192 changed files with 2373 additions and 44 deletions

View File

@ -0,0 +1,40 @@
import socket
import pygame
from Classes.Game.Events.PlaceCard import CardPlaced
from Classes.System.Components.InputHandler import InputHandler
from Classes.Game.World import World
from Classes.Game.Events.GameStart import GameStart
from Classes.Game.Player import Player
from Classes.Game.Events.Login import LoginResponse
class TCPEventHandler:
def __init__(self, socket:socket):
self.tcp_socket = socket
def handleEvents(self, message, inputHandler:InputHandler, world:World):
print(message)
if message["event"] == "loginresponse":
LoginResponse(message, world)
pass
elif message["event"] == "startgame":
world.player.setMana(message["player"]["mana"])
world.player.setHp(message["player"]["hp"])
GameStart(world, message["player"]["hand"], inputHandler, world.getPlayer(), Player(message["enemy"]["hp"],message["enemy"]["mana"],message["enemy"]["name"], message["enemy"]["id"]))
pass
elif message["event"] == "placecard":
CardPlaced(world, message["card"], message["type"], message["owner"], pygame.Vector2(int(message["x"]), int(message["y"]), inputHandler))
pass
elif message["event"] == "MoveCard":
pass
elif message["event"] == "RemoveCard":
pass
elif message["event"] == "AttackCard":
pass
elif message["event"] == "AttackPlayer":
pass
elif message["event"] == "ActivateEffectCard":
pass
elif message["event"] == "ActivateMonsterCard":
pass

View File

@ -0,0 +1,46 @@
import json
import socket
import threading
from Classes.System.Network.EventHandler import TCPEventHandler
from Classes.Game.World import World
from Classes.System.Components.InputHandler import InputHandler
class TCPClient:
def __init__(self, addr: str, port: str, world:World, inputHandler:InputHandler):
self.addr = addr
self.port = int(port)
self.tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.eventHandler = TCPEventHandler(self.tcpSocket)
self.world = world
self.inputHandler = inputHandler
try:
self.tcpSocket.connect((self.addr, self.port))
except Exception as e:
print(f"Error connecting TCP socket: {e}")
# Starten des Listener-Threads
self.listen()
def send(self, message: dict):
try:
self.tcpSocket.sendall(json.dumps(message).encode())
except Exception as e:
print(f"Error sending TCP data: {e}")
def receive(self):
while True:
try:
data = self.tcpSocket.recv(1024)
if data:
decoded_data = json.loads(data.decode())
self.eventHandler.handleEvents(decoded_data, self.inputHandler, self.world)
except Exception as e:
print(f"Error receiving TCP data: {e}")
break
def listen(self):
tcpThread = threading.Thread(target=self.receive)
tcpThread.daemon = True
tcpThread.start()