GameServer
PlayerManager.h
[詳解]
1 #ifndef __PLAYERMANAGER_H__
2 #define __PLAYERMANAGER_H__
3 
4 #include <boost/unordered_map.hpp>
5 #include "Math/Vector3D.h"
6 #include "WeakPtrDefine.h"
7 
8 class PacketBase;
9 class Client;
10 class PacketPlayerList;
11 
16 {
17 
18 private: // 別名定義.
19 
20  typedef unordered_map<u32, PlayerCharacterPtr> PlayerMap;
21 
22 public:
23 
24  // コンストラクタ
25  PlayerManager();
26 
27  // デストラクタ
29 
30  // 毎フレームの処理.
31  void Poll(s32 DeltaTime);
32 
33  // 追加.
34  void Add(u32 Uuid, PlayerCharacterPtr pPlayer);
35 
36  // 削除.
37  void Remove(u32 Uuid);
38 
39  // 取得.
40  PlayerCharacterPtr Get(u32 Uuid) const;
41 
42  // 移動を受信した。
43  void OnRecvMove(u32 Uuid, float X, float Y, float Z, float Rot);
44 
45  // パケットをブロードキャスト
46  void BroadcastPacket(PacketBase *pPacket, Client *pIgnoreClient = NULL);
47 
48  // 範囲を指定したパケットのブロードキャスト
49  void BroadcastPacketWithRange(PacketBase *pPacket, const Vector3D &Center, float Range, Client *pIgnoreClient = NULL);
50 
51  // プレイヤー数を取得.
52  u32 GetCount() const { return PlayerList.size(); }
53 
54  // CharacterPtrとして全取得.
55  void GetAllAsCharacterPtr(std::vector<CharacterPtr> &OutList) const;
56 
57 private:
58 
59  // プレイヤーマップ
60  PlayerMap PlayerList;
61 
62 
63  // プレイヤーリストパケットを生成.
64  void MakeListPacket(PacketPlayerList &Packet);
65 
66 };
67 
68 #endif // #ifndef __PLAYERMANAGER_H__
Definition: PlayerManager.h:15
void BroadcastPacketWithRange(PacketBase *pPacket, const Vector3D &Center, float Range, Client *pIgnoreClient=NULL)
Definition: PlayerManager.cpp:96
void Remove(u32 Uuid)
Definition: PlayerManager.cpp:55
void OnRecvMove(u32 Uuid, float X, float Y, float Z, float Rot)
Definition: PlayerManager.cpp:73
u32 GetCount() const
Definition: PlayerManager.h:52
Definition: Vector3D.h:8
~PlayerManager()
Definition: PlayerManager.h:28
int s32
Definition: TypeDefs.h:9
unsigned int u32
Definition: TypeDefs.h:10
void BroadcastPacket(PacketBase *pPacket, Client *pIgnoreClient=NULL)
Definition: PlayerManager.cpp:85
クライアントクラス
Definition: Client.h:26
プレイヤーリストパケット
Definition: PacketPlayerList.h:20
void GetAllAsCharacterPtr(std::vector< CharacterPtr > &OutList) const
Definition: PlayerManager.cpp:114
Definition: PacketBase.h:9
PlayerCharacterPtr Get(u32 Uuid) const
Definition: PlayerManager.cpp:65
PlayerManager()
Definition: PlayerManager.cpp:11
weak_ptr< PlayerCharacter > PlayerCharacterPtr
Definition: WeakPtrDefine.h:13
void Poll(s32 DeltaTime)
Definition: PlayerManager.cpp:16
void Add(u32 Uuid, PlayerCharacterPtr pPlayer)
Definition: PlayerManager.cpp:37