OROCHI
 
Loading...
Searching...
No Matches
GxSysUnitFlock.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CHARACTER_NAMESPACE_BEGIN()
13
14//===========================================================================
16//===========================================================================
18{
19 //-----------------------------------------------------------
21 //-----------------------------------------------------------
23public:
24 // RTTI宣言
25 GX_RTTI_ABSTRACT_CLASS(GxSysUnitFlock, GxSysUnit)
26 // GxClassBase継承クラス用禁止宣言
29 static constexpr u32 FLOCK_INITIAL_NUM = GxMath::VALUE_8;
30
32 //-----------------------------------------------------------
34 //-----------------------------------------------------------
36public:
38 GxSysUnitFlock(void);
40 ~GxSysUnitFlock(void) override;
42 b32 initialize(const GxClassBase* pInitializeInformation) override;
44 void terminate(void) override;
46 void preAsyncUpdate(void) override;
48 virtual GxFlock* allocateObjectFlock(void);
49
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55
57 GxFlock* createFlock(GxUnitCharacterBase* pCharacter, u32 id = GxFlock::INVALID_ID);
59 GX_FORCE_INLINE void leaveMember(GxUnitCharacterBase* pCharacter){ pCharacter->setFlock(nullptr); }
61 GxFlock* getFlock(u32 id);
63 GxFlock* getNearFlock(const GxVector3& position);
64#if GX_DEVELOP
66 GxFlock* getFlockIndex(u32 index);
68 GX_FORCE_INLINE GxArrayClassBase* getFlockList(void){ return &_flockList; }
69#endif //GX_DEVELOP
71 void eraseFlock(GxFlock* pFlock);
72protected:
74 virtual void setTargetFlock(GxFlock* pFlock);
75
77 //-----------------------------------------------------------
79 //-----------------------------------------------------------
81private:
83 void eraseAllFlock(void);
85 u32 getFreeId(void);
87 b32 isFreeId(u32 id);
88
90 //-----------------------------------------------------------
92 //-----------------------------------------------------------
94private:
95 GxArrayClassBase _flockList;
96
98};
99
100// アクセスインターフェース
101GX_FORCE_INLINE GxSysUnitFlock* getGxSysUnitFlock(void){ return static_cast<GxSysUnitFlock*>(getGxSysUnit()); }
102
103GX_CHARACTER_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
配列クラス
Definition GxArrayClassBase.h:18
オブジェクト基底クラス
Definition GxBase.h:88
群集
Definition GxFlock.h:18
算術演算クラス
Definition GxMath.h:84
群集管理システム
Definition GxSysUnitFlock.h:18
ユニットシステムクラス
Definition GxSysUnit.h:64
キャラクター基礎ユニット
Definition GxUnitCharacterBase.h:20
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173