2class InventoryActionHandler
14 const float MIN_DISTANCE_TO_INTERRUPT = 1.0;
15 const int IAH_SINGLE_USE = 1;
16 const int IAH_CONTINUOUS = 2;
26 m_useItemInHands =
false;
32 Object target_parent = null;
35 target_parent = target_item.GetHierarchyParent();
37 ActionTarget at =
new ActionTarget(target_item, target_parent, -1,
vector.Zero, -1);
39 SetAction(action, at, main_item );
45 Class.CastTo(mngr, m_player.GetActionManager());
49 m_mainItem = main_item;
51 ItemBase itemInHand = m_player.GetItemInHands();
52 m_useItemInHands = main_item == itemInHand;
54 m_actionStartPos = m_player.GetPosition();
60 g_Game.GetMission().HideInventory();
71 if( !m_isActive )
return;
73 if( m_player.IsRaised() || m_player.GetCommand_Melee() )
79 if(
g_Game.IsInventoryOpen() )
87 ItemBase handItem = m_player.GetItemInHands();
89 if( handItem != m_mainItem )
96 if(
Math.AbsFloat(
vector.Distance(m_actionStartPos, m_player.GetPosition())) > MIN_DISTANCE_TO_INTERRUPT )
105 void DeactiveAction()
107 if( !m_isActive )
return;
112 Class.CastTo(mngr, m_player.GetActionManager());
117 m_player.GetCraftingManager().ResetInventoryCraft();
122 m_useItemInHands =
false;