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

◆ Select()

override bool Container::Select ( )
inlineprotected

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

853 {
854 EntityAI focused_item = GetFocusedItem();
855 EntityAI selected_item = ItemManager.GetInstance().GetSelectedItem();
856 DayZPlayer player = GetGame().GetPlayer();
857
858
859 if( focused_item != selected_item )
860 {
861 if( selected_item )
862 {
863 if( selected_item.GetInventory().CanRemoveEntity() && m_Entity )
864 {
865 bool can_add = m_Entity.GetInventory().CanAddEntityInCargo( selected_item, selected_item.GetInventory().GetFlipCargo());
866 bool in_cargo = !player.GetInventory().HasEntityInInventory( selected_item ) || !m_Entity.GetInventory().HasEntityInCargo( selected_item );
867 if( can_add && in_cargo )
868 {
869 player.PredictiveTakeEntityToTargetCargo( m_Entity, selected_item );
870 Container selected_cont2 = ItemManager.GetInstance().GetSelectedContainer();
871 if( selected_cont2 )
872 {
873 selected_cont2.SetActive( false );
874 }
875
876 SetActive( true );
878 return true;
879 }
880 else
881 {
882 Container selected_cont = ItemManager.GetInstance().GetSelectedContainer();
883 if( selected_cont )
884 {
885 selected_cont.SetActive( false );
886 }
887
888 SetActive( true );
889 SetDefaultFocus( true );
890 }
891 }
892 }
893 else if ( focused_item && focused_item.GetInventory().CanRemoveEntity() )
894 {
895 EntityAI item_in_hands = GetGame().GetPlayer().GetHumanInventory().GetEntityInHands();
896 if( item_in_hands )
897 {
898 if( GameInventory.CanSwapEntitiesEx( item_in_hands, focused_item ) )
899 {
900 player.PredictiveSwapEntities( item_in_hands, focused_item );
901 return true;
902 }
903 }
904 else
905 {
906 if( player.GetHumanInventory().CanAddEntityInHands( focused_item ) )
907 {
908 player.PredictiveTakeEntityToHands( focused_item );
909 return true;
910 }
911 }
912 }
913 }
914 return false;
915 }
class LogManager EntityAI
EntityAI m_Entity
Определения ActionDebug.c:11
const string Container
Определения CentralEconomy.c:6
void SetActive()
Определения TrapBase.c:414
proto native DayZPlayer GetPlayer()
override void SetActive(bool active)
Определения CargoContainer.c:769
override EntityAI GetFocusedItem()
Определения CargoContainer.c:733
int m_FocusedItemPosition
Определения CargoContainer.c:9
override void SetDefaultFocus(bool while_micromanagment_mode=false)
Определения CargoContainer.c:612
proto native CGame GetGame()

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), GetFocusedItem(), GetGame(), ItemManager::GetInstance(), CGame::GetPlayer(), ItemManager::GetSelectedContainer(), ItemManager::GetSelectedItem(), m_Entity, m_FocusedItemPosition, SetActive(), SetActive() и SetDefaultFocus().

Используется в HandsContainer::OnSelectButton() и AttachmentCategoriesRow::Select().