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

◆ ShowItemsInContainers()

void VicinitySlotsContainer::ShowItemsInContainers ( array< EntityAI > items)
inlineprotected

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

237 {
238 EntityAI item;
239 EntityAI selectedItem = ItemManager.GetInstance().GetSelectedItem();
240 SlotsIcon icon;
241 int x;
242 int visible_items_count = 0;
243 int visible_rows = 0;
244 ref array<EntityAI> visible_items = new array<EntityAI>;
245
246 for ( x = 0; x < items.Count(); ++x )
247 {
248 item = items.Get( x );
249
250 if ( item == null || ExcludeFromContainer(item) )
251 continue;
252
253 visible_items.Insert( item );
254 visible_items_count++;
255 }
256
257 RecomputeNumberOfContainers( visible_items );
258
259 for ( x = 0; x < visible_items_count; ++x )
260 {
261 item = visible_items.Get( x );
262 int row = (int)Math.Floor( x / ITEMS_IN_ROW );
263 int column = x % ITEMS_IN_ROW;
264 icon = SlotsContainer.Cast( m_Container.Get( row ) ).GetSlotIcon( column );
265
266 icon.GetMainWidget().Show( true );
267 icon.GetPanelWidget().SetUserID( item.GetID() );
268
269 #ifdef PLATFORM_CONSOLE
270 if (selectedItem == item)
271 {
272 icon.GetMicromanagedPanel().Show(true);
273 }
274 else
275 {
276 icon.GetMicromanagedPanel().Show(false);
277 }
278 #endif
279
280 if ( m_ShowedItems.Find( item ) != x )
281 icon.Init( item );
282 icon.UpdateInterval();
283
284 bool draggable = ItemManager.GetInstance().EvaluateContainerDragabilityDefault(item);
285 if ( !draggable && GetDragWidget() == icon.GetPanelWidget() )
287 ItemManager.GetInstance().SetWidgetDraggable( icon.GetPanelWidget(), draggable );
288
289 ref map<int, ref Container> showed_items = ( VicinityContainer.Cast( m_Parent ) ).m_ShowedItemsIDs;
290
291 Container conta = Container.Cast( showed_items.Get( item.GetID() ) );
292 if ( conta )
293 {
294 conta.SetSlotIcon(icon);
295 }
296
297 if ( conta && conta.IsDisplayable() )
298 {
299 conta.UpdateRadialIcon();
300 }
301 else
302 {
303 icon.GetRadialIconPanel().Show( false );
304 if ( conta )
305 conta.OnHide();
306 }
307 }
308
309 SlotsContainer slots_last = SlotsContainer.Cast( m_Container.Get( visible_items.Count() / ITEMS_IN_ROW ) );
310
311 for ( int c = visible_items_count % ITEMS_IN_ROW; c < ITEMS_IN_ROW; ++c )
312 {
313 icon = slots_last.GetSlotIcon( c );
314 icon.GetMainWidget().Show( false );
315 icon.Clear();
316 }
317
318 //#ifndef PLATFORM_CONSOLE
319 if ( visible_items_count % ITEMS_IN_ROW == 0 )
320 {
321 slots_last = SlotsContainer.Cast( m_Container.Get( m_Container.Count() - 1 ) );
322 slots_last.GetSlotIcon( 0 ).GetMainWidget().Show( true );
323 slots_last.GetSlotIcon( 0 ).GetGhostSlot().Show( false );
324 slots_last.GetMainWidget().Update();
325 }
326 //#endif
327
328 m_ShowedItems = visible_items;
329 }
Param3 int
class LogManager EntityAI
const int ITEMS_IN_ROW
Определения Attachments.c:1
const string Container
Определения CentralEconomy.c:6
map
Определения ControlsXboxNew.c:4
Icon x
Widget m_Parent
Определения SizeToChild.c:92
override void UpdateRadialIcon()
Определения ClosableContainer.c:28
override bool IsDisplayable()
Определения ClosableContainer.c:17
SlotsIcon GetSlotIcon(int index)
Определения SlotsContainer.c:207
Widget GetPanelWidget()
Определения SlotsIcon.c:205
Widget GetMicromanagedPanel()
Определения SlotsIcon.c:255
void Init(EntityAI obj, bool reservation=false)
Определения SlotsIcon.c:501
void Clear()
Определения SlotsIcon.c:612
override void UpdateInterval()
Определения SlotsIcon.c:791
Widget GetRadialIconPanel()
Определения SlotsIcon.c:300
ImageWidget GetGhostSlot()
Определения SlotsIcon.c:235
bool ExcludeFromContainer(EntityAI item)
Decides on the icon visibility.
Определения VicinitySlotsContainer.c:230
ref array< EntityAI > m_ShowedItems
Определения VicinitySlotsContainer.c:6
void RecomputeNumberOfContainers(array< EntityAI > items)
Определения VicinitySlotsContainer.c:576
ref AttachmentsGroupContainer m_Container
Определения VicinitySlotsContainer.c:3
proto native Widget CancelWidgetDragging()
proto native Widget GetDragWidget()

Перекрестные ссылки CancelWidgetDragging(), SlotsIcon::Clear(), ItemManager::EvaluateContainerDragabilityDefault(), ExcludeFromContainer(), Math::Floor(), GetDragWidget(), SlotsIcon::GetGhostSlot(), ItemManager::GetInstance(), SlotsIcon::GetMicromanagedPanel(), SlotsIcon::GetPanelWidget(), SlotsIcon::GetRadialIconPanel(), ItemManager::GetSelectedItem(), SlotsContainer::GetSlotIcon(), SlotsIcon::Init(), Container::IsDisplayable(), ITEMS_IN_ROW, m_Container, m_Parent, m_ShowedItems, RecomputeNumberOfContainers(), ItemManager::SetWidgetDraggable(), SlotsIcon::UpdateInterval(), Container::UpdateRadialIcon() и x.