DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
HandAnimatedSwapping.c
См. документацию.
1class HandSwappingAnimated_Show extends HandForceSwappingAnimated_Show
2{
3};
4
5
6class HandAnimatedSwapping extends HandStateBase
7{
8 ref InventoryLocation m_Src1 = null;
9 ref InventoryLocation m_Src2 = null;
10 ref InventoryLocation m_Dst1 = null;
11 ref InventoryLocation m_Dst2 = null;
12
13 ref HandStartHidingAnimated m_Hide;
14 ref HandSwappingAnimated_Show m_Show;
15
16 void HandAnimatedSwapping(Man player = null, HandStateBase parent = null)
17 {
18 // setup nested state machine
19 m_Hide = new HandStartHidingAnimated(player, this, WeaponActions.HIDE, -1);
20 m_Show = new HandSwappingAnimated_Show(player, this, WeaponActions.SHOW, -1);
21
22 // events:
23 HandEventBase _fin_ = new HandEventHumanCommandActionFinished;
24 HandEventBase _AEh_ = new HandAnimEventChanged;
25
26 m_FSM = new HandFSM(this); // @NOTE: set owner of the submachine fsm
27
28 m_FSM.AddTransition(new HandTransition( m_Hide, _AEh_, m_Show ));
29 m_FSM.AddTransition(new HandTransition( m_Show, _fin_, null ));
30
31 m_FSM.SetInitialState(m_Hide);
32 }
33
34 override void OnEntry(HandEventBase e)
35 {
36 HandEventSwap es = HandEventSwap.Cast(e);
37 if (es)
38 {
39 m_Src1 = es.m_Src2;
40 m_Src2 = es.GetSrc();
41 m_Dst1 = es.m_Dst2;
42 m_Dst2 = es.GetDst();
43
44 m_Show.m_Src1 = m_Src1;
45 m_Show.m_Src2 = m_Src2;
46 m_Show.m_Dst1 = m_Dst1;
47 m_Show.m_Dst2 = m_Dst2;
48
49 m_Hide.m_ActionType = es.m_AnimationID;
50 m_Show.m_ActionType = es.m_Animation2ID;
51
52 if (!GetGame().IsDedicatedServer())
53 {
54 m_Player.GetHumanInventory().AddInventoryReservationEx(m_Dst2.GetItem(), m_Dst2, GameInventory.c_InventoryReservationTimeoutShortMS);
55 m_Player.GetHumanInventory().AddInventoryReservationEx(m_Dst1.GetItem(), m_Dst1, GameInventory.c_InventoryReservationTimeoutShortMS);
56 }
57 }
58
59 super.OnEntry(e); // @NOTE: super at the end (prevent override from submachine start)
60 }
61
62 override void OnAbort(HandEventBase e)
63 {
64 if ( !GetGame().IsDedicatedServer())
65 {
66 if (m_Dst2)
67 {
68 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst2.GetItem(), m_Dst2);
69 }
70 if (m_Dst1)
71 {
72 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst1.GetItem(), m_Dst1);
73 }
74 }
75 else
76 {
77 if (m_Dst2)
78 {
80 }
81 if (m_Dst1)
82 {
84 }
85 }
86
87 m_Src1 = null;
88 m_Src2 = null;
89 m_Dst1 = null;
90 m_Dst2 = null;
91
92 super.OnAbort(e);
93 }
94
95 override void OnExit(HandEventBase e)
96 {
97 if ( !GetGame().IsDedicatedServer())
98 {
99 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst2.GetItem(), m_Dst2);
100 m_Player.GetHumanInventory().ClearInventoryReservationEx(m_Dst1.GetItem(), m_Dst1);
101 }
102
103 m_Src1 = null;
104 m_Src2 = null;
105 m_Dst1 = null;
106 m_Dst2 = null;
107
108 super.OnExit(e);
109 }
110};
111
FSMTransition< HandStateBase, HandEventBase, HandActionBase, HandGuardBase > HandTransition
Определения HandFSM.c:28
bool ClearJunctureEx(Man player, notnull EntityAI item)
Определения Game.c:762
const int c_InventoryReservationTimeoutShortMS
Определения Inventory.c:713
script counterpart to engine's class Inventory
Определения Inventory.c:79
Abstracted event, not to be used, only inherited.
Определения Hand_Events.c:209
Определения Hand_Events.c:679
Hand finite state machine.
override void OnExit(HandEventBase e)
Определения HandAnimatedSwapping.c:95
void HandStateBase(Man player=NULL, HandStateBase parent=NULL)
nested state machine (or null)
Определения HandStateBase.c:11
override void OnEntry(HandEventBase e)
Определения HandAnimatedSwapping.c:34
Man m_Player
Определения HandStateBase.c:8
ref InventoryLocation m_Dst1
Определения HandAnimatedForceSwapping.c:125
ref InventoryLocation m_Src1
Определения HandAnimatedForceSwapping.c:123
ref HandFSM m_FSM
hierarchical parent state of this state (or null)
Определения HandStateBase.c:10
void HandAnimatedSwapping(Man player=null, HandStateBase parent=null)
Определения HandAnimatedSwapping.c:16
ref HandAnimatedMoveToDst_W4T_Basic m_Hide
Определения HandAnimatedForceSwapping.c:130
ref HandAnimatedMoveToDst_W4T m_Show
Определения HandAnimatedForceSwapping.c:129
override void OnAbort(HandEventBase e)
Определения HandAnimatedSwapping.c:62
ref InventoryLocation m_Dst2
Определения HandAnimatedForceSwapping.c:126
ref InventoryLocation m_Src2
Определения HandAnimatedForceSwapping.c:124
represent hand state base
Определения HandAnimatedForceSwapping.c:4
InventoryLocation.
Определения InventoryLocation.c:29
proto native CGame GetGame()
WeaponActions
actions
Определения human.c:816