GameServer
AnpanManager.h
[詳解]
1 #ifndef __ANPANMANAGER_H__
2 #define __ANPANMANAGER_H__
3 
4 #include <boost/unordered_map.hpp>
5 #include <boost/function.hpp>
6 #include "WeakPtrDefine.h"
7 
8 class PacketAnpanList;
9 class AnpanPopArea;
10 class Vector3D;
11 
16 {
17 
18 private: // 別名定義.
19 
20  typedef shared_ptr<Anpan> AnpanSharedPtr;
21  typedef unordered_map<unsigned int, AnpanSharedPtr> AnpanMap;
22  typedef boost::function<void(unsigned int, AnpanPtr)> SpawnFunc;
23  typedef std::vector<AnpanPopArea *> AnpanPopAreaList;
24 
25 public:
26 
27  // コンストラクタ
28  AnpanManager();
29 
30  // デストラクタ
31  ~AnpanManager();
32 
33  // 初期化.
34  void Initialize(u32 AreaId);
35 
36  // 毎フレームの処理.
37  void Poll(int DeltaTime);
38 
39  // 取得.
40  AnpanPtr Get(u32 Uuid) const;
41 
42  // 生成時コールバックを設定.
43  void SetSpawnCallback(const SpawnFunc &InOnSpawn) { OnSpawn = InOnSpawn; }
44 
45  // アンパンリストパケットを生成.
46  void MakeListPacket(PacketAnpanList &Packet);
47 
48  // アンパンの数を取得.
49  u32 GetCount() const { return AnpanList.size(); }
50 
51  // 外部からSpawnさせる。
52  void Spawn(u32 MasterId, const Vector3D &Position);
53 
54  // CharacterPtrとして全取得.
55  void GetAllAsCharacterPtr(std::vector<CharacterPtr> &OutList) const;
56 
57 private:
58 
59  // アンパンリスト
60  AnpanMap AnpanList;
61 
62  // 次のUUID
63  unsigned int NextUuid;
64 
65  // 生成時コールバック
66  SpawnFunc OnSpawn;
67 
68  // ポップエリアリスト
69  AnpanPopAreaList PopAreaList;
70 
71 
72  // アンパン生成.
73  void SpawnAnpan(AnpanSharedPtr pAnpan);
74 
75  // 更新処理.
76  void Update(int DeltaTime);
77 
78 };
79 
80 #endif // #ifndef __ANPANMANAGER_H__
weak_ptr< Anpan > AnpanPtr
Definition: WeakPtrDefine.h:16
アンパンリストパケット
Definition: PacketAnpanList.h:20
void Spawn(u32 MasterId, const Vector3D &Position)
Definition: AnpanManager.cpp:70
AnpanManager()
Definition: AnpanManager.cpp:11
AnpanPtr Get(u32 Uuid) const
Definition: AnpanManager.cpp:49
void GetAllAsCharacterPtr(std::vector< CharacterPtr > &OutList) const
Definition: AnpanManager.cpp:78
~AnpanManager()
Definition: AnpanManager.cpp:17
Definition: AnpanManager.h:15
Definition: AnpanPopArea.h:14
Definition: Vector3D.h:8
void Poll(int DeltaTime)
Definition: AnpanManager.cpp:39
unsigned int u32
Definition: TypeDefs.h:10
u32 GetCount() const
Definition: AnpanManager.h:49
void MakeListPacket(PacketAnpanList &Packet)
Definition: AnpanManager.cpp:57
void SetSpawnCallback(const SpawnFunc &InOnSpawn)
Definition: AnpanManager.h:43
void Initialize(u32 AreaId)
Definition: AnpanManager.cpp:26