1
This commit is contained in:
@@ -1,104 +1,71 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Policy;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using BITKit;
|
||||
using BITKit.SceneManagement;
|
||||
using BITKit.UX;
|
||||
using INetClient = BITKit.INetClient;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine.ResourceManagement.ResourceProviders;
|
||||
|
||||
namespace BITFALL.UX
|
||||
{
|
||||
public class Menu : UIToolKitPanel
|
||||
public class UXMenu : UIToolKitPanel
|
||||
{
|
||||
[Header(Constant.Header.Providers)]
|
||||
[SerializeReference, SubclassSelector]
|
||||
private INetClient netClient;
|
||||
[SerializeReference, SubclassSelector] private ISceneService SceneService;
|
||||
|
||||
[Header(Constant.Header.Components)]
|
||||
public UXButton connectButton;
|
||||
public UXButton localhostButton;
|
||||
public UXButton disconnectButton;
|
||||
public UXButton returnButton;
|
||||
public UXImage backgroundImage;
|
||||
[SerializeField] private UXButton playButton;
|
||||
[SerializeField] private UXButton stopButton;
|
||||
[SerializeField] private UXButton exitButton;
|
||||
[SerializeField] private UXButton returnButton;
|
||||
[SerializeField] private UXImage backgroundImage;
|
||||
[Header(Constant.Header.Input)]
|
||||
public InputActionReference returnAction;
|
||||
[SerializeField] private InputActionReference returnAction;
|
||||
[SerializeField] private InputActionReference inventoryAction;
|
||||
public InputActionGroup inputActionGroup;
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
|
||||
netClient.OnConnected += OnConnected;
|
||||
netClient.OnConnectedFailed += OnConnectFailed;
|
||||
netClient.OnDisconnected += OnConnectFailed;
|
||||
|
||||
protected override void Start()
|
||||
{
|
||||
inputActionGroup.RegisterCallback(returnAction, OnReturn);
|
||||
inputActionGroup.RegisterCallback(inventoryAction, OnReturn);
|
||||
|
||||
SceneService.OnLoadScene +=(_)=> OnConnected();
|
||||
SceneService.OnUnloadScene +=(_)=>
|
||||
{
|
||||
Entry();
|
||||
OnDisconnected();
|
||||
};
|
||||
OnDisconnected();
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
netClient.OnConnected -= OnConnected;
|
||||
netClient.OnConnectedFailed -= OnConnectFailed;
|
||||
netClient.OnDisconnected -= OnConnectFailed;
|
||||
}
|
||||
|
||||
protected override void OnEntryOrExit(bool isEntry)
|
||||
{
|
||||
inputActionGroup.allowInput.SetElements(this, isEntry);
|
||||
}
|
||||
public void StartIntelnetConnect()
|
||||
{
|
||||
netClient.Connect();
|
||||
}
|
||||
public void StartLocalConnect()
|
||||
{
|
||||
netClient.Connect();
|
||||
}
|
||||
public void Disconnect()
|
||||
{
|
||||
netClient.Disconnect();
|
||||
}
|
||||
|
||||
private void OnConnected()
|
||||
{
|
||||
connectButton.SetEnabled(true);
|
||||
localhostButton.SetEnabled(true);
|
||||
|
||||
returnButton.SetActive(true);
|
||||
connectButton.SetActive(false);
|
||||
localhostButton.SetActive(false);
|
||||
disconnectButton.SetActive(true);
|
||||
backgroundImage.SetActive(false);
|
||||
}
|
||||
private void OnConnectFailed()
|
||||
{
|
||||
UXService.Entry<Menu>();
|
||||
connectButton.SetEnabled(true);
|
||||
localhostButton.SetEnabled(true);
|
||||
OnDisconnected();
|
||||
}
|
||||
private void OnStartConnect()
|
||||
{
|
||||
connectButton.SetEnabled(false);
|
||||
localhostButton.SetEnabled(false);
|
||||
playButton.SetActive(false);
|
||||
stopButton.SetActive(true);
|
||||
exitButton.SetActive(false);
|
||||
returnButton.SetActive(true);
|
||||
}
|
||||
private void OnDisconnected()
|
||||
{
|
||||
returnButton.SetActive(false);
|
||||
connectButton.SetActive(true);
|
||||
localhostButton.SetActive(true);
|
||||
disconnectButton.SetActive(false);
|
||||
backgroundImage.SetActive(true);
|
||||
}
|
||||
private void OnDisconnect()
|
||||
{
|
||||
UXService.Entry<Menu>();
|
||||
OnDisconnected();
|
||||
playButton.SetActive(true);
|
||||
stopButton.SetActive(false);
|
||||
exitButton.SetActive(true);
|
||||
returnButton.SetActive(false);
|
||||
}
|
||||
private void OnReturn(InputAction.CallbackContext context)
|
||||
{
|
||||
if (!netClient.IsConnected) return;
|
||||
if (context.ReadValueAsButton())
|
||||
{
|
||||
UXService.Entry<UXHud>();
|
||||
|
Reference in New Issue
Block a user