OROCHI
 
Loading...
Searching...
No Matches
GxModUnitActionPlanning.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CHARACTER_NAMESPACE_BEGIN()
14//===========================================================================
16//===========================================================================
18{
19 //-----------------------------------------------------------
21 //-----------------------------------------------------------
23public:
24 // RTTI宣言
26 // GxClassBase継承クラス用禁止宣言
29 enum class STATE
30 {
31 END,
32 SET,
33 WAIT,
34 };
35
37 static constexpr u32 ATTRIBUTE_CONTINUE_INVALID = 1 << 0;
39 static constexpr u32 ATTRIBUTE_INTERRUPT = 1 << 1;
40private:
42 enum class CREATE_POSITION
43 {
44 TOP,
45 BOTTOM,
46 };
47
49 //-----------------------------------------------------------
51 //-----------------------------------------------------------
53public:
57 ~GxModUnitActionPlanning(void) override;
58
60 //-----------------------------------------------------------
62 //-----------------------------------------------------------
64public:
66 void preAsyncUpdate(void) override;
67
69 void addTop(const GxUnitCharacterBase::GxAction& action, u32 attribute = 0);
71 void addBottom(const GxUnitCharacterBase::GxAction& action, u32 attribute = 0);
73 void addBottomPlanSet(u32 index);
75 void eraseTop(void);
77 void eraseAll(void);
78private:
80 GxUnitCharacterBase::GxAction* createPlan(const GxUnitCharacterBase::GxAction& action, u32 attribute, CREATE_POSITION createPosition);
81
83 //-----------------------------------------------------------
85 //-----------------------------------------------------------
87public:
89 GX_FORCE_INLINE static const GxRtti& getOwnerDerivedRtti(void) { return GxUnitCharacterBase::GX_RTTI; }
91 GxUnitCharacterBase::GxAction* getAction(u32 index) const;
93 constexpr u32 getCount(void) const { return _actionList.getCount(); }
95 GX_FORCE_INLINE b32 isState(STATE state) const { return _state == state; }
97 constexpr void setState(STATE state){ _state = state; }
99 constexpr GxResActionPlanning* getResource(void) { return _pResource; }
101 void setResource(GxResActionPlanning* pResource);
103 void getPropertyResource(void* const pValue);
105 void setPropertyResource(const void* const pValue);
106
108 //-----------------------------------------------------------
110 //-----------------------------------------------------------
112private:
113 GxResActionPlanning* _pResource;
114 GxArrayClassBase _actionList;
115 f32 _timer;
116 STATE _state;
117
119};
120
121GX_CHARACTER_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
配列クラス
Definition GxArrayClassBase.h:18
予約行動クラス
Definition GxModUnitActionPlanning.h:18
GX_FORCE_INLINE b32 isState(STATE state) const
状態を取得
Definition GxModUnitActionPlanning.h:95
STATE
状態定義
Definition GxModUnitActionPlanning.h:30
constexpr u32 getCount(void) const
予約数を取得
Definition GxModUnitActionPlanning.h:93
constexpr void setState(STATE state)
状態を設定
Definition GxModUnitActionPlanning.h:97
constexpr GxResActionPlanning * getResource(void)
リソース取得
Definition GxModUnitActionPlanning.h:99
static GX_FORCE_INLINE const GxRtti & getOwnerDerivedRtti(void)
所持者に必要な継承RTTIを取得
Definition GxModUnitActionPlanning.h:89
ユニットモジュール基礎クラス
Definition GxModUnitBase.h:22
予約行動セットリソースクラス
Definition GxResActionPlanning.h:18
実行時型情報クラス
Definition GxRtti.h:154
アクション構造体
Definition GxUnitCharacterBase.h:42
32bitブーリアン
Definition GxDefine.h:173