DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionManagerBase.c
См. документацию.
1class TSelectableActionInfoArray extends array<ref TSelectableActionInfo>
2{
3 bool IsSameAs(TSelectableActionInfoArray other)
4 {
5 if (this.Count() != other.Count())
6 {
7 return false;
8 }
9
10 for (int i = 0; i < Count(); ++i)
11 {
12 TSelectableActionInfo ai1 = this.Get(i);
13 TSelectableActionInfo ai2 = other.Get(i);
14
15 if (ai1.param2 != ai2.param2)
16 {
17 return false;
18 }
19
20 if (ai1.param3 != ai2.param3)
21 {
22 return false;
23 }
24 }
25
26 return true;
27 }
28}
29
31{
33
36
46 ref TSelectableActionInfoArray m_SelectableActions;
52 protected bool m_ActionWantEndRequest;
53 protected bool m_ActionInputWantEnd;
54 protected bool m_ActionsEnabled;
55 protected bool m_ActionsAvaibale;
56 protected bool m_IsRestrictedLookLimits; // restricts head look/aim limits while performing an action
57
58 //Pending actions waiting for acknowledgment
60
62
64 {
65 m_Player = player;
66 if (m_Player)
67 {
68 m_SelectableActions = new TSelectableActionInfoArray();
71
73
75 m_Interrupted = false;
76
78 if (!m_ActionsArray)
79 {
81 }
82
85 }
86
87 m_ActionsEnabled = true;
88 m_ActionsAvaibale = true;
89 }
90
92 {
94 return m_CurrentActionData.m_Action;
95
96 return null;
97 }
98
100 {
102 return m_CurrentActionData.m_MainItem;
103
104 return null;
105 }
106
107 void EnableActions(bool enable)
108 {
109 m_ActionsEnabled = enable;
110 }
111
112 void Update(int pCurrentCommandID)
113 {
115 {
116 if (m_Interrupted)
117 {
119 }
121 {
122 m_CurrentActionData.m_Action.OnUpdate(m_CurrentActionData);
123 }
124 }
125 else if (m_Interrupted)
126 {
127 m_Interrupted = false;
128 }
129
130 if (m_CurrentActionData) // again, can be nulled meanwhile
131 {
133 if (action && action.IsFullBody(m_Player) && action.IsCameraLockOnPerform())
134 {
136 {
137 Vector2 angleUD = action.GetCameraUDAngle();
138
140 m_Player.SetLookLimits(angleUD.x, angleUD.y, -160, 160);
141 m_Player.SetAimLimits(angleUD.x, angleUD.y, -180, 180);
142 }
143
144 return;
145 }
146 }
147
149 {
151 m_Player.SetLookLimits(-85, 85, -160, 160);
152 m_Player.SetAimLimits(-85, 85, -180, 180);
153 }
154 }
155
156 void OnSyncJuncture(int pJunctureID, ParamsReadContext pCtx)
157 {
158 int AcknowledgmentID;
159 switch (pJunctureID)
160 {
162#ifdef ENABLE_LOGGING
164 {
165 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " SJ_ACTION_ACK_ACCEPT", this.ToString() , "n/a", "OnSyncJuncture", m_Player.ToString() );
166 }
167#endif
168 pCtx.Read(AcknowledgmentID);
169 if (m_CurrentActionData && AcknowledgmentID == m_PendingActionAcknowledgmentID)
171 break;
173#ifdef ENABLE_LOGGING
175 {
176 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " SJ_ACTION_ACK_REJECT", this.ToString() , "n/a", "OnSyncJuncture", m_Player.ToString() );
177 }
178#endif
179 pCtx.Read(AcknowledgmentID);
180 if (m_CurrentActionData && AcknowledgmentID == m_PendingActionAcknowledgmentID)
182 break;
184#ifdef ENABLE_LOGGING
186 {
187 Debug.ActionLog("STS = " + m_Player.GetSimulationTimeStamp() + " SJ_ACTION_INTERRUPT", this.ToString() , "n/a", "OnSyncJuncture", m_Player.ToString() );
188 }
189#endif
190 m_Interrupted = true;
191 break;
192 }
193 }
194
197
198 static ActionBase GetActionVariant(typename actionName)
199 {
201 {
202 ActionBase base_action = m_ActionNameActionMap.Get(actionName);
203 ActionBase new_action = ActionBase.Cast(actionName.Spawn());
204
205 new_action.CreateConditionComponents();
206 new_action.SetID(base_action.GetID());
207 new_action.SetInput(base_action.GetInput());
208
209 return new_action;
210 }
211 return null;
212 }
213
214 static ActionBase GetAction(typename actionName)
215 {
217 return m_ActionNameActionMap.Get(actionName);
218
219 return null;
220 }
221
222 static ActionBase GetAction(int actionID)
223 {
224 return m_ActionsArray.Get(actionID);
225 }
226
231
236
237 TSelectableActionInfoArray GetSelectableActions()
238 {
239 return m_SelectableActions;
240 }
241
243 {
245 }
246
251 void SelectNextAction();
252 void SelectPrevAction();
255
260
261 //------------------------------------------------------
262 bool ActionPossibilityCheck(int pCurrentCommandID)
263 {
264 if (!m_ActionsEnabled || m_Player.IsSprinting() || m_Player.IsUnconscious() || m_Player.GetCommandModifier_Action() || m_Player.GetCommand_Action() || m_Player.IsEmotePlaying())
265 return false;
266
267 if (m_Player.GetWeaponManager().IsRunning() || m_Player.GetThrowing().IsThrowingAnimationPlaying() || m_Player.GetDayZPlayerInventory().IsProcessing() || m_Player.IsItemsToDelete() || m_Player.IsRolling())
268 return false;
269
270 return (pCurrentCommandID == DayZPlayerConstants.COMMANDID_ACTION || pCurrentCommandID == DayZPlayerConstants.COMMANDID_MOVE || pCurrentCommandID == DayZPlayerConstants.COMMANDID_SWIM || pCurrentCommandID == DayZPlayerConstants.COMMANDID_LADDER || pCurrentCommandID == DayZPlayerConstants.COMMANDID_VEHICLE);
271 }
272 //------------------------------------------------------
273 protected void SetActionContext(ActionTarget target, ItemBase item)
274 {
275 m_TestedActionTarget = target;
276 m_TestedActionItem = item;
277 }
278
279 //------------------------------------------------------
280
282 {
284 {
285 return m_CurrentActionData.m_State;
286 }
287 return UA_NONE;
288 }
289
290 //---------------------------------
291 // EVENTS
292 //---------------------------------
296
298 {
299 m_Interrupted = true;
300 }
301
303 {
305 {
306 if(g_Game.IsMultiplayer())
307 {
309 }
310 else
311 {
313 }
314 }
315 }
317
318 protected void LocalInterrupt()
319 {
321 m_CurrentActionData.m_Action.Interrupt(m_CurrentActionData);
322 else
323 m_Interrupted = false;
324 }
325
326 void OnInteractAction(); //Interact
327 void OnInstantAction(typename user_action_type, Param data = null);
328
330 {
332 m_CurrentActionData.m_Action.ActionCleanup(m_CurrentActionData);
333 m_CurrentActionData = NULL;
334
335 m_Player.ResetActionEndInput();
336 }
337
340
341 bool OnInputUserDataProcess(int userDataType, ParamsReadContext ctx)
342 {
343 return false;
344 }
345
347 {
349 return m_CurrentActionData.m_Action.GetProgress(m_CurrentActionData);
350
351 return 0.0;
352 }
353
355 {
357 return m_CurrentActionData.m_Action.GetProgressWidgetMultiplier(m_CurrentActionData);
358
359 return 1;
360 }
361
363 {
365 return m_CurrentActionData.m_Action.GetState(m_CurrentActionData);
366
367 return UA_NONE;
368 }
369
370 ActionReciveData GetReciveData()
371 {
372 return null;
373 }
374}
ActionOverrideData TSelectableActionInfo
void ActionBase()
Определения ActionBase.c:82
override ActionBase GetAction()
Определения ActionInput.c:506
override void SelectNextAction()
Определения ActionInput.c:519
override void SelectPrevAction()
Определения ActionInput.c:531
bool m_Interrupted
Определения ActionManagerBase.c:49
void RequestInterruptAction()
ItemBase m_SecondaryActionItem
Определения ActionManagerBase.c:42
ref ActionData m_CurrentActionData
Определения ActionManagerBase.c:61
ActionBase m_SecondaryAction
Определения ActionManagerBase.c:40
ActionTarget m_PrimaryActionTarget
Определения ActionManagerBase.c:38
bool m_TertiaryActionEnabled
Определения ActionManagerBase.c:45
void SelectFirstActionCategory()
void SetActionContext(ActionTarget target, ItemBase item)
Определения ActionManagerBase.c:273
bool IsSelectableActionsChanged()
Определения ActionManagerBase.c:256
bool m_ActionsEnabled
Определения ActionManagerBase.c:54
ItemBase GetRunningActionMainitem()
Определения ActionManagerBase.c:99
GetSelectedActionCategory()
int GetActionState()
Определения ActionManagerBase.c:362
ActionTarget m_TestedActionTarget
Определения ActionManagerBase.c:34
ActionBase GetContinuousAction()
Определения ActionManagerBase.c:227
void LocalInterrupt()
Определения ActionManagerBase.c:318
bool m_SelectableActionsHasChanged
Определения ActionManagerBase.c:48
void OnActionEnd()
Определения ActionManagerBase.c:329
void SelectNextActionCategory()
int GetSelectedActionIndex()
Определения ActionManagerBase.c:242
ActionTarget m_SecondaryActionTarget
Определения ActionManagerBase.c:41
bool m_ActionsAvaibale
Определения ActionManagerBase.c:55
void OnInstantAction(typename user_action_type, Param data=null)
static ActionBase GetActionVariant(typename actionName)
Определения ActionManagerBase.c:198
void OnContinuousCancel()
void EnableActions(bool enable)
Определения ActionManagerBase.c:107
ActionTarget FindActionTarget()
float GetACProgressWidgetMultiplier()
Определения ActionManagerBase.c:354
int m_SelectedActionIndex
Определения ActionManagerBase.c:47
void SelectPrevActionCategory()
void InterruptNoSync()
Определения ActionManagerBase.c:297
ActionBase GetSingleUseAction()
Определения ActionManagerBase.c:232
void OnSingleUse()
void OnContinuousStart()
bool m_IsRestrictedLookLimits
Определения ActionManagerBase.c:56
bool m_SecondaryActionEnabled
Определения ActionManagerBase.c:44
bool m_ActionInputWantEnd
Определения ActionManagerBase.c:53
TSelectableActionInfoArray GetSelectableActions()
Определения ActionManagerBase.c:237
void RequestEndAction()
bool ActionPossibilityCheck(int pCurrentCommandID)
Определения ActionManagerBase.c:262
void OnInteractAction()
ref TSelectableActionInfoArray m_SelectableActions
Определения ActionManagerBase.c:46
void EndOrInterruptCurrentAction()
void EndActionInput()
static ref array< ref ActionBase > m_ActionsArray
Определения ActionManagerBase.c:50
float GetActionComponentProgress()
Определения ActionManagerBase.c:346
ActionReciveData GetReciveData()
Определения ActionManagerBase.c:370
void ActionManagerBase(PlayerBase player)
Определения ActionManagerBase.c:63
ItemBase m_TestedActionItem
Определения ActionManagerBase.c:35
void Interrupt()
Определения ActionManagerBase.c:302
void StartDeliveredAction()
int m_PendingActionAcknowledgmentID
Определения ActionManagerBase.c:59
bool m_PrimaryActionEnabled
Определения ActionManagerBase.c:43
bool m_ActionWantEndRequest
Определения ActionManagerBase.c:52
void OnJumpStart()
ItemBase m_PrimaryActionItem
Определения ActionManagerBase.c:39
static ref map< typename, ActionBase > m_ActionNameActionMap
Определения ActionManagerBase.c:51
ActionBase m_PrimaryAction
Определения ActionManagerBase.c:37
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
bool OnInputUserDataProcess(int userDataType, ParamsReadContext ctx)
Определения EmoteManager.c:517
void OnSyncJuncture(int pJunctureID, ParamsReadContext pCtx)
Определения EmoteManager.c:560
DayZPlayer m_Player
Определения Hand_Events.c:42
override float Get()
Определения PlayerStatBase.c:134
@ Count
Определения RandomGeneratorSyncManager.c:8
bool ConstructActions(out array< ref ActionBase > actionsArray, out map< typename, ActionBase > actionNameActionMap)
Определения ActionConstructor.c:3
Vector2 GetCameraUDAngle()
Определения ActionContinuousBase.c:165
bool IsCameraLockOnPerform()
Определения ActionContinuousBase.c:158
Определения ActionBase.c:22
static const int SJ_ACTION_INTERRUPT
Определения DayZPlayerSyncJunctures.c:8
static const int SJ_ACTION_ACK_REJECT
Определения DayZPlayerSyncJunctures.c:13
static const int SJ_ACTION_ACK_ACCEPT
Определения DayZPlayerSyncJunctures.c:12
static void ActionLog(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Определения 3_Game/DayZ/tools/Debug.c:188
Определения 3_Game/DayZ/tools/Debug.c:2
static bool IsActionLogEnable()
Определения 3_Game/DayZ/tools/Debug.c:749
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
proto bool Read(void value_in)
float x
Определения Vector2.c:9
float y
Определения Vector2.c:10
Определения Vector2.c:2
bool IsSameAs(TSelectableActionInfoArray other)
Определения ActionManagerBase.c:3
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения Transport.c:70
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
const int UA_AM_ACCEPTED
Определения 3_Game/DayZ/constants.c:510
const int UA_AM_REJECTED
Определения 3_Game/DayZ/constants.c:511
const int UA_NONE
Определения 3_Game/DayZ/constants.c:494
const int UA_AM_PENDING
Определения 3_Game/DayZ/constants.c:509
proto native volatile void Update()
Определения PlayerSoundManager.c:125
proto native int GetRunningAction()
returns -1 when no action is running or RELOAD,MECHANISM, ....
Определения ActionManagerBase.c:91