4 protected int m_CargoIndex = -1;
10 m_CargoGrid =
new CargoContainer(
this );
11 Insert( m_CargoGrid );
13 m_CargoGrid.GetRootWidget().SetSort( 1 );
16 RecomputeOpenedContainers();
28 return m_CargoGrid.IsEmpty();
33 return m_CargoGrid.IsItemActive();
38 return m_CargoGrid.CanCombine();
43 return m_CargoGrid.CanCombineAmmo();
48 return m_CargoGrid.IsItemWithQuantityActive();
53 if( value != m_LockCargo )
63 SetOpenState(!m_Closed);
74 SetOpenForSlotIcon(
true);
81 m_SlotIcon.GetRadialIconPanel().Show( !m_LockCargo );
91 SetOpenForSlotIcon(
false);
98 m_SlotIcon.GetRadialIconPanel().Show( !m_LockCargo );
104 return !m_Closed && !m_LockCargo;
111 if (
m_Entity.GetInventory().IsInventoryLockedForLockType( HIDE_INV_FROM_SCRIPT ) || !
m_Entity.CanDisplayCargo() )
114 if ( m_CargoGrid.IsVisible() )
116 RecomputeOpenedContainers();
122 if ( !m_CargoGrid.IsVisible() )
124 RecomputeOpenedContainers();
128 super.UpdateInterval();
129 m_CargoGrid.UpdateInterval();
139 m_SlotIcon.GetRadialIconPanel().Show( !hide );
146 return m_CargoGrid.IsFirstContainerFocused();
151 return m_CargoGrid.IsLastContainerFocused();
156 m_CargoGrid.SetDefaultFocus( while_micromanagment_mode );
161 m_CargoGrid.Unfocus();
166 return m_CargoGrid.SplitItem();
171 return m_CargoGrid.EquipItem();
176 return m_CargoGrid.TransferItem();
181 return m_CargoGrid.TransferItemToVicinity();
186 return m_CargoGrid.InspectItem();
192 m_CargoIndex = cargo_index;
194 SetOpenState(
true );
196 m_CargoGrid.SetEntity( entity, immedUpdate );
197 m_CargoGrid.UpdateHeaderText();
198 m_ClosableHeader.SetItemPreview( entity );
199 CheckHeaderDragability();
202 if (
m_Entity.GetInventory().IsInventoryLockedForLockType( HIDE_INV_FROM_SCRIPT ) || !
m_Entity.CanDisplayCargo() )
210 GetMainWidget().Update();
229 string name = w.GetName();
230 name.Replace(
"PanelWidget",
"Render" );
241 return ipw.GetItem();
252 if( !player.CanManipulateInventory() )
264 if( !item.GetInventory().CanRemoveEntity() )
271 #ifdef PLATFORM_CONSOLE
280 c_x = cargo.GetHeight();
281 c_y = cargo.GetWidth();
285 #ifdef PLATFORM_CONSOLE
287 y = cargo.GetItemCount();
290 dst.SetCargoAuto(cargo, item,
x,
y, item.GetInventory().GetFlipCargo());
293 #ifdef PLATFORM_CONSOLE
294 if( dst.IsValid() &&
m_Entity.GetInventory().LocationCanAddEntityEx(dst))
296 if(
m_Entity && c_x >
x && c_y >
y &&
m_Entity.GetInventory().LocationCanAddEntityEx(dst))
316 if( w.FindAnyWidget(
"Cursor") )
318 w.FindAnyWidget(
"Cursor").SetColor( color );
322 string name = w.GetName();
323 name.Replace(
"PanelWidget",
"Cursor" );
324 if( w.FindAnyWidget(
name ) )
326 w.FindAnyWidget(
name ).SetColor( color );
336 GetMainWidget().Update();
337 GetMainWidget().GetScreenSize( xx, yy );
338 if( GetMainWidget().FindAnyWidget(
"Background") )
340 GetMainWidget().FindAnyWidget(
"Background").Show(
true );
341 GetMainWidget().FindAnyWidget(
"Background").SetSize( xx, yy );
349 #ifdef PLATFORM_CONSOLE
350 if( m_CargoGrid.HasItem( item ) )
356 #ifdef PLATFORM_CONSOLE
367 c_x = cargo.GetHeight();
368 c_y = cargo.GetWidth();
372 #ifdef PLATFORM_CONSOLE
374 y = cargo.GetItemCount();
377 dst.SetCargoAuto(cargo, item,
x,
y, item.GetInventory().GetFlipCargo());
381 item.GetInventory().GetCurrentInventoryLocation(src);
383 if(src.CompareLocationOnly(dst) && src.GetFlip() == dst.GetFlip())
386 #ifdef PLATFORM_CONSOLE
387 if(dst.IsValid() &&
m_Entity.GetInventory().LocationCanAddEntityEx(dst))
389 if( c_x >
x && c_y >
y &&
m_Entity.GetInventory().LocationCanAddEntityEx(dst))
396 Icon icon = m_CargoGrid.GetIcon( item );
398 if( icon && w && w.FindAnyWidget(
"Cursor") )
400 w.FindAnyWidget(
"Cursor").SetColor(
ColorManager.BASE_COLOR );
414 if( !item.GetInventory().CanRemoveEntity() || !player.CanManipulateInventory() )
417 float stackable = item_base.GetTargetQuantityMax();
419 if( stackable == 0 || stackable >= item_base.GetQuantity() )
421 player.PredictiveTakeEntityToHands( item );
423 else if( stackable != 0 && stackable < item_base.GetQuantity() )
425 item_base.SplitIntoStackMaxHandsClient( player );
443 if( item.GetInventory().CanRemoveEntity() && player.CanManipulateInventory() &&
m_Entity.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() ) && !
m_Entity.GetInventory().HasEntityInCargo( item ) )
473 if(
GetEntity() && item.GetInventory().GetCurrentInventoryLocation(src))
478 player.PredictiveTakeToDst(src, dst);
481 bool can_add =
m_Entity.GetInventory().CanAddEntityInCargo( item, item.GetInventory().GetFlipCargo() );
482 bool in_cargo = !player.GetInventory().HasEntityInInventory( item ) || !
m_Entity.GetInventory().HasEntityInCargo( item );
483 if( can_add && in_cargo )
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
represents base for cargo storage for entities
override bool IsFirstContainerFocused()
override void SetDefaultFocus(bool while_micromanagment_mode=false)
override void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
override bool IsLastContainerFocused()
void DropReceived(Widget w, int x, int y)
override bool EquipItem()
override void DraggingOver(Widget w, int x, int y, Widget receiver)
override bool CanCombineAmmo()
override bool CanCombine()
void SetEntity(EntityAI entity, int cargo_index=0, bool immedUpdate=true)
override bool InspectItem()
override bool TransferItemToVicinity()
ref CargoContainer m_CargoGrid
override bool IsItemActive()
override bool IsItemWithQuantityActive()
override void UpdateInterval()
override bool TransferItem()
CargoContainer GetCargo()
EntityAI GetItemPreviewItem(Widget w)
void LockCargo(bool value)
override EntityAI GetFocusedContainerEntity()
override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
override bool SplitItem()
override void UnfocusAll()
void ContainerWithCargo(LayoutHolder parent, int sort=-1)
void TakeIntoHands(notnull PlayerBase player, notnull EntityAI item)
bool DraggingOverGrid(Widget w, int x, int y, Widget reciever)
override bool IsDisplayable()
EntityAI GetDraggedItem()
void ShowSourceDropzone(EntityAI item)
Widget GetRightDropzone()
void SetIsDragging(bool is_dragging)
static ItemManager GetInstance()
void SetDefaultOpenState(string type, bool is_opened)
proto native CGame GetGame()
FindInventoryLocationType
flags for searching locations in inventory