Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_TaskSolverBase.c
Go to the documentation of this file.
3typedef ScriptInvokerBase<OnTaskSolverStateChangedDelegate> OnTaskSolverStateChangedInvoker;
4
6{
7 protected SCR_Task m_Task;
10 protected int m_iId = -1;
11
13
14 //------------------------------------------------------------------------------------------------
15 int GetId()
16 {
17 return m_iId;
18 }
19
20 //------------------------------------------------------------------------------------------------
21 void SetId(int id)
22 {
23 if (m_iId == id)
24 return;
25
26 m_iId = id;
27 }
28
29 //------------------------------------------------------------------------------------------------
30 void SetAiGroup(SCR_AIGroup aiGroup)
31 {
32 if (m_AiGroup == aiGroup)
33 return;
34
35 m_AiGroup = aiGroup;
36 }
37
38 //------------------------------------------------------------------------------------------------
46
47 //------------------------------------------------------------------------------------------------
49 {
50 return m_Task;
51 }
52
53 //------------------------------------------------------------------------------------------------
55 {
56 return m_eState;
57 }
58
59 //------------------------------------------------------------------------------------------------
62 {
63 SetState(SCR_ETaskSolverState.IN_PROGRESS);
64 }
65
66 //------------------------------------------------------------------------------------------------
69 {
71 }
72
73 //------------------------------------------------------------------------------------------------
74 void Update(float timeSlice);
75
76 //------------------------------------------------------------------------------------------------
77 protected void SetState(SCR_ETaskSolverState state)
78 {
79 if (m_eState == state)
80 return;
81
82 string previousStateName = SCR_Enum.GetEnumName(SCR_ETaskSolverState, m_eState);
83 string currentStateName = SCR_Enum.GetEnumName(SCR_ETaskSolverState, state);
84 PrintFormat("SCR_TaskSolverBase: Changed state from %1 to %2.", previousStateName, currentStateName, level: LogLevel.DEBUG);
85
86 m_eState = state;
87
89 m_OnStateChanged.Invoke(this, state);
90 }
91
92 //------------------------------------------------------------------------------------------------
94 protected void CompleteTaskSolving()
95 {
97 }
98
99 //------------------------------------------------------------------------------------------------
101 {
102 if (task != m_Task)
103 return;
104
105 if (newState != SCR_ETaskState.COMPLETED && newState != SCR_ETaskState.FAILED && newState != SCR_ETaskState.CANCELLED)
106 return;
107
109 }
110
111 //------------------------------------------------------------------------------------------------
113 {
114 SetState(SCR_ETaskSolverState.NOT_STARTED);
115
116 m_Task = task;
117
118 SCR_Task.GetOnTaskStateChanged().Insert(OnTaskStateChanged);
119 }
120
121 //------------------------------------------------------------------------------------------------
122 void Deinit()
123 {
124 SCR_Task.GetOnTaskStateChanged().Remove(OnTaskStateChanged);
125 }
126}
AddonBuildInfoTool id
SCR_ETaskSolverState
void SCR_Task(IEntitySource src, IEntity parent)
Definition SCR_Task.c:1938
SCR_ETaskState
Definition SCR_Task.c:3
ScriptInvokerBase< OnTaskSolverStateChangedDelegate > OnTaskSolverStateChangedInvoker
func OnTaskSolverStateChangedDelegate
ref OnTaskSolverStateChangedInvoker m_OnStateChanged
void StartTaskSolving()
Marks the task solver as in progress.
void Init(SCR_Task task, SCR_TaskSolverContext context)
void SetState(SCR_ETaskSolverState state)
SCR_ETaskSolverState GetState()
SCR_ETaskSolverState m_eState
void FailTaskSolving()
Marks the task solver as failed.
void SetAiGroup(SCR_AIGroup aiGroup)
void CompleteTaskSolving()
Marks the task solver as completed.
void Update(float timeSlice)
OnTaskSolverStateChangedInvoker GetOnStateChanged()
void OnTaskStateChanged(SCR_Task task, SCR_ETaskState newState)
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)