using System; using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.UX; using UnityEngine; using UnityEngine.UIElements; namespace BITFALL.UX { public class UXLan : MonoBehaviour { [SerializeField] private UIDocument document; [SerializeReference,SubclassSelector] private INetServer server; [SerializeReference,SubclassSelector] private INetClient client; [UXBindPath("lan-toggle")] private Toggle _lanToggle; [UXBindPath("connect-button")] private Button _connectButton; [UXBindPath("ip-textfield")] private TextField _ipField; private void Start() { BITKit.UX.UXUtils.Inject(this); _lanToggle.SetValueWithoutNotify(server.IsRunningServer); _lanToggle.RegisterValueChangedCallback(evt => { try { if (evt.newValue) { server.StartServer(); } else { server.StopServer(); } } catch (Exception e) { Alert.Print(new AlertMessage() { title = e.Message, message = e.StackTrace }); } }); _connectButton.clicked += () => { try { var field = _ipField.value; if (string.IsNullOrEmpty(field)) { client.Connect(); } else { client.Connect(_ipField.value); } } catch (Exception e) { Alert.Print(new AlertMessage() { title = e.Message, message = e.StackTrace }); } }; } } }