DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ Init()

override void HumanInventoryWithFSM::Init ( )
inlineprotected

См. определение в файле HumanInventoryWithFSM.c строка 26

27 {
28 // setup state machine
29 if (LogManager.IsInventoryHFSMLogEnable()) hndDebugPrint("[hndfsm] Initializing Human Inventory FSM");
30
31 // basic states
33
34 // events
35 HandEventBase __T__ = new HandEventTake;
36 HandEventBase __D__ = new HandEventDrop;
37 HandEventBase __Tw_ = new HandEventThrow;
38 HandEventBase __M__ = new HandEventMoveTo;
39 HandEventBase __W__ = new HandEventSwap;
40 HandEventBase __F__ = new HandEventForceSwap;
41 HandEventBase __X__ = new HandEventDestroy;
42 HandEventBase __Xd_ = new HandEventDestroyed;
43 HandEventBase __R__ = new HandEventDestroyAndReplaceWithNew;
44 HandEventBase __Re_ = new HandEventDestroyAndReplaceWithNewElsewhere;
45 HandEventBase __Rh_ = new HandEventDestroyElsewhereAndReplaceWithNewInHands;
46 HandEventBase __Rd_ = new HandEventReplaced;
47 HandEventBase __Cd_ = new HandEventCreated;
48 HandEventBase _fin_ = new HandEventHumanCommandActionFinished;
49 HandEventBase _abt_ = new HandEventHumanCommandActionAborted;
50
51
52 HandReplacingItemInHands replacing = new HandReplacingItemInHands(GetManOwner());
53 HandReplacingItemInHands replacingElsewhere = new HandReplacingItemInHands(GetManOwner());
54 HandReplacingItemElsewhereWithNewInHands replacingElsewhere3 = new HandReplacingItemElsewhereWithNewInHands(GetManOwner());
55
56 // setup transitions
57 m_FSM.AddTransition(new HandTransition( m_Empty , __T__, m_Equipped, new HandActionTake, new HandGuardHasItemInEvent(GetManOwner())));
58 m_FSM.AddTransition(new HandTransition( m_Empty , __Cd_, m_Equipped, new HandActionCreated, new HandGuardHasItemInEvent(GetManOwner())));
59
60 m_FSM.AddTransition(new HandTransition(m_Equipped, __D__, m_Empty, new HandActionDrop, null));
61 m_FSM.AddTransition(new HandTransition(m_Equipped, __Tw_, m_Empty, new HandActionThrow, null));
62 m_FSM.AddTransition(new HandTransition(m_Equipped, __M__, m_Empty, new HandActionMoveTo, new HandGuardAnd(new HandGuardHasItemInHands(GetManOwner()), new HandGuardCanMove(GetManOwner()))));
63 m_FSM.AddTransition(new HandTransition(m_Equipped, __X__, m_Empty, new HandActionDestroy, new HandGuardHasItemInHands(GetManOwner())));
64 m_FSM.AddTransition(new HandTransition(m_Equipped, __Xd_, m_Empty, new HandActionDestroyed, new HandGuardHasDestroyedItemInHands(GetManOwner())));
65 m_FSM.AddTransition(new HandTransition(m_Equipped, __Xd_, m_Equipped, new HandActionDestroyed, new HandGuardNot(new HandGuardHasDestroyedItemInHands(GetManOwner()))));
66
67 m_FSM.AddTransition(new HandTransition(m_Equipped, __R__, replacing));
68 m_FSM.AddTransition(new HandTransition(replacing, _fin_, m_Equipped));
69 replacing.AddTransition(new HandTransition(replacing.m_Replacing, _abt_, m_Equipped));
70
71 m_FSM.AddTransition(new HandTransition(m_Equipped, __Re_, replacingElsewhere));
72 m_FSM.AddTransition(new HandTransition(replacingElsewhere, _fin_, m_Empty));
73 replacingElsewhere.AddTransition(new HandTransition(replacingElsewhere.m_Replacing, _abt_, m_Equipped));
74
75 m_FSM.AddTransition(new HandTransition(m_Empty, __Rh_, replacingElsewhere3));
76 m_FSM.AddTransition(new HandTransition(replacingElsewhere3, _fin_, m_Equipped));
77 replacingElsewhere3.AddTransition(new HandTransition(replacingElsewhere3.m_Replacing, _abt_, m_Empty));
78
79 m_FSM.AddTransition(new HandTransition(m_Equipped, __Rd_, m_Equipped, new HandActionReplaced, null));
80 m_FSM.AddTransition(new HandTransition(m_Equipped, __W__, m_Equipped, new HandActionSwap, new HandGuardAnd(new HandGuardHasItemInHands(GetManOwner()), new HandGuardCanSwap(GetManOwner()))));
81 m_FSM.AddTransition(new HandTransition(m_Equipped, __F__, m_Equipped, new HandActionForceSwap, new HandGuardAnd(new HandGuardHasItemInHands(GetManOwner()), new HandGuardCanForceSwap(GetManOwner()))));
82
83 // start FSM
84 m_FSM.SetInitialState(m_Empty);
85 m_FSM.Start();
86
87 super.Init();
88 }
void HandEventBase(Man p=null, InventoryLocation src=null)
Определения Hand_Events.c:52
void hndDebugPrint(string s)
Определения HandFSM.c:1
FSMTransition< HandStateBase, HandEventBase, HandActionBase, HandGuardBase > HandTransition
Определения HandFSM.c:28
Man GetManOwner()
Определения HumanInventory.c:102
ref HandFSM m_FSM
Определения HumanInventoryWithFSM.c:7
void CreateStableStates()
Определения HumanInventoryWithFSM.c:16
ref HandStateBase m_Equipped
Определения HumanInventoryWithFSM.c:9
ref HandStateBase m_Empty
hand slot state machine
Определения HumanInventoryWithFSM.c:8

Перекрестные ссылки CreateStableStates(), HumanInventory::GetManOwner(), hndDebugPrint(), LogManager::IsInventoryHFSMLogEnable(), m_Empty, m_Equipped и m_FSM.