DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
HandsArea.c
См. документацию.
2{
3 protected ScrollWidget m_Scroller;
5 protected ref SizeToChild m_HandsResizer;
6
7 protected bool m_ShouldChangeSize = true;
8
9 void HandsArea( LayoutHolder parent )
10 {
11 m_HandsContainer = new HandsContainer( this );
12 m_Body.Insert(m_HandsContainer);
13
14 if ( m_ImmedUpdate )
15 m_MainWidget.Update();
16
17 m_ParentWidget.GetScript( m_HandsResizer );
18 m_Scroller = ScrollWidget.Cast( m_ParentWidget );
19 RecomputeOpenedContainers();
20 }
21
23 {
24 Widget swap_cursor = m_MainWidget.FindAnyWidget("SwapCursor");
25
26 if ( swap_cursor )
27 return swap_cursor.IsVisible();
28 else
29 return false;
30 }
31
33 {
34 Widget combine_cursor = m_MainWidget.FindAnyWidget("CombineCursor");
35
36 if ( combine_cursor )
37 return combine_cursor.IsVisible();
38 else
39 return false;
40 }
41
42 override ScrollWidget GetScrollWidget()
43 {
44 return m_Scroller;
45 }
46
47 override void UpdateSelectionIcons()
48 {
49 #ifdef PLATFORM_CONSOLE
50 ScrollToActiveContainer();
51 #endif
52 }
53
54 override void UpdateInterval()
55 {
56 if (!m_Scroller.IsScrollbarVisible())
57 {
58 m_Scroller.VScrollToPos01(0.0);
59 }
60 else if (m_Scroller.GetVScrollPos01() > 1.0)
61 {
62 m_Scroller.VScrollToPos01(1.0);
63 }
64 m_HandsContainer.UpdateInterval();
65
66 float x, y;
67 float x2, y2;
68 m_Scroller.GetScreenSize( x, y );
69 m_MainWidget.GetScreenSize( x2, y2 );
70 if ( y2 != y )
71 m_ShouldChangeSize = true;
72
73 bool changed_size;
74 if ( m_ShouldChangeSize && m_HandsResizer.ResizeParentToChild( changed_size, InventoryMenu.GetHeight() * 0.5 ) )
75 m_Scroller.SetAlpha( 0.3921 );
76 else
77 m_Scroller.SetAlpha( 0 );
78
79 if ( changed_size )
80 m_ShouldChangeSize = false;
81 }
82
83 override void SetLayoutName()
84 {
85 m_LayoutName = WidgetLayoutName.HandsArea;
86 }
87
88 override void SetParentWidget()
89 {
90 m_ParentWidget = m_Parent.GetMainWidget().FindAnyWidget( "HandsPanel" );
91 }
92
93 override void OnShow()
94 {
95 super.OnShow();
96 m_HandsContainer.OnShow();
97 }
98
99 override void Refresh()
100 {
102 m_ShouldChangeSize = true;
103 }
104
106 {
107 super.SetSameLevelNextActive();
108 Refresh();
109 }
110
112 {
113 super.SetSameLevelPreviousActive();
114 Refresh();
115 }
116
117 void DraggingOverHandsPanel( Widget w, int x, int y, Widget receiver )
118 {
119 if ( w == NULL )
120 {
121 return;
122 }
123
124 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
125
126 if( !ipw )
127 {
128 string name = w.GetName();
129 name.Replace( "PanelWidget", "Render" );
130 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
131 }
132
133 if( !ipw )
134 {
135 ipw = ItemPreviewWidget.Cast( w );
136 }
137
138 if( !ipw || !ipw.IsInherited( ItemPreviewWidget ) )
139 {
140 return;
141 }
142
143 if( ipw.GetItem() && GetGame().GetPlayer().GetHumanInventory().CanAddEntityIntoHands( ipw.GetItem() ) )
144 {
147 ItemManager.GetInstance().GetCenterDropzone().SetAlpha( 1 );
148 }
149 else
150 {
153 ItemManager.GetInstance().GetCenterDropzone().SetAlpha( 1 );
154 }
155 }
156
157 void OnHandsPanelDropReceived( Widget w, int x, int y, Widget receiver )
158 {
159 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
160 if( !ipw )
161 {
162 string name = w.GetName();
163 name.Replace( "PanelWidget", "Render" );
164 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
165 }
166
167 if( !ipw )
168 {
169 ipw = ItemPreviewWidget.Cast( w );
170 }
171
172 if( !ipw || !ipw.GetItem() || !ipw.IsInherited( ItemPreviewWidget ) )
173 {
174 return;
175 }
176
177 if( !ipw.GetItem().GetInventory().CanRemoveEntity() )
178 return;
179
180 if( GetGame().GetPlayer().GetHumanInventory().CanAddEntityIntoHands( ipw.GetItem() ) )
181 {
182 ItemBase item_base = ItemBase.Cast( ipw.GetItem() );
183 float stackable = item_base.GetTargetQuantityMax(-1);
184
185 if( stackable == 0 || item_base.GetQuantity() <= stackable )
186 {
187 GetGame().GetPlayer().PredictiveTakeEntityToHands( item_base );
188 }
189 else if( stackable != 0 && stackable <= item_base.GetQuantity() )
190 {
191 item_base.SplitIntoStackMaxHandsClient( PlayerBase.Cast( GetGame().GetPlayer() ) );
192 }
193 }
194 }
195}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Icon x
Icon y
void InventoryMenu()
Определения InventoryMenu.c:20
PlayerBase GetPlayer()
Определения ModifierBase.c:51
Widget m_Parent
Определения SizeToChild.c:92
Widget m_ParentWidget
Определения UiHintPanel.c:318
proto native DayZPlayer GetPlayer()
void SetColor(Widget w, int color)
Определения ColorManager.c:32
static int GREEN_COLOR
Определения ColorManager.c:17
static int RED_COLOR
Определения ColorManager.c:16
static ColorManager GetInstance()
Определения ColorManager.c:27
Определения ColorManager.c:2
Определения CargoContainer.c:3
void OnHandsPanelDropReceived(Widget w, int x, int y, Widget receiver)
Определения HandsArea.c:157
override void SetSameLevelPreviousActive()
Определения HandsArea.c:111
override ScrollWidget GetScrollWidget()
Определения HandsArea.c:42
bool IsSwapActive()
Определения HandsArea.c:22
ScrollWidget m_Scroller
Определения HandsArea.c:3
bool IsCombineActive()
Определения HandsArea.c:32
bool m_ShouldChangeSize
Определения HandsArea.c:7
override void OnShow()
Определения HandsArea.c:93
override void Refresh()
Определения HandsArea.c:99
override void SetParentWidget()
Определения HandsArea.c:88
void HandsArea(LayoutHolder parent)
Определения HandsArea.c:9
override void SetSameLevelNextActive()
Определения HandsArea.c:105
ref SizeToChild m_HandsResizer
Определения HandsArea.c:5
override void UpdateInterval()
Определения HandsArea.c:54
override void UpdateSelectionIcons()
Определения HandsArea.c:47
ref HandsContainer m_HandsContainer
Определения HandsArea.c:4
override void SetLayoutName()
Определения HandsArea.c:83
void DraggingOverHandsPanel(Widget w, int x, int y, Widget receiver)
Определения HandsArea.c:117
Определения HandsContainer.c:2
Определения InventoryItem.c:731
Widget GetCenterDropzone()
Определения ItemManager.c:351
void HideDropzones()
Определения ItemManager.c:287
static ItemManager GetInstance()
Определения ItemManager.c:282
Определения ItemManager.c:2
proto native EntityAI GetItem()
Определения gameplay.c:277
Определения Container.c:2
Определения PlayerBaseClient.c:2
Определения EnWidgets.c:190
const string HandsArea
Определения WidgetLayoutName.c:46
proto native CGame GetGame()