188 lines
8.6 KiB
C#
188 lines
8.6 KiB
C#
/*
|
|
* @Author: 白哉
|
|
* @Description: 回放编辑器
|
|
* @Date: 2025年04月22日 星期二 15:04:14
|
|
* @Modify:
|
|
*/
|
|
|
|
|
|
using TH1_Logic.Core;
|
|
using TH1_Logic.Net;
|
|
using TH1_Logic.Steam;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
|
|
namespace Logic.Editor
|
|
{
|
|
public class SteamEditorWindow : EditorWindow
|
|
{
|
|
// 滑条
|
|
private Vector2 _barPosition;
|
|
|
|
// 背景
|
|
private GUIStyle _redBoxStyle;
|
|
private GUIStyle _whiteBoxStyle;
|
|
|
|
|
|
[MenuItem("Tools/Steam 编辑器")]
|
|
private static void ShowWindow()
|
|
{
|
|
var window = CreateWindow<SteamEditorWindow>();
|
|
window.titleContent = new GUIContent("Steam 编辑器");
|
|
window.Show();
|
|
}
|
|
|
|
private void OnGUI()
|
|
{
|
|
if (_redBoxStyle == null)
|
|
{
|
|
_redBoxStyle = InspectorUtils.GetHelpBoxStyle();
|
|
InspectorUtils.AddBorder(_redBoxStyle, new Color(0.5f, 0.4f, 0.4f, 0.6f));
|
|
}
|
|
if (_whiteBoxStyle == null)
|
|
{
|
|
_whiteBoxStyle = InspectorUtils.GetHelpBoxStyle();
|
|
InspectorUtils.AddBorder(_whiteBoxStyle, new Color(1f, 1f, 1f, 0.2f));
|
|
}
|
|
|
|
var lobby = LobbyManager.Instance.Lobby as SteamLobbyManager;
|
|
if (lobby == null) return;
|
|
|
|
GUI.skin.button.wordWrap = true;
|
|
_barPosition = EditorGUILayout.BeginScrollView(_barPosition);
|
|
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich("Steam 测试状态");
|
|
InspectorUtils.InspectorTextWidthRich($"Steam初始化: {(lobby.IsSteamInitialized ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"用户登录: {(lobby.IsloggedIn ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"Lobby 初始化: {(lobby.IsLobbyInitialized ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"P2P 初始化: {(SimpleP2P.Instance.IsInitialized ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"是否全部初始化完毕: {(lobby.IsInitialized() ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"用户: {lobby.SelfName}");
|
|
InspectorUtils.InspectorTextWidthRich($"ID: {lobby.SelfID}");
|
|
|
|
InspectorUtils.InspectorTextWidthRich("房间状态");
|
|
InspectorUtils.InspectorTextWidthRich($"当前状态: {lobby.GetCurState()}");
|
|
InspectorUtils.InspectorTextWidthRich($"在房间中: {(lobby.IsInLobby() ? "✓" : "✗")}");
|
|
InspectorUtils.InspectorTextWidthRich($"是房主: {(lobby.IsLobbyOwner() ? "✓" : "✗")}");
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
|
|
if (lobby.IsInitialized() && lobby.IsInLobby())
|
|
{
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich($"房间ID: {lobby.GetCurState()}");
|
|
InspectorUtils.InspectorTextWidthRich($"成员数: {lobby.GetMemberCount()}/{lobby.GetMemberLimit()}");
|
|
InspectorUtils.InspectorTextWidthRich($"P2P连接数: {SimpleP2P.Instance.GetConnectionCount()}");
|
|
if (lobby.IsLobbyOwner())
|
|
{
|
|
foreach (var kv in lobby.GetAllMemberInfo())
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
InspectorUtils.InspectorTextWidthRich($"{kv.Value.Name}");
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("踢出"))
|
|
{
|
|
lobby.KickMember(kv.Key);
|
|
}
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
}
|
|
|
|
if (lobby.IsInitialized())
|
|
{
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich($"测试按钮");
|
|
EditorGUILayout.BeginHorizontal();
|
|
// 房间操作按钮
|
|
if (!lobby.IsInLobby())
|
|
{
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("创建房间"))
|
|
{
|
|
lobby.CreateLobby();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("离开房间")) lobby.LeaveLobby();
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("测试")) GameNetSender.Instance.BroadcastString("testtesttest");
|
|
if (lobby.IsLobbyOwner())
|
|
{
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("设置房间公开")) lobby.SetLobbyPublic();
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("设置房间私密")) lobby.SetLobbyFriendsOnly();
|
|
}
|
|
}
|
|
EditorGUILayout.EndHorizontal();
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
|
|
if (lobby.IsInLobby())
|
|
{
|
|
// 好友操作
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich($"好友列表");
|
|
var friends = lobby.GetOnlineFriendsDict();
|
|
foreach (var kv in friends)
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
InspectorUtils.InspectorTextWidthRich($"{kv.Value.Name}");
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("邀请"))
|
|
{
|
|
lobby.InviteFriend(kv.Key);
|
|
}
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
}
|
|
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich($"测试改阵营");
|
|
var selfMemberId = LobbyManager.Instance.Lobby.GetSelfMemberId();
|
|
var civ = Main.Instance.MapConfig.GetMemberCiv(selfMemberId);
|
|
if (civ != null)
|
|
{
|
|
EditorGUILayout.BeginHorizontal();
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("改1")) civ.CivId = 1;
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("改2")) civ.CivId = 2;
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("改3")) civ.CivId = 3;
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("改4")) civ.CivId = 4;
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
}
|
|
|
|
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
|
EditorGUILayout.BeginHorizontal();
|
|
InspectorUtils.InspectorTextWidthRich($"服务器上的房间信息");
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("搜索")) lobby.SearchPublicLobbies();
|
|
EditorGUILayout.EndHorizontal();
|
|
|
|
foreach (var lobbyInfo in lobby.LobbyListInfos)
|
|
{
|
|
EditorGUILayout.BeginVertical(_redBoxStyle);
|
|
InspectorUtils.InspectorTextWidthRich($"LobbyId : {lobbyInfo.LobbyId}");
|
|
InspectorUtils.InspectorTextWidthRich($"OwnerId : {lobbyInfo.OwnerId}");
|
|
InspectorUtils.InspectorTextWidthRich($"OwnerName : {lobbyInfo.OwnerName}");
|
|
InspectorUtils.InspectorTextWidthRich($"RoomName : {lobbyInfo.RoomName}");
|
|
InspectorUtils.InspectorTextWidthRich($"Version : {lobbyInfo.Version}");
|
|
InspectorUtils.InspectorTextWidthRich($"CurrentPlayers : {lobbyInfo.CurrentPlayers}");
|
|
InspectorUtils.InspectorTextWidthRich($"MaxPlayers : {lobbyInfo.MaxPlayers}");
|
|
InspectorUtils.InspectorTextWidthRich($"GameState : {lobbyInfo.GameState}");
|
|
if (InspectorUtils.InspectorButtonWithTextWidth("加入此房间"))
|
|
LobbyManager.Instance.Lobby.JoinLobbyById(lobbyInfo.LobbyId);
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
|
|
EditorGUILayout.EndScrollView();
|
|
}
|
|
}
|
|
} |