diff --git a/server/src/main.py b/server/src/main.py index 6526332..1b3f4a1 100644 --- a/server/src/main.py +++ b/server/src/main.py @@ -3,20 +3,9 @@ import asyncio, time from network import startServer from player import Player from block import Block +from world import * from config import * -def getPlayers(): - global WORLD - for b in WORLD: - if type(b) == Player: - yield b - -def getPlayer(name): - global WORLD - for b in WORLD: - if type(b) == Player: - if b.name == name: - return b def current_milli_time(): return round(time.time() * 1000) @@ -45,11 +34,5 @@ async def main(): asyncio.get_event_loop().create_task(renderTimer()) await startServer(HOST, PORT) -WORLD = [ - Block(-1, -1, "normal", "#555", True), - Block(0, -1, "spawn", "#2ad", True), - Block(1, -1, "normal", "#555", True) -] - if __name__ == "__main__": asyncio.run(main()) \ No newline at end of file diff --git a/server/src/network.py b/server/src/network.py index 0044551..2dc3843 100644 --- a/server/src/network.py +++ b/server/src/network.py @@ -1,8 +1,9 @@ from websockets.server import serve, ServerConnection import asyncio from config import BLOCK_TYPES, COLORS, SPAWN -from main import WORLD, getPlayer, getPlayers +from world import * from player import Player +from packet import * import random async def startServer(host, port): @@ -10,13 +11,6 @@ async def startServer(host, port): print(f"started server on {host}:{port}") await asyncio.get_running_loop().create_future() -async def readPacket(websocket: ServerConnection) -> tuple[str, list[str]]: - data = await websocket.recv() - return data[0], data[1:].splitlines() - -async def writePacket(websocket: ServerConnection, packet_id: str, packet_data: list[str]): - await websocket.send(packet_id + ("\n".join(packet_data))) - async def handler(websocket: ServerConnection): packet_id, packet_data = await readPacket(websocket) diff --git a/server/src/packet.py b/server/src/packet.py new file mode 100644 index 0000000..ce97c48 --- /dev/null +++ b/server/src/packet.py @@ -0,0 +1,8 @@ +from websockets.server import ServerConnection + +async def readPacket(websocket: ServerConnection) -> tuple[str, list[str]]: + data = await websocket.recv() + return data[0], data[1:].splitlines() + +async def writePacket(websocket: ServerConnection, packet_id: str, packet_data: list[str]): + await websocket.send(packet_id + ("\n".join(packet_data))) \ No newline at end of file diff --git a/server/src/player.py b/server/src/player.py index 19dd784..ec49b87 100644 --- a/server/src/player.py +++ b/server/src/player.py @@ -1,7 +1,7 @@ from block import Block -from network import writePacket +from packet import writePacket from config import SPAWN, REACH_DISTANCE, BLOCK_TYPES -from main import getPlayers, WORLD +from world import * import time class Player(Block): diff --git a/server/src/world.py b/server/src/world.py new file mode 100644 index 0000000..9d15ef7 --- /dev/null +++ b/server/src/world.py @@ -0,0 +1,21 @@ +from player import Player +from block import Block + +def getPlayers(): + global WORLD + for b in WORLD: + if type(b) == Player: + yield b + +def getPlayer(name): + global WORLD + for b in WORLD: + if type(b) == Player: + if b.name == name: + return b + +WORLD = [ + Block(-1, -1, "normal", "#555", True), + Block(0, -1, "spawn", "#2ad", True), + Block(1, -1, "normal", "#555", True) +] \ No newline at end of file