From e1d83a4af1d1e74de60def75307109bdc05a20c6 Mon Sep 17 00:00:00 2001 From: copygirl Date: Thu, 15 Apr 2021 12:07:37 +0200 Subject: [PATCH] Simplify networking some more - Simply Player with Rset extension methods - Game, Network and LocalPlayer now have a static "Instance" property - Port input only supports numbers --- scene/EscapeMenu.tscn | 1 + scene/GameScene.tscn | 1 - src/EscapeMenuAppearance.cs | 8 +++--- src/EscapeMenuMultiplayer.cs | 45 +++++++++++++++++++------------ src/Extensions.cs | 21 +++++++++++++++ src/Game.cs | 14 ++++------ src/LocalPlayer.cs | 7 ++++- src/Network.cs | 36 ++++++++++++++----------- src/Player.cs | 51 ++++++++++-------------------------- src/Viewport.cs | 2 +- 10 files changed, 100 insertions(+), 86 deletions(-) diff --git a/scene/EscapeMenu.tscn b/scene/EscapeMenu.tscn index 14059b6..5bb4632 100644 --- a/scene/EscapeMenu.tscn +++ b/scene/EscapeMenu.tscn @@ -321,6 +321,7 @@ __meta__ = { [connection signal="visibility_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance" method="_on_Appearance_visibility_changed"] [connection signal="text_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance/VBoxContainer/ContainerName/DisplayName" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance" method="_on_DisplayName_text_changed"] [connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance/VBoxContainer/ContainerColor/Hue" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Appearance" method="_on_Hue_value_changed"] +[connection signal="text_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer/ContainerServer/ServerPort" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer" method="_on_ServerPort_text_changed"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer/ContainerServer/ServerStartStop" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer" method="_on_ServerStartStop_pressed"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer/ContainerClient/ClientDisConnect" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer" method="_on_ClientDisConnect_pressed"] [connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer/ContainerHideAddress/HideAddress" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Multiplayer" method="_on_HideAddress_toggled"] diff --git a/scene/GameScene.tscn b/scene/GameScene.tscn index ae291b7..b456539 100644 --- a/scene/GameScene.tscn +++ b/scene/GameScene.tscn @@ -12,7 +12,6 @@ [node name="Game" type="Node"] script = ExtResource( 3 ) -LocalPlayerPath = NodePath("Players/LocalPlayer") BlockScene = ExtResource( 6 ) [node name="Viewport" type="Node" parent="."] diff --git a/src/EscapeMenuAppearance.cs b/src/EscapeMenuAppearance.cs index 3c73ccb..f1a6eda 100644 --- a/src/EscapeMenuAppearance.cs +++ b/src/EscapeMenuAppearance.cs @@ -7,21 +7,19 @@ public class EscapeMenuAppearance : CenterContainer [Export] public NodePath ColorPreviewPath { get; set; } [Export] public NodePath ColorSliderPath { get; set; } - public Game Game { get; private set; } public LineEdit DisplayName { get; private set; } public TextureRect ColorPreview { get; private set; } public Slider ColorSlider { get; private set; } public override void _Ready() { - Game = GetNode("/root/Game"); DisplayName = GetNode(DisplayNamePath); ColorPreview = GetNode(ColorPreviewPath); ColorSlider = GetNode(ColorSliderPath); ColorSlider.Value = GD.RandRange(0.0, 1.0); var color = Color.FromHsv((float)ColorSlider.Value, 1.0F, 1.0F); - Game.LocalPlayer.Color = ColorPreview.Modulate = color; + LocalPlayer.Instance.Color = ColorPreview.Modulate = color; } @@ -48,7 +46,7 @@ public class EscapeMenuAppearance : CenterContainer private void _on_Appearance_visibility_changed() { if (IsVisibleInTree()) return; - Game.LocalPlayer.DisplayName = DisplayName.Text; - Game.LocalPlayer.Color = ColorPreview.Modulate; + LocalPlayer.Instance.DisplayName = DisplayName.Text; + LocalPlayer.Instance.Color = ColorPreview.Modulate; } } diff --git a/src/EscapeMenuMultiplayer.cs b/src/EscapeMenuMultiplayer.cs index bc609d2..853637a 100644 --- a/src/EscapeMenuMultiplayer.cs +++ b/src/EscapeMenuMultiplayer.cs @@ -1,3 +1,4 @@ +using System.Text.RegularExpressions; using Godot; public class EscapeMenuMultiplayer : Container @@ -14,8 +15,6 @@ public class EscapeMenuMultiplayer : Container public Button ClientDisConnect { get; private set; } public LineEdit ClientAddress { get; private set; } - public Network Network { get; private set; } - public override void _Ready() { Status = GetNode