DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
BotStates.c
См. документацию.
1
10class BotStateBase
11{
16
17 void BotStateBase (Bot bot = NULL, BotStateBase parent = NULL) { m_Bot = bot; m_Owner = bot.m_Owner; m_ParentState = parent; }
18
20
24 void SetParentState (BotStateBase parent) { m_ParentState = parent; }
29
30 bool HasFSM () { return m_FSM != NULL; }
31 BotFSM GetFSM () { return m_FSM; }
32
34 {
35 if (HasFSM())
36 return m_FSM.ProcessEvent(e);
37 return false;
38 }
39
44 {
45 if (HasFSM())
46 m_FSM.AddTransition(t);
47 else
48 Error("[botfsm] adding transition to state without FSM. Configure FSM first.");
49 }
50
51
58 {
59 if (HasFSM() && !m_FSM.IsRunning())
60 {
61 botDebugPrint("[botfsm] { " + this.Type().ToString() + " Has Sub-FSM! Starting submachine...");
62 m_FSM.Start(e);
63 }
64 else
65 botDebugPrint("[botfsm] { " + this.Type().ToString());
66 }
67
73 void OnUpdate (float dt)
74 {
75 if (HasFSM() && m_FSM.IsRunning())
76 m_FSM.GetCurrentState().OnUpdate(dt);
77 }
78
84 {
85 if (HasFSM() && m_FSM.IsRunning())
86 {
87 botDebugPrint("[botfsm] OnAbort " + this.Type().ToString() + " Has Sub-FSM! Aborting submachine...");
88 m_FSM.Abort(e);
89 }
90 botDebugPrint("[botfsm] } ABORTED " + this.Type().ToString());
91 }
92
98 {
99 botDebugPrint("[botfsm] } " + this.Type().ToString());
100 }
101
106 bool IsWaitingForActionFinish () { return HasFSM() && m_FSM.IsRunning() && m_FSM.GetCurrentState().IsWaitingForActionFinish(); }
107
112 bool IsIdle () { return false; }
113
120
127};
128
130{
131 void BotStateIdle (Bot bot = NULL, BotStateBase parent = NULL) { m_Bot = bot; m_Owner = m_Bot.m_Owner; m_ParentState = parent; }
132
133 override bool IsIdle () { return true; }
134};
void botDebugPrint(string s)
Определения Bot.c:122
proto string ToString()
string Type
Определения JsonDataContaminatedArea.c:11
represents event that triggers transition from state to state
Определения BotEvents.c:5
Bot Finite State Machine (Hierarchical)
Определения Bot.c:19
BotStateBase m_ParentState
bot that this state belongs to
Определения BotStates.c:14
PlayerBase m_Owner
Определения BotStates.c:12
BotFSM GetFSM()
Определения BotStates.c:31
void OnEntry(BotEventBase e)
Определения BotStates.c:57
void BotStateBase(Bot bot=NULL, BotStateBase parent=NULL)
nested state machine (or null)
Определения BotStates.c:17
bool IsWaitingForActionFinish()
waiting for active animation action/actionType finish
Определения BotStates.c:106
void OnUpdate(float dt)
Определения BotStates.c:73
ref BotFSM m_FSM
hierarchical parent state of this state (or null)
Определения BotStates.c:15
void OnAbort(BotEventBase e)
Определения BotStates.c:83
BotStateBase GetParentState()
Определения BotStates.c:28
void OnSubMachineChanged(BotStateBase src, BotStateBase dst)
called when sub-machine has changed its state
Определения BotStates.c:119
void AddTransition(FSMTransition< BotStateBase, BotEventBase, BotActionBase, BotGuardBase > t)
adds transition into m_FSM transition table
Определения BotStates.c:43
bool HasFSM()
Определения BotStates.c:30
PlayerBase GetPlayerOwner()
Определения BotStates.c:19
bool IsIdle()
idle state does not expect any animation events
Определения BotStates.c:112
void SetParentState(BotStateBase parent)
allows construction of hierarchical state machine
Определения BotStates.c:24
void OnStateChanged(BotStateBase src, BotStateBase dst)
called on current state when state machine has changed its state
Определения BotStates.c:126
bool ProcessEvent(BotEventBase e)
Определения BotStates.c:33
void OnExit(BotEventBase e)
Определения BotStates.c:97
Bot m_Bot
man that this state belongs to
Определения BotStates.c:13
represent weapon state base
Определения Bot_Hunt.c:16
void BotStateIdle(Bot bot=NULL, BotStateBase parent=NULL)
Определения BotStates.c:131
override bool IsIdle()
Определения BotStates.c:133
represents transition src -— event[guard]/action -—|> dst
Определения PlayerBaseClient.c:2
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90