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

◆ UpdateQuickbarItemCard() [2/2]

void UIScriptedMenu::UpdateQuickbarItemCard ( RadialQuickbarItem quickbar_item)
inlineprotected

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

417 {
418 Widget item_card_widget = quickbar_item.GetRadialItemCard();
419
420 //get content panels
421 Widget item_details = item_card_widget.FindAnyWidget( "ItemDetails" );
422 TextWidget item_title = TextWidget.Cast( item_card_widget.FindAnyWidget( "ItemTitle" ) );
423
424 //set text
425 TextWidget text_widget = TextWidget.Cast( item_card_widget.FindAnyWidget( TEXT_ITEM_NAME ) );
426 EntityAI item = quickbar_item.GetItem();
427
428 Widget quantity_panel = item_card_widget.FindAnyWidget( "QuantityPanel" );
429 if ( item )
430 {
431 //item text
432 text_widget.SetText( quickbar_item.GetItem().GetDisplayName() );
433
434 //item preview
435 ItemPreviewWidget item_preview = ItemPreviewWidget.Cast( item_card_widget.FindAnyWidget( "ItemPreview" ) );
436 item_preview.SetItem( item );
437 item_preview.SetView( item.GetViewIndex() );
438 item_preview.SetModelOrientation( Vector( 0,0,0 ) );
439
440 //item quantity
441 Widget quantity_stack = quantity_panel.FindAnyWidget( "QuantityStackPanel" );
442 ProgressBarWidget quantity_bar = ProgressBarWidget.Cast( quantity_panel.FindAnyWidget( "QuantityBar" ) );
443 int has_quantity = QuantityConversions.HasItemQuantity( item );
444 //calculate and set quantity
445 if ( has_quantity == QUANTITY_HIDDEN )
446 {
447 quantity_panel.Show( false );
448 }
449 else if ( has_quantity == QUANTITY_COUNT )
450 {
451 //hide bar
452 quantity_bar.Show( false );
453
454 //show stack
455 TextWidget quantity_text = TextWidget.Cast( quantity_stack.FindAnyWidget( "Quantity" ) );
456 quantity_text.SetText( QuantityConversions.GetItemQuantityText( item ) );
457 quantity_stack.Show( true );
458 }
459 else if ( has_quantity == QUANTITY_PROGRESS )
460 {
461 //hide stack
462 quantity_stack.Show( false );
463
464 //show bar
465 float progress_max = quantity_bar.GetMax();
466 int max = item.ConfigGetInt( "varQuantityMax" );
467 int count = item.ConfigGetInt( "count" );
468 float quantity = QuantityConversions.GetItemQuantity( ItemBase.Cast( item ) );
469
470 if ( count > 0 )
471 {
472 max = count;
473 }
474 if ( max > 0 )
475 {
476
477 float value = Math.Round( ( quantity / max ) * 100 );
478 quantity_bar.SetCurrent( value );
479 }
480
481 quantity_bar.Show( true );
482 }
483
484 //display content panels
485 item_details.Show( true );
486 item_title.Show( false );
487 }
488 else if ( quickbar_item.GetCategorySwitchID() != -1 )
489 {
490 item_title.SetText( quickbar_item.GetItemName() );
491
492 item_details.Show( false );
493 item_title.Show( true );
494 }
495 else
496 {
497 item_title.SetText( "#container_empty" );
498
499 //display content panels
500 item_details.Show( false );
501 item_title.Show( true );
502 }
503 }
class LogManager EntityAI
class GP5GasMask extends MaskBase ItemBase
proto native void SetView(int viewIndex)
proto native void SetItem(EntityAI object)
proto native void SetModelOrientation(vector vOrientation)
const string TEXT_ITEM_NAME
Определения RadialQuickbarMenu.c:97
const int QUANTITY_PROGRESS
Определения 3_Game/DayZ/constants.c:521
const int QUANTITY_COUNT
Определения 3_Game/DayZ/constants.c:520
const int QUANTITY_HIDDEN
Определения 3_Game/DayZ/constants.c:519
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
WorkspaceWidget Widget
Defined in code.

Перекрестные ссылки QuantityConversions::GetItemQuantity(), QuantityConversions::GetItemQuantityText(), QuantityConversions::HasItemQuantity(), QUANTITY_COUNT, QUANTITY_HIDDEN, QUANTITY_PROGRESS, RadialQuickbarItem(), Math::Round(), ItemPreviewWidget::SetItem(), ItemPreviewWidget::SetModelOrientation(), ItemPreviewWidget::SetView(), TEXT_ITEM_NAME и Vector().