Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
handspreview.c
Go to the documentation of this file.
2{
3 protected ref Icon m_Icon;
5
6 protected float m_IconSize;
7
8 protected ItemBase m_Item
9
11 {
12 GetGame().GetPlayer().GetOnItemAddedToHands().Insert( CreateNewIcon );
13 GetGame().GetPlayer().GetOnItemRemovedFromHands().Insert( DeleteIcon );
14 }
15
17 {
18 GetGame().GetPlayer().GetOnItemAddedToHands().Remove( CreateNewIcon );
19 GetGame().GetPlayer().GetOnItemRemovedFromHands().Remove( DeleteIcon );
20 }
21
22 void RefreshQuantity( EntityAI m_Item_to_refresh )
23 {
24 if ( m_Icon )
25 {
27 }
28 }
29
31 {
32 return m_Item;
33 }
34
36 {
37 return m_Icon;
38 }
39
40 override void SetDefaultFocus(bool while_micromanagment_mode = false)
41 {
42 super.SetDefaultFocus(while_micromanagment_mode);
43 if ( m_Icon )
44 m_Icon.SetActive(true);
45 }
46
47 override void SetLastFocus()
48 {
49 super.SetLastFocus();
50 if ( m_Icon )
51 m_Icon.SetActive(true);
52 }
53
54 override void Unfocus()
55 {
56 super.Unfocus();
57 if ( m_Icon )
58 m_Icon.SetActive(false);
59 }
60
62 {
63 return m_IconSize;
64 }
65
66 override void SetLayoutName()
67 {
68 m_LayoutName = WidgetLayoutName.HandsPreview;
69 }
70
72 {
73 delete m_Icon;
74 m_Item = null;
75 }
76
77 override void UpdateInterval()
78 {
79 bool show_combine_swap = ItemManager.GetInstance().IsDragging();
80
81 #ifdef PLATFORM_CONSOLE
82 if ( m_Icon && !m_Icon.IsDragged() && GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer() )
83 #else
84 if ( m_Icon && !m_Icon.IsDragged() )
85 #endif
86 {
87 m_Icon.GetMainWidget().FindAnyWidget( "Combine" ).Show( show_combine_swap );
88 m_Icon.GetMainWidget().FindAnyWidget( "Swap" ).Show( show_combine_swap );
89 }
90
91 if ( m_Icon )
92 {
94 }
95 }
96
98 {
99 float y;
100 GetRootWidget().GetParent().GetParent().GetParent().GetParent().GetScreenSize( m_IconSize, y );
101 m_IconSize = m_IconSize / 10;
102
103 m_Icon = new Icon( this, true );
104 m_Icon.Refresh();
105 if ( m_Icon )
106 {
107 m_Item = item;
108 m_Icon.Init( m_Item );
110 ( HandsContainer.Cast( m_Parent ) ).ShowAtt( m_Item );
111 m_Icon.Refresh();
112 }
113
114 m_RootWidget.SetColor( ARGB( 180, 0, 0, 0 ) );
115 m_Parent.GetParent().Refresh();
116 Inventory.GetInstance().UpdateConsoleToolbar();
117
118 HandsContainer parent = HandsContainer.Cast( m_Parent );
119 HandsHeader header = HandsHeader.Cast( parent.GetHeader() );
120
121 if( m_Item && !m_Item.GetInventory().GetCargo() )
122 {
123 string display_name = m_Item.GetDisplayName();
124 display_name.ToUpper();
125 header.SetName( display_name );
126 }
127 }
128
130 {
131 RemoveItem();
132 ( HandsContainer.Cast( m_Parent ) ).DestroyAtt();
133 ( HandsContainer.Cast( m_Parent ) ).DestroyCargo();
134 ( HandsContainer.Cast( m_Parent ) ).RemoveItem();
136 m_RootWidget.SetColor( ARGB( 166, 80, 80, 80 ) );
137 m_Parent.GetParent().Refresh();
138 Inventory.GetInstance().UpdateConsoleToolbar();
139 }
140
141 override bool SelectItem()
142 {
143 if( m_Item )
144 {
146 return true;
147 }
148 return false;
149 }
150
151 override bool Select()
152 {
153 Man player = GetGame().GetPlayer();
154 EntityAI item_in_hands = m_Item;
156 {
158 if( selected_item && selected_item.GetInventory().CanRemoveEntity() )
159 {
160 if(item_in_hands && item_in_hands.GetInventory().CanRemoveEntity())
161 {
162 if( GameInventory.CanSwapEntitiesEx( item_in_hands, selected_item ) )
163 {
164 player.PredictiveSwapEntities( item_in_hands, selected_item );
165 return true;
166 }
167 }
168 else
169 {
170 if ( player.GetHumanInventory().CanAddEntityInHands( selected_item ) && selected_item.GetInventory().CanRemoveEntity())
171 {
172 ItemBase item_base = ItemBase.Cast( selected_item );
173 float stackable = item_base.GetTargetQuantityMax();
174 if (stackable == 0 || item_base.GetQuantity() <= stackable)
175 {
176 GetGame().GetPlayer().PredictiveTakeEntityToHands( item_base );
177 return true;
178 }
179 else if( stackable != 0 && stackable <= item_base.GetQuantity() )
180 {
181 item_base.SplitIntoStackMaxHandsClient(PlayerBase.Cast( GetGame().GetPlayer() ));
182 return true;
183 }
184 }
185 }
186 }
187 }
188 return false;
189 }
190}
void Inventory(LayoutHolder parent)
Definition inventory.c:74
ItemBase m_Item
Definition actioninput.c:16
script counterpart to engine's class Inventory
Definition inventory.c:79
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
Definition inventory.c:628
override Header GetHeader()
override bool Select()
float GetIconSize()
override void SetLayoutName()
override void UpdateInterval()
EntityAI m_AttachmentsInitialized
Definition handspreview.c:4
override bool SelectItem()
float m_IconSize
Definition handspreview.c:6
void RefreshQuantity(EntityAI m_Item_to_refresh)
ref Icon m_Icon
Definition handspreview.c:3
override void Unfocus()
override void SetDefaultFocus(bool while_micromanagment_mode=false)
override EntityAI GetFocusedItem()
void CreateNewIcon(ItemBase item)
void RemoveItem()
ItemBase m_Item void HandsPreview(LayoutHolder parent)
void DeleteIcon()
override void SetLastFocus()
void ~HandsPreview()
Definition icon.c:2
void FullScreen()
Definition icon.c:1244
override void Refresh()
Definition icon.c:1216
bool IsDragged()
Definition icon.c:98
override void SetActive(bool active)
Definition icon.c:103
void SetQuantity()
Definition icon.c:1322
override void UpdateInterval()
Definition icon.c:1755
void Init(EntityAI obj)
Definition icon.c:1500
void SetSelectedItemEx(EntityAI selected_item, Container selected_container, LayoutHolder selected_icon)
EntityAI GetSelectedItem()
Definition itemmanager.c:85
bool IsDragging()
bool IsMicromanagmentMode()
Definition itemmanager.c:70
static ItemManager GetInstance()
proto native CGame GetGame()
Icon y
PlayerBase GetPlayer()
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]
int ARGB(int a, int r, int g, int b)
Definition proto.c:322
Widget m_Parent
Definition sizetochild.c:92