From 58287a06498991a8ed71666a540a338fabfbdb77 Mon Sep 17 00:00:00 2001 From: Faraphel Date: Mon, 27 Feb 2023 16:15:53 +0100 Subject: [PATCH] port can now be changed --- source/gui/scene/RoomCreate.py | 33 ++++++++++++++++++++++++++++++++- source/gui/scene/RoomHost.py | 6 +++--- source/gui/scene/RoomJoin.py | 5 ++++- source/network/Client.py | 2 +- source/network/Host.py | 2 +- 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/source/gui/scene/RoomCreate.py b/source/gui/scene/RoomCreate.py index 5acdcde..1f72668 100644 --- a/source/gui/scene/RoomCreate.py +++ b/source/gui/scene/RoomCreate.py @@ -35,6 +35,35 @@ class RoomCreate(Scene): from source.gui.scene import MainMenu self.back.add_listener("on_click_release", lambda *_: self.window.set_scene(MainMenu)) + # Port + + self.add_widget( + widget.Text, + + x=0.1, y=0.65, + + anchor_x="center", anchor_y="center", + + text="Port", + + batch=self.batch_label + ) + + self.input_port = self.add_widget( + widget.Input, + + x=0.2, y=0.60, width=0.15, height=0.1, + + style=texture.Input.Style1, + + regex=r"\d{1,5}", + + label_text="52321", + + background_batch=self.batch_input_background, + label_batch=self.batch_label + ) + # Username self.add_widget( @@ -264,6 +293,8 @@ class RoomCreate(Scene): self.start.add_listener("on_click_release", lambda *_: self.confirm()) def confirm(self): + port = int(self.input_port.text) + settings = PacketSettings( username=self.input_username.text, grid_width=int(self.input_width.text), @@ -272,7 +303,7 @@ class RoomCreate(Scene): boats_length=[size for size, quantity in self.boat_size_amount.items() for _ in range(quantity)] ) - self.window.set_scene(RoomHost, settings=settings) + self.window.set_scene(RoomHost, port=port, settings=settings) def on_draw(self): self.batch_input_background.draw() diff --git a/source/gui/scene/RoomHost.py b/source/gui/scene/RoomHost.py index 6dbf47b..18b9e1e 100644 --- a/source/gui/scene/RoomHost.py +++ b/source/gui/scene/RoomHost.py @@ -14,11 +14,11 @@ if TYPE_CHECKING: class RoomHost(Scene): - def __init__(self, window: "Window", settings: "PacketSettings", **kwargs): + def __init__(self, window: "Window", port: int, settings: "PacketSettings", **kwargs): super().__init__(window, **kwargs) self.ip_address: str = "127.0.0.1" - self.port: int = 52321 + self.port: int = port self.batch_button_background = pyglet.graphics.Batch() self.batch_label = pyglet.graphics.Batch() @@ -59,7 +59,7 @@ class RoomHost(Scene): batch=self.batch_label ) - self.thread_network = network.Host(window=self.window, daemon=True, settings=settings) + self.thread_network = network.Host(window=self.window, daemon=True, port=self.port, settings=settings) self.thread_network.start() self._refresh_ip_text() diff --git a/source/gui/scene/RoomJoin.py b/source/gui/scene/RoomJoin.py index 6affb95..3a7b34e 100644 --- a/source/gui/scene/RoomJoin.py +++ b/source/gui/scene/RoomJoin.py @@ -66,7 +66,9 @@ class RoomJoin(Scene): widget.Input, x=0.53, y=0.45, width=0.07, height=0.1, - regex=r"\d{0,5}", + regex=r"\d{1,5}", + + label_text="52321", style=texture.Input.Style1, @@ -92,6 +94,7 @@ class RoomJoin(Scene): network.Client( window=self.window, ip_address=self.entry_ip.text, + port=int(self.entry_port.text), daemon=True, username=self.entry_username.text ).start() diff --git a/source/network/Client.py b/source/network/Client.py index a1980e4..af1e2c5 100644 --- a/source/network/Client.py +++ b/source/network/Client.py @@ -17,7 +17,7 @@ class Client(StoppableThread): The thread executed on the person who join a room. """ - def __init__(self, window: "Window", username: str, ip_address: str, port: int = 52321, **kw): + def __init__(self, window: "Window", username: str, ip_address: str, port: int, **kw): super().__init__(**kw) self.window = window diff --git a/source/network/Host.py b/source/network/Host.py index 8f5a90c..79982ea 100644 --- a/source/network/Host.py +++ b/source/network/Host.py @@ -17,7 +17,7 @@ class Host(StoppableThread): The thread executed on the person who create a room. """ - def __init__(self, window: "Window", settings: "PacketSettings", port: int = 52321, **kw): + def __init__(self, window: "Window", port: int, settings: "PacketSettings", **kw): super().__init__(**kw) self.window = window