This commit is contained in:
CortexCore
2023-10-20 19:31:12 +08:00
parent 5cd094ed9a
commit a160813262
1878 changed files with 630581 additions and 4485 deletions

View File

@@ -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>();