TH1/Unity/Assets/Scripts/TH1_UI/Controller/Bottom/UIBottomNetController.cs
2026-04-13 16:09:33 +08:00

97 lines
2.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using RuntimeData;
using TH1_Core.Events;
using TH1_Logic.Chat;
using TH1_Logic.Core;
using TH1_Logic.Net;
using TH1_UI.Controller.Base;
using TH1_UI.View.Bottom;
using UnityEngine;
namespace TH1_UI.Controller.Bottom
{
public class UIBottomNetController : ViewController<UIBottomNetView>
{
/// <summary>
/// 一个空的构造函数,以满足 ViewControllerManager._CreateView 的 new() 泛型约束。
/// </summary>
public UIBottomNetController() { }
protected override void RegisterEventCallback()
{
base.RegisterEventCallback();
if (WindowScript != null)
{
WindowScript.OnBtnCloseClick += _OnBtnCloseClick;
WindowScript.OnChatMessageSend += _OnChatMessageSend;
}
}
protected override void UnregisterEventCallback()
{
if (WindowScript != null)
{
WindowScript.OnBtnCloseClick = null;
WindowScript.OnChatMessageSend = null;
}
base.UnregisterEventCallback();
}
public override void OnMatchStart()
{
if(Main.MapData.Net.Mode == NetMode.Multi)
OpenWithParam(new ShowUIBottomNet());
}
protected override void OnOpen()
{
base.OnOpen();
// 检查暂存的参数是否存在且类型正确
if (_openParameter is ShowUIBottomNet evt)
{
// 使用接收到的数据设置UI内容
if (WindowScript != null)
{
WindowScript.SetContent();
}
}
else
{
// 如果没有参数或参数类型不符,可以提供默认内容或打印警告
Debug.LogWarning("[UIBottomNet] Opened without valid parameters.");
if (WindowScript != null)
{
//WindowScript.SetContent();
}
}
}
public override bool Close()
{
WindowScript?.CloseView();
return base.Close();
}
void _OnBtnCloseClick()
{
Close();
}
/// <summary>
/// 处理聊天消息发送SendChatItem 内部会触发 OnChatUpdated → ChatArea 自动刷新)
/// </summary>
void _OnChatMessageSend(string message)
{
ChatManager.Instance.SendChatItem(message);
}
public new void UpdateView()
{
if (WindowScript != null)
{
WindowScript.UpdateView();
}
}
}
}