39 static int ITEM_COLOR_QUICKBAR_NORMAL = 0x0AFFFFFF;
40 static int ITEM_COLOR_QUICKBAR_H_GOOD = 0x2A6e980d;
41 static int ITEM_COLOR_QUICKBAR_H_BAD = 0x2A980d0d;
42 static int ITEM_COLOR_QUICKBAR_I_BAD = 0x2A986e0d;
43 static int ITEM_COLOR_NORMAL = 0x0AFFFFFF;
44 static int ITEM_COLOR_DRAG = 0x0AFFFFFF;
61 m_Items =
new TItemsMap;
97 if (m_Controller) m_Controller.
OnItemEnter(
this, w, 0, col);
105 if (m_Controller) m_Controller.
OnItemLeave(
this, w);
129 m_Controller.OnItemRightClick(
this, w, 0, col);
134 m_IsMouseLeftDown =
true;
150 if( m_IsMouseLeftDown )
152 m_Controller.OnItemLeftClick(
this, w, 0, m_col);
153 m_IsMouseLeftDown =
false;
192 if (m_Controller) m_Controller.OnItemDoubleClick(
this, w, 0, col);
226 if( m_ItemWidgets.GetKeyByValueChecked( w, index ) )
228 else if( m_BackgroundWidgets.GetKeyByValueChecked( w, index ) )
236 return m_BackgroundWidgets.GetKeyByValue( w );
247 for(
int i = 0; i < m_BackgroundWidgets.Count(); i++ )
251 m_BackgroundWidgets.Get( i ).Show(
true );
255 m_BackgroundWidgets.Get( i ).Show(
false );
262 return ( m_GridSize > index && index > -1 );
283 if (m_Controller) m_Controller.
OnItemDrag(
this, w, 0, m_col);
296 int col =
GetCol( reciever );
317 int col =
GetCol( reciever );
340 if( m_ItemWidgets.Contains( index ) )
341 return m_ItemWidgets.Get( index );
349 if( m_BackgroundWidgets.Contains( index ) )
350 return m_BackgroundWidgets.Get( index );
362 if (m_Items.Contains(item))
364 vector data = m_Items.Get(item);
374 m_Controller = controller;
384 for (
int i = 0; i < count; i++)
389 label_widget.SetText( (i+1).
ToString() );
390 label_widget2.SetText( (i+1).
ToString() );
391 m_BackgroundWidgets.Insert( i, root_widget );
412 for (i = 0; i < c; i++)
414 item = m_Items.GetKey(i);
417 bool remove_item =
false;
419 if (items.Contains(item) ==
false)
426 if ((m_Items.Get(item) - items.Get(item)).LengthSq() > 0.01)
443 for (i = 0; i < items.Count(); i++)
445 item = items.GetKey(i);
446 data = items.Get(item);
448 if (m_Items.Contains(item) ==
false)
458 for (i = 0; i < items.Count(); i++)
460 item = items.GetKey(i);
461 data = items.Get(item);
468 void UpdateItems(TItemsMap items,
bool show_quantity,
bool show_temperature )
484 for (i = 0; i < c; i++)
486 item = m_Items.GetKey(i);
488 bool remove_item =
false;
490 if (items.Contains(item) ==
false)
497 if ((m_Items.Get(item) - items.Get(item)).LengthSq() > 0.01)
513 for (i = 0; i < items.Count(); i++)
515 item = items.GetKey(i);
516 data = items.Get(item);
518 if (m_Items.Contains(item) ==
false)
525 for (i = 0; i < items.Count(); i++)
527 item = items.GetKey(i);
528 data = items.Get(item);
541 for (i = 0; i < m_Items.Count(); i++)
543 item = m_Items.GetKey(i);
544 data = m_Items.Get(item);
557 for (i = 0; i < m_Items.Count(); i++)
559 item = m_Items.GetKey(i);
560 data = m_Items.Get(item);
573 Widget item_w = bck.FindAnyWidget(
"GridItem");
577 item_w.SetColor( color );
592 item_w = bck.FindAnyWidget(
"GridItem");
596 Widget quantity_panel = bck.FindAnyWidget(
"QuantityPanel");
598 ProgressBarWidget quantity_progress = ProgressBarWidget.Cast( bck.FindAnyWidget(
"QuantityBar") );
599 Widget quantity_stack = bck.FindAnyWidget(
"QuantityStackPanel");
602 quantity_panel.Show(
false );
606 quantity_panel.Show(
true );
610 quantity_stack.Show(
true );
611 quantity_progress.Show(
false );
615 float progress_max = quantity_progress.GetMax();
626 float value =
Math.
Round( ( quantity / max ) * 100 );
627 quantity_progress.SetCurrent( value );
629 quantity_stack.Show(
false );
630 quantity_progress.Show(
true );
634 if ( show_temperature )
638 int color = m_Controller.GetItemColor(
this, item);
641 item_w.SetColor( color );
652 m_Items.Set(item, data);
660 Widget item_w = item_w_bck.FindAnyWidget(
"GridItem");
662 bck.FindAnyWidget(
"LabelTR").Show(
true );
663 bck.FindAnyWidget(
"LabelCC").Show(
false );
665 m_ItemWidgets.Insert( index, item_w );
683 m_Items.Set(item, data);
690 Widget item_w_bck = bck.FindAnyWidget(
"GridItemBck");
694 bck.FindAnyWidget(
"LabelTR").Show(
true );
695 bck.FindAnyWidget(
"LabelCC").Show(
false );
697 Widget item_w = item_w_bck.FindAnyWidget(
"GridItem");
704 item_preview.Show(
true );
713 item_preview.Show(
false );
723 item_w.SetColor(ITEM_COLOR_NORMAL);
730 if (m_Items.Contains(item))
732 vector data = m_Items.Get(item);
737 Widget item_w = bck.FindAnyWidget(
"GridItem");
746 return m_Items.Contains(item);
754 if ( item && m_Items.Contains( item ) )
756 vector data = m_Items.Get(item);
763 itemW = bck.FindAnyWidget(
"GridCell");
766 bck.FindAnyWidget(
"LabelTR").Show(
false );
767 bck.FindAnyWidget(
"LabelCC").Show(
true );
770 m_Items.Remove( item );
771 m_ItemWidgets.Remove( index );
proto native WorkspaceWidget GetWorkspace()
override void OnItemDropReceived(InventoryGrid grid, Widget w, int row, int col)
override bool CanAddItemInHandToInventory()
override int GetItemQuantityMax(InventoryItem item)
override void OnItemEnter(InventoryGrid grid, Widget w, int row, int col)
override string GetItemQuantityText(InventoryItem item)
override float GetItemQuantity(InventoryItem item)
override void OnItemDrag(InventoryGrid grid, Widget w, int row, int col)
override void OnItemDrop(InventoryGrid grid, Widget w, int row, int col)
override void OnItemDraggingOver(InventoryGrid grid, Widget w, int row, int col)
override int GetQuickbarItemColor(InventoryGrid grid, InventoryItem item)
override void OnItemLeave(InventoryGrid grid, Widget w)
override int HasItemQuantity(InventoryItem item)
override int GetItemCount(InventoryItem item)
proto native CGame GetGame()
const int QUANTITY_PROGRESS
const int QUANTITY_HIDDEN
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Round(float f)
Returns mathematical round of value.