public override void _Ready() { SignalManager.Subscribe <NetworkStatus>(this); Panel networkPanel = (Panel)GetChild(0).GetChild(1); ConnectedStatus = (Label)networkPanel.GetChild(0); PingStatus = (Label)networkPanel.GetChild(1); ConnectedToIpStatus = (Label)networkPanel.GetChild(2); menu = (Panel)GetChild(1); StatusLabel = (Label)menu.GetChild(0); IPInput = (LineEdit)menu.GetChild(1); PortInput = (LineEdit)menu.GetChild(2); connectButton = (Button)menu.GetChild(3); hostButton = (Button)menu.GetChild(4); // SignalManager.Subscribe("Prepare", this, "Initialize"); // SignalManager.Subscribe("ConnectionFailure", this, "ConnectionFailure"); connectButton.Connect("button_up", this, "ConnectButton"); hostButton.Connect("button_up", this, "HostButton"); }
private void HostButton() { if (!isClickable) { return; } hostReference = new HostPlayer(); SignalManager.Signal(hostReference); menu.Visible = false; }
private void ConnectButton() { if (!isClickable) { return; } hostReference = new ClientPlayer(); SignalManager.Signal(hostReference); if (IPAddress.TryParse(IPInput.Text, out IPAddress addr) && ushort.TryParse(PortInput.Text, out ushort port)) { isClickable = false; NetworkStatusMessage(StatusMessageType.Information, "Attempting to connect"); hostReference.Connect(addr.ToString(), port); return; } NetworkStatusMessage(StatusMessageType.Error, "Invalid input"); }