206 lines
4.3 KiB
C#
206 lines
4.3 KiB
C#
/*
|
|
* @Author: 白哉
|
|
* @Description:
|
|
* @Date: 2025年09月16日 星期二 16:09:43
|
|
* @Modify:
|
|
*/
|
|
|
|
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace TH1_Logic.Net
|
|
{
|
|
// 房间状态
|
|
public enum LobbyState
|
|
{
|
|
None, // 未在房间中
|
|
Creating, // 正在创建房间
|
|
Joining, // 正在加入房间
|
|
InLobby, // 在房间中
|
|
Leaving // 正在离开房间
|
|
}
|
|
|
|
|
|
public interface ILobby
|
|
{
|
|
public void Init();
|
|
public void Update();
|
|
|
|
public void Cleanup();
|
|
|
|
// 获取在线好友列表
|
|
public Dictionary<ulong, MemberInfo> GetOnlineFriendsDict();
|
|
|
|
// 是否初始化完毕
|
|
public bool IsInitialized();
|
|
|
|
// 邀请好友
|
|
public void InviteFriend(ulong memberId);
|
|
|
|
// 踢出成员
|
|
public void KickMember(ulong memberId);
|
|
|
|
// 创建房间
|
|
public void CreateFriendsLobby(int maxMembers = 4);
|
|
|
|
// 离开当前房间
|
|
public void LeaveLobby();
|
|
|
|
// 获取房间所有成员
|
|
public List<ulong> GetAllMemberIds();
|
|
|
|
// 获取房间所有成员信息
|
|
public Dictionary<ulong, MemberInfo> GetAllMemberInfo();
|
|
|
|
// 获取成员数量
|
|
public int GetMemberCount();
|
|
|
|
// 获取最大成员数
|
|
public int GetMemberLimit();
|
|
|
|
// 判断成员是否在房间中
|
|
public bool IsMemberInLobby(ulong memberId);
|
|
|
|
// 获取自己的 memberId
|
|
public ulong GetSelfMemberId();
|
|
|
|
// 获取房主的 memberId
|
|
public ulong GetLobbyOwnerId();
|
|
|
|
// 获取自己的房间状态
|
|
public LobbyState GetCurState();
|
|
|
|
// 获取自己是不是房主
|
|
public bool IsLobbyOwner();
|
|
|
|
// 获取自己在不在房间中
|
|
public bool IsInLobby();
|
|
|
|
// 发送P2P消息
|
|
public bool SendMessageToPeer(ulong member, byte[] data, bool reliable = true);
|
|
|
|
// 广播P2P消息
|
|
public void BroadcastMessage(byte[] data, bool reliable = true);
|
|
}
|
|
|
|
|
|
public class LobbyBase : ILobby
|
|
{
|
|
public void LeaveLobby()
|
|
{
|
|
|
|
}
|
|
|
|
// 获取房间所有成员
|
|
public List<ulong> GetAllMemberIds()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public Dictionary<ulong, MemberInfo> GetAllMemberInfo()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public void Init()
|
|
{
|
|
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
|
|
}
|
|
|
|
public void Cleanup()
|
|
{
|
|
|
|
}
|
|
|
|
public Texture2D GetMemberAvatar(ulong memberId)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public bool IsInitialized()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public void InviteFriend(ulong memberId)
|
|
{
|
|
|
|
}
|
|
|
|
public void KickMember(ulong memberId)
|
|
{
|
|
|
|
}
|
|
|
|
public Dictionary<ulong, MemberInfo> GetOnlineFriendsDict()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public void CreateFriendsLobby(int maxMembers = 4)
|
|
{
|
|
|
|
}
|
|
|
|
// 获取成员数量
|
|
public int GetMemberCount()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
// 获取最大成员数
|
|
public int GetMemberLimit()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
// 判断成员是否在房间中
|
|
public bool IsMemberInLobby(ulong memberId)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// 获取自己的 memberId
|
|
public ulong GetSelfMemberId()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
// 获取房主的 memberId
|
|
public ulong GetLobbyOwnerId()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
public LobbyState GetCurState()
|
|
{
|
|
return LobbyState.None;
|
|
}
|
|
|
|
public bool IsLobbyOwner()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public bool IsInLobby()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public bool SendMessageToPeer(ulong member, byte[] data, bool reliable = true)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public void BroadcastMessage(byte[] data, bool reliable = true)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
} |