11 m_Items =
new TItemsMap;
21 if( !quickbarGridWidget )
35 quickbarGridWidget.GetScript( m_Grid );
36 m_Grid.SetController(
this );
37 m_Grid.GenerateQuickBarBackgroundTiles( 10 );
45 if( m_Grid.GetGridSize() != player.GetQuickBarSize() )
47 m_Grid.SetGridSize( player.GetQuickBarSize() );
51 for( i = 0; i < m_Grid.GetGridSize(); i++)
56 m_Items.Set( item,
Vector(i, 1, 1) );
62 m_Grid.UpdateQuickbarItems( m_Items );
70 for (
int i = 0; i < m_Grid.GetGridSize(); i++ )
73 if(item == itemToRemove)
75 player.RemoveQuickBarEntityShortcut( item );
83 Widget quickbar = grid.GetRoot();
92 Widget quickbar = grid.GetRoot();
106 string name = w.GetName();
116 if(!dragged_item && iw)
119 if ( dragged_item == NULL)
122 if (dragged_item && dragged_item.GetInventory().CanRemoveEntity() ==
false)
126 color =
ARGB( 150, 255, 1, 1 );
128 if( w.FindAnyWidget(
"Selected") )
130 w.FindAnyWidget(
"Selected").SetColor( color );
136 if( w.FindAnyWidget(
name ) )
138 w.FindAnyWidget(
name ).SetColor( color );
144 color =
ARGB( 150, 1, 255, 1 );
146 if( w.FindAnyWidget(
"Selected") )
148 w.FindAnyWidget(
"Selected").SetColor( color );
154 if( w.FindAnyWidget(
name ) )
156 w.FindAnyWidget(
name ).SetColor( color );
171 string name = w.GetName();
176 if(!dragged_item && iw)
179 if(dragged_item && dragged_item.GetHierarchyRootPlayer()!=
GetGame().
GetPlayer())
186 dragged_item =
ItemBase.Cast( player.GetQuickBarEntity(m_DraggingIndex) );
189 if (dragged_item && dragged_item.GetInventory().CanRemoveEntity())
191 player.SetQuickBarEntityShortcut(dragged_item, col);
193 if (quickbar_item && quickbar_item != dragged_item && m_DraggingIndex !=
INDEX_NOT_FOUND)
195 player.SetQuickBarEntityShortcut(quickbar_item, m_DraggingIndex);
202 menu.RefreshQuickbar();
219 menu.RefreshQuickbar();
230 m_DraggingIndex = col;
231 m_Grid.SetItemColor(item, InventoryGrid.ITEM_COLOR_DRAG);
237 int color = 0x0AFFFFFF;
239 EntityAI itemInHand = player.GetHumanInventory().GetEntityInHands();
240 if ( player && itemInHand == item )
242 if ( player.GetHumanInventory().FindUserReservedLocationIndex(item) != -1 || grid.CanAddItemInHandToInventory() )
243 color = InventoryGrid.ITEM_COLOR_QUICKBAR_H_GOOD;
245 color = InventoryGrid.ITEM_COLOR_QUICKBAR_H_BAD;
247 else if ( itemInHand )
250 color = InventoryGrid.ITEM_COLOR_QUICKBAR_I_BAD;
274 return ib.m_VarQuantityMax;
286 EntityAI itemInHand = player.GetHumanInventory().GetEntityInHands();
287 return itemInHand && player.GetInventory().CanAddEntityToInventory(itemInHand);
script counterpart to engine's class Inventory
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
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)
void InventoryQuickbar(Widget quickbarGridWidget)
override string GetItemQuantityText(InventoryItem item)
void UpdateItems(Widget quickbarGridWidget)
void ~InventoryQuickbar()
protected int m_DraggingIndex
void Remove(InventoryItem itemToRemove)
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)
protected InventoryGrid m_Grid
override int GetQuickbarItemColor(InventoryGrid grid, InventoryItem item)
override void OnItemLeave(InventoryGrid grid, Widget w)
override int HasItemQuantity(InventoryItem item)
override int GetItemCount(InventoryItem item)
protected ref TItemsMap m_Items
static ItemManager GetInstance()
EntityAI GetDraggedItem()
static string GetItemQuantityText(EntityAI item, bool showMax=false)
static int HasItemQuantity(notnull EntityAI item)
static float GetItemQuantity(InventoryItem item)
const int INDEX_NOT_FOUND
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
proto int Replace(string sample, string replace)
Replace all occurrances of 'sample' in 'str' by 'replace'.
int ARGB(int a, int r, int g, int b)