Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс PlayerContainer
+ Граф наследования:PlayerContainer:

Защищенные члены

override void UpdateRadialIcon ()
 
bool HasEntityContainerVisible (EntityAI entity)
 
SlotsIcon GetSlotsIcon (int row, int column)
 
void PlayerContainer (LayoutHolder parent, int sort=-1)
 
void ~PlayerContainer ()
 
void ItemAttached (EntityAI item, string slot_name)
 
void ItemDetached (EntityAI item, string slot_name)
 
void OnAttachmentReservationSet (EntityAI item, int slot_id)
 
void OnAttachmentReservationRelease (EntityAI item, int slot_id)
 
void AddSlotsContainer (int row_count)
 
void MouseClick (Widget w, int x, int y, int button)
 
float GetMainContainerTopPos ()
 
float GetMainContainerBottomPos ()
 
override void Insert (LayoutHolder container, int pos=-1, bool immedUpdate=true)
 
bool IsItemWithContainerActive ()
 
override bool IsItemWithQuantityActive ()
 
override bool IsItemActive ()
 
bool IsEmptyItemActive ()
 
void UnfocusPlayerAttachmentsContainer ()
 
void DoubleClick (Widget w, int x, int y, int button)
 
override void ExpandCollapseContainer ()
 
bool IsContainerWithCargoActive ()
 
bool IsItemWithAttachmentsActive ()
 
override bool TransferItemToVicinity ()
 
override bool InspectItem ()
 
int GetRecipeCount (bool recipe_anywhere, EntityAI entity1, EntityAI entity2)
 
override bool SplitItem ()
 
override bool EquipItem ()
 
override bool TransferItem ()
 
override EntityAI GetFocusedItem ()
 
override bool Combine ()
 
override bool Select ()
 
void SetPlayer (PlayerBase player)
 
override void OnDropReceivedFromHeader (Widget w, int x, int y, Widget receiver)
 
ItemPreviewWidget GetItemPreviewWidget (Widget w)
 
override void DraggingOverHeader (Widget w, int x, int y, Widget receiver)
 
override void DraggingOver (Widget w, int x, int y, Widget receiver)
 
void OnDropReceivedFromGhostArea (Widget w, int x, int y, Widget receiver)
 
void SwapItemsInOrder (int slot1, int slot2)
 
override void UpdateInterval ()
 
void ToggleContainer (Widget w, EntityAI item)
 
override bool CanOpenCloseContainerEx (EntityAI focusedEntity)
 
void ToggleWidget (Widget w)
 
override void CollapseButtonOnMouseButtonDown (Widget w)
 
bool IsPlayerEquipmentActive ()
 
override void Refresh ()
 
override bool OnChildRemove (Widget w, Widget child)
 
override bool OnChildAdd (Widget w, Widget child)
 

Защищенные данные

ref AttachmentsGroupContainer m_PlayerAttachmentsContainer
 
ref map< int, SlotsIconm_InventorySlots
 
ref map< EntityAI, ref Containerm_ShowedItems = new ref map<EntityAI, ref Container>
 
ref map< int, ref Containerm_ShowedItemsIDs = new ref map<int, ref Container>
 
PlayerBase m_Player
 
const int HEADER_INDEX_OFFSET = 2
 

Дополнительные унаследованные члены

- Закрытые члены унаследованные от CollapsibleContainer
void CollapsibleContainer (LayoutHolder parent, int sort=-1)
 
override void SetLayoutName ()
 
EntityAI GetEntity ()
 
override void OnDropReceivedFromHeader (Widget w, int x, int y, Widget receiver)
 
override void Refresh ()
 
override void OnShow ()
 
override void OnHide ()
 
override void Insert (LayoutHolder container, int pos=-1, bool immedUpdate=true)
 
override void Remove (LayoutHolder container)
 
bool CanDisplayAnyCategory ()
 
void UpdateCollapseButtons ()
 
void LoadDefaultState ()
 
bool IsHidden ()
 
void CollapseButtonOnMouseButtonDown (Widget w)
 
override void Toggle ()
 
override bool OnChildRemove (Widget w, Widget child)
 
override bool OnChildAdd (Widget w, Widget child)
 
override Header GetHeader ()
 
override void SetHeader (Header header)
 
void SetCollapsibleHeaderArrowState (bool open)
 
- Закрытые данные унаследованные от CollapsibleContainer
ref CollapsibleHeader m_CollapsibleHeader
 
bool m_Hidden
 

Подробное описание

Конструктор(ы)

◆ PlayerContainer()

void PlayerContainer ( LayoutHolder parent,
int sort = -1 )
inlineprotected
35 {
38
40 m_CollapsibleHeader.SetName( "#container_inventory" );
42 m_Body.Insert( m_PlayerAttachmentsContainer );
43 m_MainWidget = m_RootWidget.FindAnyWidget( "body" );
44 m_PlayerAttachmentsContainer.GetRootWidget().SetColor(166 << 24 | 80 << 16 | 80 << 8 | 80);
45 WidgetEventHandler.GetInstance().RegisterOnChildAdd( m_MainWidget, this, "OnChildAdd" );
46 WidgetEventHandler.GetInstance().RegisterOnChildRemove( m_MainWidget, this, "OnChildRemove" );
47
48 //START - InitGhostSlots
49 string config_path_ghosts_slots = "CfgVehicles SurvivorBase InventoryEquipment playerSlots";
52
53 for ( int i = 0; i < player_ghosts_slots.Count(); i++ )
54 {
55 string slot_name = player_ghosts_slots.Get ( i );
56 string path = "CfgSlots" + " " + slot_name;
57
58 if ( GetGame().ConfigIsExisting( path ) )
59 {
60 string icon_name; //icon_name must be in format "set:<setname> image:<imagename>"
61 GetGame().ConfigGetText( path + " ghostIcon", icon_name );
62 int slot_number = i;
64
65 //START - GetWidgetSlot
67 if( row >= m_PlayerAttachmentsContainer.Count() )
68 {
69 if( row < ( player_ghosts_slots.Count() / ITEMS_IN_ROW ) )
71 else
73 }
74
76
77 icon.GetMainWidget().Show( true );
78 icon.Clear();
79
80 WidgetEventHandler.GetInstance().RegisterOnDoubleClick( icon.GetPanelWidget(), this, "DoubleClick" );
81
82 //END - GetWidgetSlot
83 WidgetEventHandler.GetInstance().RegisterOnDropReceived( icon.GetPanelWidget(), this, "OnDropReceivedFromGhostArea" );
84 WidgetEventHandler.GetInstance().RegisterOnDropReceived( icon.GetGhostSlot(), this, "OnDropReceivedFromGhostArea" );
85 WidgetEventHandler.GetInstance().RegisterOnDraggingOver( icon.GetGhostSlot(), this, "DraggingOver" );
86 WidgetEventHandler.GetInstance().RegisterOnDraggingOver( icon.GetPanelWidget(), this, "DraggingOver" );
87 WidgetEventHandler.GetInstance().RegisterOnMouseButtonDown( icon.GetPanelWidget(), this, "MouseClick" );
88
90 //END - LoadIconIntoWidgetSlot
91
92 GetGame().ConfigGetText( path + " name", slot_name );
94 icon.SetSlotID(slot_id);
95 icon.SetSlotDisplayName(InventorySlots.GetSlotDisplayName(slot_id));
97 }
98 }
99 m_PlayerAttachmentsContainer.GetMainWidget().Update();
100 //END - InitGhostSlots
101 RecomputeOpenedContainers();
102 }
const int ITEMS_IN_ROW
Definition Attachments.c:1
string path
Definition OptionSelectorMultistate.c:135
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]
Definition PluginRemotePlayerDebugClient.c:14
Definition AttachmentsGroupContainer.c:2
ref CollapsibleHeader m_CollapsibleHeader
Definition CollapsibleContainer.c:3
override Header GetHeader()
Definition CollapsibleContainer.c:176
override void SetHeader(Header header)
Definition CollapsibleContainer.c:181
provides access to slot configuration
Definition InventorySlots.c:6
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
static proto native owned string GetSlotDisplayName(int id)
converts slot_id to string
Definition EntityAI.c:95
ref AttachmentsGroupContainer m_PlayerAttachmentsContainer
Definition PlayerContainer.c:3
ref map< int, SlotsIcon > m_InventorySlots
Definition PlayerContainer.c:4
SlotsIcon GetSlotsIcon(int row, int column)
Definition PlayerContainer.c:29
void AddSlotsContainer(int row_count)
Definition PlayerContainer.c:221
Definition SlotsIcon.c:2
Definition StaticGUIUtils.c:2
static const int IMAGESETGROUP_INVENTORY
Definition StaticGUIUtils.c:3
static string VerifyIconImageString(int imageset_group=IMAGESETGROUP_INVENTORY, string icon_name="")
Checks for improperly formated, legacy image names and corrects them to default format.
Definition StaticGUIUtils.c:7
Definition WidgetEventHandler.c:2
static WidgetEventHandler GetInstance()
Definition WidgetEventHandler.c:22
proto native CGame GetGame()

Перекрестные ссылки AddSlotsContainer(), GetGame(), CollapsibleContainer::GetHeader(), WidgetEventHandler::GetInstance(), InventorySlots::GetSlotDisplayName(), InventorySlots::GetSlotIdFromString(), GetSlotsIcon(), StaticGUIUtils::IMAGESETGROUP_INVENTORY, ITEMS_IN_ROW, CollapsibleContainer::m_CollapsibleHeader, m_InventorySlots, m_PlayerAttachmentsContainer, m_RootWidget, path, CollapsibleContainer::SetHeader() и StaticGUIUtils::VerifyIconImageString().

◆ ~PlayerContainer()

void ~PlayerContainer ( )
inlineprotected
105 {
106 if( m_Player )
107 {
108 m_Player.GetOnItemAttached().Remove(ItemAttached);
109 m_Player.GetOnItemDetached().Remove(ItemDetached);
110 m_Player.GetOnAttachmentSetLock().Remove(OnAttachmentReservationSet);
111 m_Player.GetOnAttachmentReleaseLock().Remove(OnAttachmentReservationRelease);
112 }
113 }
PlayerBase m_Player
Definition PlayerContainer.c:7
void ItemAttached(EntityAI item, string slot_name)
Definition PlayerContainer.c:115
void OnAttachmentReservationSet(EntityAI item, int slot_id)
Definition PlayerContainer.c:205
void ItemDetached(EntityAI item, string slot_name)
Definition PlayerContainer.c:180
void OnAttachmentReservationRelease(EntityAI item, int slot_id)
Definition PlayerContainer.c:215

Перекрестные ссылки ItemAttached(), ItemDetached(), m_Player, OnAttachmentReservationRelease() и OnAttachmentReservationSet().

Методы

◆ AddSlotsContainer()

void AddSlotsContainer ( int row_count)
inlineprotected
222 {
224 container.SetColumnCount(row_count);
226 }
Definition SlotsContainer.c:2

Перекрестные ссылки m_Player и m_PlayerAttachmentsContainer.

Используется в PlayerContainer().

◆ CanOpenCloseContainerEx()

override bool CanOpenCloseContainerEx ( EntityAI focusedEntity)
inlineprotected
1070 {
1071 if (focusedEntity)
1072 {
1074 if (c && c.IsDisplayable())
1075 {
1076 return true;
1077 }
1078 }
1079 return false;
1080 }
Definition ContainerWithCargo.c:2
ref map< EntityAI, ref Container > m_ShowedItems
Definition PlayerContainer.c:5

Перекрестные ссылки m_ShowedItems.

◆ CollapseButtonOnMouseButtonDown()

override void CollapseButtonOnMouseButtonDown ( Widget w)
inlineprotected
1102 {
1103 super.CollapseButtonOnMouseButtonDown(w);
1104 }

◆ Combine()

override bool Combine ( )
inlineprotected
586 {
587 if (CanCombine())
588 {
589 if ( GetFocusedContainer() && ( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) ) )
590 {
591 return GetFocusedContainer().Combine();
592 }
593 else
594 {
596 ItemBase item_in_hands = ItemBase.Cast( GetGame().GetPlayer().GetHumanInventory().GetEntityInHands() );
597
598 Icon hands_icon = ItemManager.GetInstance().GetHandsPreview().GetIcon();
599
600 if( item_in_hands && item )
601 {
602 return hands_icon.CombineItems( item_in_hands, item );
603 }
604 }
605 }
606 return true;
607 }
PlayerBase GetPlayer()
Definition ModifierBase.c:47
Definition Building.c:6
Definition Icon.c:2
Definition InventoryItem.c:731
Definition ItemManager.c:2
static ItemManager GetInstance()
Definition ItemManager.c:283
override EntityAI GetFocusedItem()
Definition PlayerContainer.c:580

Перекрестные ссылки GetFocusedItem(), GetGame(), ItemManager::GetInstance() и GetPlayer().

◆ DoubleClick()

void DoubleClick ( Widget w,
int x,
int y,
int button )
inlineprotected
369 {
370 if( button == MouseState.LEFT && !g_Game.IsLeftCtrlDown())
371 {
373
374 if( w == null || m_Player.GetInventory().IsInventoryLocked() )
375 {
376 return;
377 }
378 ItemPreviewWidget iw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
379 if( !iw )
380 {
381 string name = w.GetName();
382 name.Replace( "PanelWidget", "Render" );
383 iw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
384 }
385 if( !iw )
386 {
387 iw = ItemPreviewWidget.Cast( w );
388 }
389
390 ItemBase item = ItemBase.Cast( iw.GetItem() );
391
392 if( !item )
393 {
394 return;
395 }
396
398 iw.GetUserData(icon);
399
400 if(icon && icon.IsReserved())
401 {
402 return;
403 }
404
405 if( !item.GetInventory().CanRemoveEntity() )
406 return;
407
408 if ( player.GetInventory().HasEntityInInventory( item ) && player.GetHumanInventory().CanAddEntityInHands( item ) )
409 {
410 player.PredictiveTakeEntityToHands( item );
411 }
412 else
413 {
414 if (player.GetInventory().CanAddEntityToInventory( item ) && item.GetInventory().CanRemoveEntity())
415 {
416 if( item.GetTargetQuantityMax() < item.GetQuantity() )
417 item.SplitIntoStackMaxClient( player, -1 );
418 else
419 player.PredictiveTakeEntityToInventory( FindInventoryLocationType.ANY, item );
420 }
421 else
422 {
423 if( item.GetTargetQuantityMax() < item.GetQuantity() )
424 item.SplitIntoStackMaxHandsClient( player );
425 else
426 player.PredictiveTakeEntityToHands( item );
427 }
428 }
429 ToggleWidget( w );
430 HideOwnedTooltip();
431
432 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu( MENU_INVENTORY ) );
433 if ( menu )
434 {
435 menu.RefreshQuickbar();
436 }
437 }
438 }
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Definition DayZGame.c:3746
FindInventoryLocationType
flags for searching locations in inventory
Definition InventoryLocation.c:16
void InventoryMenu()
Definition InventoryMenu.c:20
Definition gameplay.c:276
Definition PlayerBaseClient.c:2
void ToggleWidget(Widget w)
Definition PlayerContainer.c:1083
const int MENU_INVENTORY
Definition constants.c:170
MouseState
Definition EnSystem.c:311

Перекрестные ссылки g_Game, GetGame(), GetPlayer(), InventoryMenu(), m_Player, MENU_INVENTORY, name и ToggleWidget().

◆ DraggingOver()

override void DraggingOver ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected
808 {
809 if( w == null )
810 {
811 return;
812 }
813
815 bool is_reserved = false;
816
818 receiver.GetUserData(slots_icon);
819
820 if(slots_icon)
821 {
822 receiver_item = slots_icon.GetEntity();
823 is_reserved = slots_icon.IsReserved();
824 }
825
827
828 if( !ipw || !ipw.IsInherited( ItemPreviewWidget ) )
829 {
830 return;
831 }
832
833 EntityAI item = ipw.GetItem();
834 if( !item )
835 {
836 return;
837 }
838
839 if( receiver_item && !is_reserved )
840 {
842 {
844 ItemManager.GetInstance().HideDropzones();
845 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
846 return;
847 }
848 else if( receiver_item.GetInventory().CanAddAttachment(item) || receiver_item.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !receiver_item.GetInventory().HasEntityInCargo( item ))
849 {
851 ItemManager.GetInstance().HideDropzones();
852 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
853 return;
854 }
855 else if( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
856 {
858 ItemManager.GetInstance().HideDropzones();
859 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
860 return;
861 }
862
863 }
864
865 if( item.GetInventory().CanRemoveEntity() )
866 {
867 if( m_Player.GetInventory().CanAddAttachment( item) )
868 {
870 ItemManager.GetInstance().HideDropzones();
871 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
872 }
873 else if( m_Player.GetInventory().CanAddEntityToInventory( item, FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT ) && ( !m_Player.GetInventory().HasEntityInInventory( item ) ) || m_Player.GetHumanInventory().HasEntityInHands( item ) )
874 {
876 ItemManager.GetInstance().HideDropzones();
877 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
878 }
880 {
882 ItemManager.GetInstance().HideDropzones();
883 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
884 }
885 else
886 {
888 ItemManager.GetInstance().HideDropzones();
889 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
890 }
891 }
892 else
893 {
895 ItemManager.GetInstance().HideDropzones();
896 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
897 //ItemManager.GetInstance().ShowSourceDropzone( item );
898 }
899 }
Definition ColorManager.c:2
static int GREEN_COLOR
Definition ColorManager.c:17
static ColorManager GetInstance()
Definition ColorManager.c:27
static int RED_COLOR
Definition ColorManager.c:16
static int SWAP_COLOR
Definition ColorManager.c:18
static int COMBINE_COLOR
Definition ColorManager.c:20
script counterpart to engine's class Inventory
Definition Inventory.c:79
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
Definition Inventory.c:628
ItemPreviewWidget GetItemPreviewWidget(Widget w)
Definition PlayerContainer.c:756

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), ColorManager::COMBINE_COLOR, ColorManager::GetInstance(), ItemManager::GetInstance(), GetItemPreviewWidget(), ColorManager::GREEN_COLOR, m_Player, ColorManager::RED_COLOR и ColorManager::SWAP_COLOR.

◆ DraggingOverHeader()

override void DraggingOverHeader ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected
774 {
775 if( w == null )
776 {
777 return;
778 }
780
781 if( !ipw || !ipw.IsInherited( ItemPreviewWidget ) )
782 {
783 return;
784 }
785
786 EntityAI item = ipw.GetItem();
787 if( !item )
788 {
789 return;
790 }
791
792 if( m_Player.GetInventory().CanAddEntityToInventory( item, FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT ) && !m_Player.GetInventory().HasEntityInInventory( item ) )
793 {
794 ItemManager.GetInstance().HideDropzones();
795 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
797 }
798 else
799 {
800 ItemManager.GetInstance().HideDropzones();
801 ItemManager.GetInstance().GetRightDropzone().SetAlpha( 1 );
803 //ItemManager.GetInstance().ShowSourceDropzone( item );
804 }
805 }

Перекрестные ссылки ColorManager::GetInstance(), ItemManager::GetInstance(), GetItemPreviewWidget(), ColorManager::GREEN_COLOR, m_Player и ColorManager::RED_COLOR.

◆ EquipItem()

override bool EquipItem ( )
inlineprotected
522 {
523 if (CanEquip())
524 {
525 if ( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) )
526 {
527 return GetFocusedContainer().EquipItem();
528 }
529 else
530 {
532 if( item )
533 {
534 GetGame().GetPlayer().PredictiveTakeEntityToInventory( FindInventoryLocationType.ATTACHMENT, item );
535 return true;
536 }
537 }
538 }
539 return false;
540 }

Перекрестные ссылки GetFocusedItem() и GetGame().

◆ ExpandCollapseContainer()

override void ExpandCollapseContainer ( )
inlineprotected
441 {
442 if( m_PlayerAttachmentsContainer.IsActive() )
443 {
444 ToggleWidget(m_PlayerAttachmentsContainer.GetFocusedSlotsIcon().GetPanelWidget());
445 }
446 }

Перекрестные ссылки m_PlayerAttachmentsContainer и ToggleWidget().

◆ GetFocusedItem()

override EntityAI GetFocusedItem ( )
inlineprotected
581 {
582 return GetFocusedContainer().GetFocusedItem();
583 }

Используется в Combine(), EquipItem(), InspectItem(), IsEmptyItemActive(), IsItemActive(), IsItemWithContainerActive(), IsItemWithQuantityActive(), TransferItem() и TransferItemToVicinity().

◆ GetItemPreviewWidget()

ItemPreviewWidget GetItemPreviewWidget ( Widget w)
inlineprotected
757 {
758 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget("Render") );
759 if( !ipw )
760 {
761 string name = w.GetName();
762 name.Replace( "PanelWidget", "Render" );
763 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
764 }
765 if( !ipw )
766 {
767 ipw = ItemPreviewWidget.Cast( w );
768 }
769
770 return ipw;
771 }

Перекрестные ссылки name.

Используется в DraggingOver(), DraggingOverHeader(), OnDropReceivedFromGhostArea() и OnDropReceivedFromHeader().

◆ GetMainContainerBottomPos()

float GetMainContainerBottomPos ( )
inlineprotected
299 {
300 float x, y;
301 float x2, y2;
302 GetRootWidget().GetScreenPos( x, y );
303 GetRootWidget().GetScreenSize( x2, y2 );
304 y += y2;
305 return y;
306 }
Icon x
Icon y

Перекрестные ссылки x и y.

◆ GetMainContainerTopPos()

float GetMainContainerTopPos ( )
inlineprotected
292 {
293 float x, y;
294 GetRootWidget().GetScreenPos( x, y );
295 return y;
296 }

Перекрестные ссылки x и y.

◆ GetRecipeCount()

int GetRecipeCount ( bool recipe_anywhere,
EntityAI entity1,
EntityAI entity2 )
inlineprotected
503 {
504 PluginRecipesManager plugin_recipes_manager = PluginRecipesManager.Cast( GetPlugin( PluginRecipesManager ) );
505 return plugin_recipes_manager.GetValidRecipes( ItemBase.Cast( entity1 ), ItemBase.Cast( entity2 ), null, PlayerBase.Cast( GetGame().GetPlayer() ) );
506 }
PluginBase GetPlugin(typename plugin_type)
Definition PluginManager.c:316

Перекрестные ссылки GetGame(), GetPlayer() и GetPlugin().

◆ GetSlotsIcon()

SlotsIcon GetSlotsIcon ( int row,
int column )
inlineprotected
30 {
31 return m_PlayerAttachmentsContainer.GetSlotsIcon(row, column);
32 }

Перекрестные ссылки m_PlayerAttachmentsContainer.

Используется в PlayerContainer() и SetPlayer().

◆ HasEntityContainerVisible()

bool HasEntityContainerVisible ( EntityAI entity)
inlineprotected
24 {
26 return ( cont && cont.IsOpened() );
27 }

Перекрестные ссылки m_ShowedItems.

◆ Insert()

override void Insert ( LayoutHolder container,
int pos = -1,
bool immedUpdate = true )
inlineprotected
309 {
311 if (c_cont && m_Body.Count() > 1)
312 {
313 ClosableContainer prev = ClosableContainer.Cast(m_Body.Get( 1 ));
314 int index = 1;
315 int curr_sort = c_cont.GetRootWidget().GetSort();
316 while ( prev )
317 {
318 int prev_sort = prev.GetRootWidget().GetSort();
319 if ( prev_sort > curr_sort )
320 break;
321
322 if ( ++index < m_Body.Count() )
323 prev = ClosableContainer.Cast( m_Body.Get( index ) );
324 else
325 break;
326 }
327
328 m_Body.InsertAt( container, index );
329 }
330 else
331 {
332 m_Body.Insert( container );
333 }
334
335 if ( immedUpdate )
336 RecomputeOpenedContainers();
337 }

◆ InspectItem()

override bool InspectItem ( )
inlineprotected
484 {
485 if( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) )
486 {
487 return GetFocusedContainer().InspectItem();
488 }
489 else
490 {
491 Man player = GetGame().GetPlayer();
493 if( item )
494 {
495 InspectItem( item );
496 return true;
497 }
498 }
499 return false;
500 }
override bool InspectItem()
Definition PlayerContainer.c:483

Перекрестные ссылки GetFocusedItem(), GetGame() и InspectItem().

Используется в InspectItem() и MouseClick().

◆ IsContainerWithCargoActive()

bool IsContainerWithCargoActive ( )
inlineprotected
449 {
450 return GetFocusedContainer().IsInherited( ContainerWithCargo );
451 }

◆ IsEmptyItemActive()

bool IsEmptyItemActive ( )
inlineprotected
358 {
360 return ent == null;
361 }

Перекрестные ссылки GetFocusedItem().

◆ IsItemActive()

override bool IsItemActive ( )
inlineprotected
352 {
355 }
override bool IsItemWithQuantityActive()
Definition PlayerContainer.c:345
bool IsItemWithContainerActive()
Definition PlayerContainer.c:339

Перекрестные ссылки GetFocusedItem(), IsItemWithContainerActive() и IsItemWithQuantityActive().

◆ IsItemWithAttachmentsActive()

bool IsItemWithAttachmentsActive ( )
inlineprotected
454 {
455 return GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments );
456 }

◆ IsItemWithContainerActive()

bool IsItemWithContainerActive ( )
inlineprotected
340 {
342 return ent && ( ent.GetInventory().GetCargo() || ent.GetSlotsCountCorrect() > 0 );
343 }

Перекрестные ссылки GetFocusedItem().

Используется в IsItemActive().

◆ IsItemWithQuantityActive()

override bool IsItemWithQuantityActive ( )
inlineprotected
346 {
348 return ent && QuantityConversions.HasItemQuantity( ent ) && ent.CanBeSplit();
349 }
Definition QuantityConversions.c:2
static int HasItemQuantity(notnull EntityAI item)
Definition QuantityConversions.c:143

Перекрестные ссылки GetFocusedItem() и QuantityConversions::HasItemQuantity().

Используется в IsItemActive().

◆ IsPlayerEquipmentActive()

bool IsPlayerEquipmentActive ( )
inlineprotected
1107 {
1108 if( GetFocusedContainer() && ( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) ) )
1109 {
1110 return false;
1111 }
1112
1113 return true;
1114 }

◆ ItemAttached()

void ItemAttached ( EntityAI item,
string slot_name )
inlineprotected
116 {
118 SlotsIcon icon = m_InventorySlots.Get( slot );
119
120 if( icon )
121 {
122 if( icon.IsReserved())
123 m_Player.GetOnAttachmentReleaseLock().Invoke(item, slot);
124
125 icon.Init( item );
126
127 if( m_ShowedItems.Contains( item ) == false )
128 {
129 string name;
130 int sort_index = Inventory.GetPlayerAttachmentIndex( slot );
131 int current_sort = 9999;
132 if( GetFocusedContainer() )
133 current_sort = GetFocusedContainer().GetRootWidget().GetSort();
134
135 if( item.GetSlotsCountCorrect() > 0 )
136 {
137 ContainerWithCargoAndAttachments iwca = new ContainerWithCargoAndAttachments( this, sort_index );
138 iwca.SetEntity( item );
139 iwca.SetSlotIcon( icon );
140 WidgetEventHandler.GetInstance().RegisterOnMouseButtonUp( icon.GetPanelWidget(), this, "ToggleWidget" );
141
142 if( iwca.IsDisplayable() )
143 {
144 icon.GetRadialIconPanel().Show( true );
145 }
146 m_ShowedItems.Insert( item, iwca );
147 RecomputeOpenedContainers();
148 Refresh();
149 }
150 else if( item.GetInventory().GetCargo() )
151 {
152 ContainerWithCargo iwc = new ContainerWithCargo( this, sort_index );
153 iwc.SetEntity( item );
154 iwc.SetSlotIcon( icon );
155 iwc.UpdateInterval();
156 WidgetEventHandler.GetInstance().RegisterOnMouseButtonUp( icon.GetPanelWidget(), this, "ToggleWidget" );
157 m_ShowedItems.Insert( item, iwc );
158 RecomputeOpenedContainers();
159 if( iwc.IsDisplayable() )
160 icon.GetRadialIconPanel().Show(true);
161
162 Refresh();
163 }
164 }
165
167 string config = "CfgVehicles " + item.GetType() + " GUIInventoryAttachmentsProps";
168 if( conta && conta.IsInherited( ClosableContainer ) )
169 {
170 bool show_radial_icon = ( item.GetInventory().GetCargo() || item.GetSlotsCountCorrect() > 0 ) && !GetGame().ConfigIsExisting( config );
171 Widget rip = icon.GetRadialIconPanel();
172
173 rip.Show( show_radial_icon );
174 SetOpenForSlotIcon(conta.IsOpened(),icon);
175 }
176 }
177 UpdateSelectionIcons();
178 }
void Inventory(LayoutHolder parent)
Definition Inventory.c:76
override void Refresh()
Definition PlayerContainer.c:1116
Definition EnWidgets.c:190

Перекрестные ссылки GetGame(), WidgetEventHandler::GetInstance(), InventorySlots::GetSlotIdFromString(), Inventory(), m_InventorySlots, m_Player, m_ShowedItems, name и Refresh().

Используется в SetPlayer() и ~PlayerContainer().

◆ ItemDetached()

void ItemDetached ( EntityAI item,
string slot_name )
inlineprotected
181 {
183 SlotsIcon icon = m_InventorySlots.Get( slot );
184
185 if( icon )
186 {
188 if( con )
189 {
190 ( Container.Cast( con.m_Parent ) ).Remove( con );
191 RecomputeOpenedContainers();
192 GetMainWidget().Update();
193 Refresh();
194 m_ShowedItems.Remove( item );
195 }
196
197 icon.Clear();
198 Inventory in = Inventory.Cast( GetRoot() );
199 if( in )
200 in.UpdateConsoleToolbar();
201 }
202 UpdateSelectionIcons();
203 }
override void Remove(LayoutHolder container)
Definition CollapsibleContainer.c:79
Definition CargoContainer.c:3

Перекрестные ссылки InventorySlots::GetSlotIdFromString(), Inventory(), m_InventorySlots, m_ShowedItems, Refresh() и CollapsibleContainer::Remove().

Используется в SetPlayer() и ~PlayerContainer().

◆ MouseClick()

void MouseClick ( Widget w,
int x,
int y,
int button )
inlineprotected
229 {
231 w.GetUserData(icon);
232
234 bool isReserved;
235
236 if (icon)
237 {
238 selectedItem = ItemBase.Cast(icon.GetEntity());
239 isReserved = icon.IsReserved();
240
241 }
242
243 if (selectedItem)
244 {
245 switch (button)
246 {
247 case MouseState.RIGHT:
248 #ifdef DIAG_DEVELOPER
249 if (GetDayZGame().IsLeftCtrlDown())
250 ShowActionMenu(selectedItem);
251 #endif
252
253 if (isReserved)
254 {
255 GetGame().GetPlayer().GetHumanInventory().ClearUserReservedLocationSynced(selectedItem);
256 m_Player.GetOnAttachmentReleaseLock().Invoke(selectedItem, icon.GetSlotID());
257 }
258 break;
259
260 case MouseState.MIDDLE:
261 if (!isReserved)
263
264 break;
265
266 case MouseState.LEFT:
267 if (!isReserved)
268 {
270 if (g_Game.IsLeftCtrlDown())
271 {
272 if (controlledPlayer.CanDropEntity(selectedItem))
273 {
274 if (selectedItem.GetTargetQuantityMax() < selectedItem.GetQuantity())
275 selectedItem.SplitIntoStackMaxClient(null, -1);
276 else
277 controlledPlayer.PhysicalPredictiveDropItem(selectedItem);
278 }
279 }
280 else
281 {
282 bool draggable = !m_Player.GetInventory().HasInventoryReservation(selectedItem, null ) && !m_Player.GetInventory().IsInventoryLocked() && selectedItem.GetInventory().CanRemoveEntity() && !m_Player.IsItemsToDelete();
283 ItemManager.GetInstance().SetWidgetDraggable(w, draggable);
284 }
285 }
286 break;
287 }
288 }
289 }
DayZGame GetDayZGame()
Definition DayZGame.c:3748

Перекрестные ссылки g_Game, GetDayZGame(), GetGame(), ItemManager::GetInstance(), GetPlayer(), InspectItem() и m_Player.

◆ OnAttachmentReservationRelease()

void OnAttachmentReservationRelease ( EntityAI item,
int slot_id )
inlineprotected
216 {
218 icon.Clear();
219 }

Перекрестные ссылки m_InventorySlots.

Используется в SetPlayer() и ~PlayerContainer().

◆ OnAttachmentReservationSet()

void OnAttachmentReservationSet ( EntityAI item,
int slot_id )
inlineprotected
206 {
208
209 if( item )
210 {
211 icon.Init( item, true );
212 }
213 }

Перекрестные ссылки m_InventorySlots.

Используется в SetPlayer() и ~PlayerContainer().

◆ OnChildAdd()

override bool OnChildAdd ( Widget w,
Widget child )
inlineprotected
1131 {
1132 Refresh();
1133 return true;
1134 }

Перекрестные ссылки Refresh().

◆ OnChildRemove()

override bool OnChildRemove ( Widget w,
Widget child )
inlineprotected
1125 {
1126 Refresh();
1127 return true;
1128 }

Перекрестные ссылки Refresh().

◆ OnDropReceivedFromGhostArea()

void OnDropReceivedFromGhostArea ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected
902 {
903 ItemManager.GetInstance().HideDropzones();
904 ItemManager.GetInstance().SetIsDragging( false );
905
907 bool is_reserved = false;
908 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu( MENU_INVENTORY ) );
909 float stack_max;
910
913 receiver.GetUserData(slots_icon);
914 int slot_id = slots_icon.GetSlotID();
915
916 receiver_item = slots_icon.GetEntity();
917 is_reserved = slots_icon.IsReserved();
919
920 if ( !ipw )
921 {
922 return;
923 }
924
925 ItemBase item = ItemBase.Cast(ipw.GetItem());
927 if ( !item )
928 {
929 return;
930 }
931 if ( receiver_item && !is_reserved )
932 {
934 {
935 GetGame().GetPlayer().PredictiveSwapEntities( item, receiver_item );
936
937 if ( menu )
938 {
939 menu.RefreshQuickbar();
940 }
941 return;
942 }
943 else if ( receiver_item.GetInventory().CanAddAttachment( item ) )
944 {
945 GetGame().GetPlayer().PredictiveTakeEntityToTargetAttachment( receiver_item, item );
946
947 if ( menu )
948 {
949 menu.RefreshQuickbar();
950 }
951 return;
952 }
953 else if ( receiver_item.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !receiver_item.GetInventory().HasEntityInCargo( item ) )
954 {
956
957 if ( menu )
958 {
959 menu.RefreshQuickbar();
960 }
961 return;
962 }
963 else if ( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
964 {
966 return;
967 }
968 }
969
970 if ( m_Player.GetInventory().CanAddAttachmentEx( item, slot_id ) )
971 {
972 if (item.GetQuantity() > item.GetTargetQuantityMax(slot_id))
973 {
974 item.SplitIntoStackMaxClient( real_player, slot_id );
975 }
976 else
977 {
978 real_player.PredictiveTakeEntityToTargetAttachmentEx( m_Player, item, slots_icon.GetSlotID() );
979 }
980 }
981 else if ( m_Player.GetInventory().CanAddAttachment( item ) )
982 {
983 il = new InventoryLocation;
984 m_Player.GetInventory().FindFreeLocationFor( item, FindInventoryLocationType.ATTACHMENT, il );
985 float stackable = item.GetTargetQuantityMax(-1);
986
987 if( il.IsValid() )
988 {
989 if ( stackable == 0 || stackable >= item.GetQuantity() )
990 {
991 real_player.PredictiveTakeEntityToTargetAttachment( il.GetParent(), item );
992 }
993 else
994 {
995
996 ItemBase.Cast(item).SplitIntoStackMaxToInventoryLocationClient( il );
997 }
998 }
999 }
1000 else if( m_Player.GetInventory().CanAddEntityToInventory( item, FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT ) && ( !m_Player.GetInventory().HasEntityInInventory( item ) ) || m_Player.GetHumanInventory().HasEntityInHands( item ) )
1001 {
1003 }
1004
1005 if ( menu )
1006 {
1007 menu.RefreshQuickbar();
1008 }
1009 }
override void CombineItemsClient(EntityAI entity2, bool use_stack_max=true)
Definition ItemBase.c:5561
InventoryLocation.
Definition InventoryLocation.c:28
Definition SplitItemUtils.c:2
static void TakeOrSplitToInventory(notnull PlayerBase player, notnull EntityAI target, notnull EntityAI item)
Definition SplitItemUtils.c:3

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), CombineItemsClient(), GetGame(), ItemManager::GetInstance(), GetItemPreviewWidget(), GetPlayer(), InventoryMenu(), m_Player, MENU_INVENTORY и SplitItemUtils::TakeOrSplitToInventory().

◆ OnDropReceivedFromHeader()

override void OnDropReceivedFromHeader ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected
733 {
735
736 if( !ipw.IsInherited( ItemPreviewWidget ) )
737 {
738 return;
739 }
740
741 EntityAI item = ipw.GetItem();
742 if( !item )
743 {
744 return;
745 }
746
747 if( !item.GetInventory().CanRemoveEntity() )
748 return;
749
750 if( m_Player.GetInventory().CanAddEntityToInventory( item, FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT ) && ( !m_Player.GetInventory().HasEntityInInventory( item ) ) )
751 {
752 m_Player.PredictiveTakeEntityToInventory( FindInventoryLocationType.CARGO | FindInventoryLocationType.ATTACHMENT, item );
753 }
754 }

Перекрестные ссылки GetItemPreviewWidget() и m_Player.

◆ Refresh()

override void Refresh ( )
inlineprotected
1117 {
1118 super.Refresh();
1119 m_MainWidget.Update();
1120 m_RootWidget.Update();
1121 UpdateSelectionIcons();
1122 }

Перекрестные ссылки m_RootWidget.

Используется в ItemAttached(), ItemDetached(), OnChildAdd(), OnChildRemove(), ToggleContainer() и ToggleWidget().

◆ Select()

override bool Select ( )
inlineprotected
610 {
611 if( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) )
612 {
613 return GetFocusedContainer().Select();
614 }
615 else
616 {
618 EntityAI selected_item = ItemManager.GetInstance().GetSelectedItem();
619 SlotsIcon focused_slot = GetFocusedSlotsIcon();
620 EntityAI focused_item = focused_slot.GetEntity();
621 if( focused_slot.IsReserved() || focused_item != selected_item )
622 {
623 if( selected_item )
624 {
625 if( selected_item.GetInventory().CanRemoveEntity() )
626 {
627 if (m_Player.GetInventory().CanAddAttachmentEx( selected_item, focused_slot.GetSlotID() ))
628 {
629 player.PredictiveTakeEntityToTargetAttachmentEx( m_Player, selected_item, focused_slot.GetSlotID());
630 //m_Player.PredictiveTakeEntityAsAttachmentEx( selected_item, focused_slot.GetSlotID() );
631 ItemManager.GetInstance().SetSelectedItemEx(null, null, null);
632 return true;
633
634 }
635 else if (m_Player.GetInventory().CanAddAttachment( selected_item ))
636 {
637 player.PredictiveTakeEntityToTargetAttachment( m_Player, selected_item );
638 //m_Player.PredictiveTakeEntityToInventory( FindInventoryLocationType.ATTACHMENT, selected_item );
639 ItemManager.GetInstance().SetSelectedItemEx(null, null, null);
640 return true;
641 }
642 }
643 }
644 else
645 {
646 if( focused_item && focused_item.GetInventory().CanRemoveEntity() )
647 {
648 EntityAI item_in_hands = player.GetHumanInventory().GetEntityInHands();
649 if( item_in_hands && item_in_hands.GetInventory().CanRemoveEntity() )
650 {
652 {
653 player.PredictiveSwapEntities( item_in_hands, focused_item );
654 return true;
655 }
656 else
657 {
659 if( player.GetHumanInventory().FindFreeLocationFor( item_in_hands, FindInventoryLocationType.ANY, il_hands_dst ) )
660 {
662
663 if ( player.NeedInventoryJunctureFromServer(item_in_hands, item_in_hands.GetHierarchyParent(), il_hands_dst.GetParent()) || GetGame().GetPlayer().NeedInventoryJunctureFromServer(focused_item, focused_item.GetHierarchyParent(), GetGame().GetPlayer()) )
664 invMode = InventoryMode.JUNCTURE;
665
666 player.GetHumanInventory().ForceSwapEntities( invMode, focused_item, item_in_hands, il_hands_dst );
667 return true;
668 }
669 }
670 }
671 else
672 {
673 if( player.GetHumanInventory().CanAddEntityInHands( focused_item ) )
674 {
675 player.PredictiveTakeEntityToHands( focused_item );
676 return true;
677 }
678 }
679 }
680 }
681 }
682 }
683 return false;
684 }
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
Definition Inventory.c:22

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), GetGame(), ItemManager::GetInstance(), GetPlayer() и m_Player.

◆ SetPlayer()

void SetPlayer ( PlayerBase player)
inlineprotected
687 {
688 if (m_Player)
689 {
690 m_Player.GetOnItemAttached().Remove(ItemAttached);
691 m_Player.GetOnItemDetached().Remove(ItemDetached);
692 m_Player.GetOnAttachmentSetLock().Remove(OnAttachmentReservationSet);
693 m_Player.GetOnAttachmentReleaseLock().Remove(OnAttachmentReservationRelease);
694 }
695
697 if (m_Player)
698 {
699 m_Player.GetOnItemAttached().Insert(ItemAttached);
700 m_Player.GetOnItemDetached().Insert(ItemDetached);
701 m_Player.GetOnAttachmentSetLock().Insert(OnAttachmentReservationSet);
702 m_Player.GetOnAttachmentReleaseLock().Insert(OnAttachmentReservationRelease);
703 }
704
705 //START - InitGhostSlots
706 string config_path_ghosts_slots = "CfgVehicles SurvivorBase InventoryEquipment playerSlots";
709
710 for ( int i = 0; i < player_ghosts_slots.Count(); i++ )
711 {
712 string slot_name = player_ghosts_slots.Get ( i );
713
714 int column = i % ITEMS_IN_ROW;
715 int row = i / ITEMS_IN_ROW;
716
718
719 icon.SetSlotParent(m_Player);
720 icon.GetMainWidget().Show( true );
721 icon.Clear();
722
723 GetGame().ConfigGetText( "CfgSlots" + " " + slot_name + " name", slot_name );
724 EntityAI item = m_Player.GetInventory().FindAttachment( InventorySlots.GetSlotIdFromString( slot_name ) );
725 if( item )
726 {
728 }
729 }
730 }

Перекрестные ссылки GetGame(), InventorySlots::GetSlotIdFromString(), GetSlotsIcon(), ItemAttached(), ItemDetached(), ITEMS_IN_ROW, m_Player, OnAttachmentReservationRelease() и OnAttachmentReservationSet().

◆ SplitItem()

override bool SplitItem ( )
inlineprotected
509 {
510 if (CanSplit())
511 {
512 if ( GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ) )
513 {
514 return GetFocusedContainer().SplitItem();
515 }
516 }
517
518 return false;
519 }

◆ SwapItemsInOrder()

void SwapItemsInOrder ( int slot1,
int slot2 )
inlineprotected
1012 {
1013 EntityAI item1 = m_Player.GetInventory().FindAttachment( slot1 );
1014 EntityAI item2 = m_Player.GetInventory().FindAttachment( slot2 );
1015
1016 if( item1 && item2 )
1017 {
1020 if( cont1 && cont2 )
1021 {
1022 int sort1 = cont1.GetRootWidget().GetSort();
1023 int sort2 = cont2.GetRootWidget().GetSort();
1024
1025 cont1.GetRootWidget().SetSort( sort2 );
1026 cont2.GetRootWidget().SetSort( sort1 );
1027
1028 m_Body.SwapItems( m_Body.Find( cont1 ), m_Body.Find( cont2 ) );
1029 }
1030 }
1031 RecomputeOpenedContainers();
1032 }

Перекрестные ссылки m_Player и m_ShowedItems.

◆ ToggleContainer()

void ToggleContainer ( Widget w,
EntityAI item )
inlineprotected
1057 {
1059 item.GetInventory().GetCurrentInventoryLocation( il );
1060 SlotsIcon icon = m_InventorySlots.Get( il.GetSlot() );
1062 if (c)
1063 {
1064 c.Toggle();
1065 Refresh();
1066 }
1067 }

Перекрестные ссылки m_InventorySlots, m_ShowedItems и Refresh().

Используется в ToggleWidget().

◆ ToggleWidget()

void ToggleWidget ( Widget w)
inlineprotected
1084 {
1085 if( ItemManager.GetInstance().IsDragging() )
1086 {
1087 return;
1088 }
1089 string name = w.GetName();
1090 name.Replace( "PanelWidget", "Render" );
1091 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
1092 if( ipw.GetItem() )
1093 {
1094 ToggleContainer( w, ipw.GetItem() );
1095 RecomputeOpenedContainers();
1096 }
1097
1098 Refresh();
1099 }
void ToggleContainer(Widget w, EntityAI item)
Definition PlayerContainer.c:1056

Перекрестные ссылки ItemManager::GetInstance(), name, Refresh() и ToggleContainer().

Используется в DoubleClick() и ExpandCollapseContainer().

◆ TransferItem()

override bool TransferItem ( )
inlineprotected
543 {
544 if (CanTakeToInventory())
545 {
548 if (left_area)
549 {
550 if (GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ))
551 {
552 return GetFocusedContainer().TransferItem();
553 }
554 else
555 {
557 if( item )
558 {
559 GetGame().GetPlayer().PredictiveTakeEntityToInventory( FindInventoryLocationType.CARGO, item );
560 return true;
561 }
562 }
563 }
564 else
565 {
566 if (!GetFocusedContainer().IsInherited( ContainerWithCargo ) && !GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ))
567 {
569 if( item )
570 {
571 GetGame().GetPlayer().PredictiveTakeEntityToInventory( FindInventoryLocationType.CARGO, item );
572 return true;
573 }
574 }
575 }
576 }
577 return false;
578 }
Definition LeftArea.c:2
proto native Widget GetParent()
Get parent of the Effect.
Definition Effect.c:405

Перекрестные ссылки GetFocusedItem(), GetGame() и GetParent().

◆ TransferItemToVicinity()

override bool TransferItemToVicinity ( )
inlineprotected
459 {
460 if (CanDrop())
461 {
462 if (GetFocusedContainer().IsInherited( ContainerWithCargo ) || GetFocusedContainer().IsInherited( ContainerWithCargoAndAttachments ))
463 {
464 return GetFocusedContainer().TransferItemToVicinity();
465 }
466 else
467 {
468 Man player = GetGame().GetPlayer();
470 if ( item && player.CanDropEntity( item ) )
471 {
472 if ( item.GetTargetQuantityMax() < item.GetQuantity() )
473 item.SplitIntoStackMaxClient( null, -1 );
474 else
475 player.PhysicalPredictiveDropItem( item );
476 return true;
477 }
478 }
479 }
480 return false;
481 }

Перекрестные ссылки GetFocusedItem() и GetGame().

◆ UnfocusPlayerAttachmentsContainer()

void UnfocusPlayerAttachmentsContainer ( )
inlineprotected
364 {
365 m_PlayerAttachmentsContainer.UnfocusAll();
366 }

Перекрестные ссылки m_PlayerAttachmentsContainer.

◆ UpdateInterval()

override void UpdateInterval ( )
inlineprotected
1035 {
1036 int i;
1037 for ( i = 0; i < m_InventorySlots.Count(); i++ )
1038 {
1039 SlotsIcon icon = m_InventorySlots.GetElement( i );
1040 if ( icon )
1041 {
1042 icon.UpdateInterval();
1043 }
1044 }
1045 for ( i = 0; i < m_ShowedItems.Count(); i++ )
1046 {
1047 Container cont = m_ShowedItems.GetElement( i );
1048 if ( cont )
1049 {
1050 cont.UpdateInterval();
1051 }
1052 }
1053 }

Перекрестные ссылки m_InventorySlots и m_ShowedItems.

◆ UpdateRadialIcon()

override void UpdateRadialIcon ( )
inlineprotected
12 {
13 if ( m_SlotIcon )
14 {
17 Widget rip = m_SlotIcon.GetRadialIconPanel();
18 rip.Show( !m_Player.GetInventory().IsInventoryLockedForLockType( HIDE_INV_FROM_SCRIPT ) && m_Player.CanDisplayCargo());
19 SetOpenForSlotIcon(show_radial_icon);
20 }
21 }
bool IsHidden()
Definition CollapsibleContainer.c:126

Перекрестные ссылки CollapsibleContainer::IsHidden() и m_Player.

Поля

◆ HEADER_INDEX_OFFSET

const int HEADER_INDEX_OFFSET = 2
protected

◆ m_InventorySlots

◆ m_Player

◆ m_PlayerAttachmentsContainer

◆ m_ShowedItems

◆ m_ShowedItemsIDs

ref map<int, ref Container> m_ShowedItemsIDs = new ref map<int, ref Container>
protected

Объявления и описания членов класса находятся в файле: