Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
vicinitycontainer.c
Go to the documentation of this file.
2{
3 ref VicinitySlotsContainer m_VicinityIconsContainer;
5 ref map<int, ref Container> m_ShowedItemsIDs = new map<int, ref Container>;
6 ref array<EntityAI> m_ShowedItemIcons = new array<EntityAI>;
8 protected bool m_IsProcessing = false; // Prevents refreshing every time a child is added while it is still processing
9
10 const float DISTANCE_TO_ENTITIES = 1.0;
11 const float DISTANCE_TO_THE_REST = 0.5;
12
13 void VicinityContainer( LayoutHolder parent, int sort = -1 )
14 {
15 m_VicinityIconsContainer = new VicinitySlotsContainer( this );
16 m_Body.Insert( m_VicinityIconsContainer );
17 m_VicinityIconsContainer.GetRootWidget().SetColor(166 << 24 | 120 << 16 | 120 << 8 | 120);
18
19 #ifndef PLATFORM_CONSOLE
20 LeftArea leftArea = LeftArea.Cast(GetParent());
21 if (leftArea)
22 {
23 leftArea.GetSlotsHeader().AddChild(GetHeader().GetRootWidget());
24 leftArea.GetSlotsArea().AddChild(m_VicinityIconsContainer.GetRootWidget());
25 }
26 #endif
27
28 m_MainWidget = m_RootWidget.FindAnyWidget( "body" );
29 WidgetEventHandler.GetInstance().RegisterOnChildAdd( m_MainWidget, this, "OnChildAdd" );
30 WidgetEventHandler.GetInstance().RegisterOnChildRemove( m_MainWidget, this, "OnChildRemove" );
31
32 RecomputeOpenedContainers();
33 m_CollapsibleHeader.SetName("#container_vicinity");
35 }
36
38 {
39 return m_VicinityIconsContainer.IsActive();
40 }
41
43 {
44 return m_VicinityIconsContainer;
45 }
46
48 {
49 return ( ContainerWithCargo.Cast( GetFocusedContainer() ) != null );
50 }
51
53 {
54 return ( ContainerWithCargoAndAttachments.Cast( GetFocusedContainer() ) != null );
55 }
56
58 {
59 return ( AttachmentCategoriesContainer.Cast( GetFocusedContainer() ) != null );
60 }
61
63 {
64 map<string, bool> serialized_types = new map<string, bool>();
65 for ( int i = 0; i < m_ShowedItems.Count(); i++ )
66 {
67 EntityAI entity = m_ShowedItems.GetKey( i );
68 Container container = m_ShowedItems.GetElement( i );
69 string type = entity.GetType();
70 if ( container.IsInherited( ContainerWithCargo ) )
71 {
72 if ( !serialized_types.Contains( type ) )
73 {
74 ContainerWithCargo item_with_cargo = ContainerWithCargo.Cast( container );
75 serialized_types.Insert( type, item_with_cargo.IsOpened() );
76 }
77 }
78 }
79
80 if ( serialized_types.Count() > 0 )
81 {
82 FileSerializer file = new FileSerializer();
83 if ( file.Open( "inventory_state.save", FileMode.APPEND ) )
84 {
85 file.Write( serialized_types.Count() );
86
87 for ( i = 0; i < serialized_types.Count(); i++ )
88 {
89 file.Write( serialized_types.GetKey( i ) );
90 file.Write( serialized_types.GetElement( i ) );
91 }
92 }
93 file.Close();
94 }
95 }
96
97 override void DraggingOverHeader( Widget w, int x, int y, Widget receiver )
98 {
99 if ( w == null )
100 {
101 return;
102 }
103
104 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
105 if ( !ipw )
106 {
107 string name = w.GetName();
108 name.Replace( "PanelWidget", "Render" );
109 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
110 }
111
112 if ( !ipw && ItemPreviewWidget.Cast( w ) )
113 {
114 ipw = ItemPreviewWidget.Cast( w );
115 }
116
117 if ( !ipw || !ipw.GetItem() )
118 {
119 return;
120 }
121
122 if ( ipw.GetItem() && GetGame().GetPlayer().CanDropEntity( ipw.GetItem() ) && ipw.GetItem().GetInventory().CanRemoveEntity() && m_ShowedItemIcons.Find( ipw.GetItem() ) == -1 )
123 {
124 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
126 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
127
128 #ifndef PLATFORM_CONSOLE
129 bool ignorePointer = ItemManager.GetInstance().GetLeftSlotsScroller().GetFlags() & WidgetFlags.IGNOREPOINTER;
130 if (!ignorePointer)
131 {
132 ItemManager.GetInstance().GetLeftSlotsScroller().SetFlags(WidgetFlags.IGNOREPOINTER);
133 }
134 #endif
135 }
136 else
137 {
138 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
139 ItemManager.GetInstance().ShowSourceDropzone( ipw.GetItem() );
140 }
141 }
142
143 void DraggingOverIcon( Widget w, int x, int y, Widget receiver )
144 {
145 string name = receiver.GetName();
146 name.Replace("PanelWidget", "Render");
147 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name) );
148 EntityAI receiver_item = receiver_iw.GetItem();
149
150 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
151 if ( !ipw )
152 {
153 name = w.GetName();
154 name.Replace( "PanelWidget", "Render" );
155 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
156 }
157
158 if ( !ipw && ItemPreviewWidget.Cast( w ) )
159 {
160 ipw = ItemPreviewWidget.Cast( w );
161 }
162
163 if (!ipw)
164 {
165 return;
166 }
167
168 if ( !ItemBase.Cast( receiver_item ) || !ipw.GetItem() )
169 {
170 return;
171 }
172
173 if ( ipw.GetItem().GetInventory().CanRemoveEntity() || m_ShowedItemIcons.Find( ipw.GetItem() ) > -1 )
174 {
175 if ( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( ipw.GetItem() ) ) )
176 {
177 ColorManager.GetInstance().SetColor( w, ColorManager.COMBINE_COLOR );
179 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
180 return;
181 }
182 else if ( GameInventory.CanSwapEntitiesEx( receiver_item, ipw.GetItem() ) )
183 {
184 ColorManager.GetInstance().SetColor( w, ColorManager.SWAP_COLOR );
186 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
187 return;
188 }
189 /*else if( GetGame().GetPlayer().CanDropEntity( ipw.GetItem() ) )
190 {
191 ColorManager.GetInstance().SetColor( w, ColorManager.GREEN_COLOR );
192 ItemManager.GetInstance().HideDropzones();
193 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
194 return;
195 }*/
196 }
197
198 ColorManager.GetInstance().SetColor( w, ColorManager.RED_COLOR );
199 ItemManager.GetInstance().ShowSourceDropzone( ipw.GetItem() );
200 }
201
202 void OnDropReceivedFromIcon( Widget w, int x, int y, Widget receiver )
203 {
204 string name = receiver.GetName();
205 name.Replace("PanelWidget", "Render");
206 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name) );
207 EntityAI receiver_item = receiver_iw.GetItem();
208
209 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
210 if ( !ipw )
211 {
212 name = w.GetName();
213 name.Replace( "PanelWidget", "Render" );
214 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
215 }
216
217 if ( !ItemBase.Cast( receiver_item ) || !ipw.GetItem() )
218 {
219 return;
220 }
221
222 EntityAI item = ipw.GetItem();
223 bool equal_typed = item.GetType() == receiver_item.GetType();
224 if ( !receiver_item.IsInherited( ItemBase ) || item == null )
225 {
226 return;
227 }
228
229 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
230
231 if ( !item.GetInventory().CanRemoveEntity() )
232 return;
233
234 if ( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
235 {
236 ( ItemBase.Cast( receiver_item ) ).CombineItemsClient( ItemBase.Cast( item ) );
237 }
238 else if( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
239 {
242 receiver_item.GetInventory().GetCurrentInventoryLocation( il1 );
243 item.GetInventory().GetCurrentInventoryLocation( il2 );
244
245 if( !receiver_item.GetInventory().CanRemoveEntity() || ( il1.GetType() == InventoryLocationType.GROUND && il2.GetType() == InventoryLocationType.GROUND ) )
246 return;
247 player.PredictiveSwapEntities( item, receiver_item );
248 }
249
252 PrepareOwnedTooltip(item);
253
254 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu( MENU_INVENTORY ) );
255 if ( menu )
256 {
257 menu.RefreshQuickbar();
258 }
259 }
260
261 void OnLeftPanelDropReceived( Widget w, int x, int y, Widget receiver )
262 {
263 OnDropReceivedFromHeader( w, x, y, receiver );
264 }
265
266 void OnDropReceivedFromEmptySpace( Widget w, int x, int y, Widget receiver )
267 {
268 OnDropReceivedFromHeader( w, x, y, receiver );
269 }
270
271 override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
272 {
273 if (!w)
274 return;
275
278
279 ItemPreviewWidget ipw = ItemPreviewWidget.Cast(w.FindAnyWidget("Render"));
280
281 if (!ipw)
282 {
283 string name = w.GetName();
284 name.Replace("PanelWidget", "Render");
285 ipw = ItemPreviewWidget.Cast(w.FindAnyWidget(name));
286 }
287
288 if (!ipw)
289 {
290 ipw = ItemPreviewWidget.Cast(w);
291 if (!ipw)
292 return;
293 }
294
295 EntityAI item = ipw.GetItem();
296 if (!ipw.IsInherited(ItemPreviewWidget) || !item)
297 return;
298
299 if (!item.GetInventory().CanRemoveEntity() || m_ShowedItemIcons.Find(item) > -1)
300 return;
301
302 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
303 if (player.CanDropEntity(item))
304 {
305 ItemBase itemBase = ItemBase.Cast(item);
306 if (itemBase)
307 {
308 if (itemBase.GetTargetQuantityMax() < itemBase.GetQuantity())
309 itemBase.SplitIntoStackMaxClient(null, -1);
310 else
311 player.PhysicalPredictiveDropItem(itemBase);
312 }
313 }
314
315 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu( MENU_INVENTORY ) );
316 if ( menu )
317 {
318 menu.RefreshQuickbar();
319 }
320 }
321
322 override void UpdateInterval()
323 {
324 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
325
326 if (!player)
327 return;
328
329 super.UpdateInterval();
330
331 EntityAI eai;
332 vector pos = player.GetPosition();
333 array<EntityAI> objects;
334
335 VicinityItemManager.GetInstance().Update( player.GetDeltaT() );
336 objects = VicinityItemManager.GetInstance().GetVicinityItems();
337
338 //GetItemsShowableInInventory
339 array<EntityAI> showable_items = new array<EntityAI>;
340 bool isUsedMicromanagment = false;
342 int m_OldShowedItemIconsCount = m_ShowedItemIcons.Count();
343
344 if (selectesItem && ItemManager.GetInstance().IsMicromanagmentMode())
345 {
346 if (m_ShowedItemIcons.Find(selectesItem) != -1)
347 {
348 isUsedMicromanagment = true;
349 }
350 }
351 m_ShowedItemIcons.Clear();
352
353 GameInventory game_inventory = player.GetInventory();
354 for ( int i = 0; i < objects.Count(); i++ )
355 {
356 eai = objects.Get( i );
357 if ( eai == null || game_inventory.IsPlaceholderEntity( eai ) )
358 continue; // noproxy: ignore body placeholder
359
360 BaseBuildingBase base_building = BaseBuildingBase.Cast(eai);
361 if (base_building && !base_building.IsPlayerInside(player,""))
362 continue;
363
364 if (eai.IsInventoryVisible())
365 {
366 showable_items.Insert(eai);
367
368 if (!eai.DisableVicinityIcon())
369 {
370 m_ShowedItemIcons.Insert(eai);
371 }
372 }
373 }
374
375 if (isUsedMicromanagment && m_ShowedItemIcons.Find(selectesItem) == -1 )
376 {
377 //ItemManager.GetInstance().SetItemMicromanagmentMode(false);
378 ItemManager.GetInstance().SetSelectedItemEx(null, null, null);
379 isUsedMicromanagment = false;
380 }
381
382 //MW HOTFIX - old containers must be removed before new one are added (part of initialize are refreshed whole structure - need proper fix to avoid it)
384 Container con;
385
386 for ( i = 0; i < showable_items.Count(); i++ )
387 {
388 new_showed_items.Insert(showable_items[i],null);
389 }
390
391
392 bool need_update_focus = false;
393 for ( i = 0; i < m_ShowedItems.Count(); i++ )
394 {
395 EntityAI ent = m_ShowedItems.GetKey( i );
396 m_ShowedItems.GetElement( i ).UpdateInterval();
397 con = m_ShowedItems.GetElement( i );
398 if ( !new_showed_items.Contains( ent ) )
399 {
400 if ( selectesItem && selectesItem.GetHierarchyRoot() == ent)
401 {
402 //ItemManager.GetInstance().SetItemMicromanagmentMode(false);
403 ItemManager.GetInstance().SetSelectedItemEx(null, null, null);
404 }
405 GetMainWidget().Update();
406 if ( con.IsActive() )
407 need_update_focus = true;
408 Container.Cast( GetParent() ).Remove( con );
409 Remove( con );
410 }
411 else
412 {
413 UpdateHeader(ent,con,player); //squeezed here, the map is iterated over enough already..
414 }
415 }
417
418 bool accessInventory = PlayerBase.DEBUG_INVENTORY_ACCESS;
419 accessInventory |= FreeDebugCamera.GetInstance() && FreeDebugCamera.GetInstance().IsActive();
420
421
422 //map<EntityAI, ref Container> new_showed_items = new map<EntityAI, ref Container>;
423 new_showed_items.Clear();
425 for ( i = 0; i < showable_items.Count(); i++ )
426 {
427 EntityAI entity = showable_items.Get( i );
428 if ( entity )
429 {
430 if ( game_inventory && !m_ShowedItems.Contains( entity ) )
431 {
432 string config = "CfgVehicles " + entity.GetType() + " GUIInventoryAttachmentsProps";
433
434 if ( GetGame().ConfigIsExisting( config ) )
435 {
437 ac.SetEntity( entity );
438 new_showed_items.Insert( entity, ac );
439 showed_items_IDs.Insert( entity.GetID(), ac);
440 }
441 else if ( entity.GetSlotsCountCorrect() > 0 && entity.GetInventory().GetCargo() )
442 {
443 if ( entity.IsInherited( DayZInfected ) )
444 {
445 if ( entity.IsAlive() )
446 {
447 continue;
448 }
449 ZombieContainer zmb_cnt = new ZombieContainer( m_Parent, -1 );
450 zmb_cnt.SetEntity( entity );
451 new_showed_items.Insert( entity, zmb_cnt );
452 showed_items_IDs.Insert( entity.GetID(), zmb_cnt );
453 Container.Cast( GetParent() ).Insert( zmb_cnt );
454 }
455 else
456 {
457 ContainerWithCargoAndAttachments iwca = new ContainerWithCargoAndAttachments( this, -1 );
458 iwca.SetEntity( entity, false );
459 new_showed_items.Insert( entity, iwca );
460 showed_items_IDs.Insert( entity.GetID(), iwca );
461 }
462 }
463 else if ( entity.GetInventory().GetCargo() )
464 {
465 ContainerWithCargo iwc = new ContainerWithCargo( this, -1 );
466 iwc.SetEntity( entity, 0, false );
467 new_showed_items.Insert( entity, iwc );
468 showed_items_IDs.Insert( entity.GetID(), iwc );
469 iwc.UpdateInterval();
470 }
471 else if ( entity.GetSlotsCountCorrect() > 0 )
472 {
473 if ( entity.HasEnergyManager() )
474 {
476 iwem.SetEntity( entity, false );
477 new_showed_items.Insert( entity, iwem );
478 showed_items_IDs.Insert( entity.GetID(), iwem );
479 }
480 else
481 {
482 if ( entity.IsInherited( PlayerBase ) )
483 {
485 if (accessInventory == false)
486 {
487 if ( entity.IsAlive() && ( !PlayerBase.Cast( entity ).IsUnconscious() && !PlayerBase.Cast( entity ).IsRestrained() ) )
488 {
489 continue;
490 }
491 }
492
493 PlayerContainer plyr_cnt = new PlayerContainer( m_Parent, false );
494 plyr_cnt.SetPlayer( PlayerBase.Cast( entity ) );
495 Container.Cast( GetParent() ).Insert( plyr_cnt );
496 ( Container.Cast( m_Parent ) ).Refresh();
497 new_showed_items.Insert( entity, plyr_cnt );
498 showed_items_IDs.Insert( entity.GetID(), plyr_cnt);
499 }
500 else
501 {
502 ContainerWithCargoAndAttachments iwcas = new ContainerWithCargoAndAttachments( this, -1 );
503 iwcas.SetEntity( entity, false );
504 new_showed_items.Insert( entity, iwcas );
505 showed_items_IDs.Insert( entity.GetID(), iwcas );
506 iwcas.UpdateInterval();
507 }
508 }
509 }
510 }
511 else
512 {
513 //TODO MW: remove old containers on one spot (hotfix)
514 con = m_ShowedItems.Get( entity );
515 if ( con )
516 {
517 if ( entity.IsInherited( PlayerBase ) )
518 {
520 if ( !accessInventory && entity.IsAlive() && ( !PlayerBase.Cast( entity ).IsUnconscious() && !PlayerBase.Cast( entity ).IsRestrained() ) )
521 {
522 GetMainWidget().Update();
523 if ( con.IsActive() )
524 need_update_focus = true;
525 Container.Cast( GetParent() ).Remove( con );
526 Remove( con );
527 continue;
528 }
529 }
530
531 if ( entity.IsInherited( BaseBuildingBase ) )
532 {
533 if ( !BaseBuildingBase.Cast(entity).IsPlayerInside(player,""))
534 {
535 GetMainWidget().Update();
536 if ( con.IsActive() )
537 need_update_focus = true;
538 Container.Cast( GetParent() ).Remove( con );
539 Remove( con );
540 continue;
541 }
542 }
543
544 new_showed_items.Insert( entity, m_ShowedItems.Get( entity ) );
545 showed_items_IDs.Insert( entity.GetID(), m_ShowedItemsIDs.Get( entity.GetID() ) );
546 }
547 }
548 }
549 }
550
552 auto cargoes = VicinityItemManager.GetInstance().GetVicinityCargos();
553 for ( i = 0; i < cargoes.Count(); i++ )
554 {
555 CargoBase cgo = cargoes.Get( i );
556 if ( cgo )
557 {
558 if (game_inventory && !m_ShowedCargos.Contains( cgo ) )
559 {
560 ContainerWithCargo pxc = new ContainerWithCargo( this, -1 );
561 pxc.SetEntity( cgo.GetCargoOwner(), cgo.GetOwnerCargoIndex(), false );
562 new_showed_cargos.Insert( cgo, pxc );
563 pxc.UpdateInterval();
564 }
565 else
566 {
567 if ( m_ShowedCargos.Get( cgo ) )
568 {
569 new_showed_cargos.Insert( cgo, m_ShowedCargos.Get( cgo ) );
570 }
571 }
572 }
573 }
574
575 for ( int ic = 0; ic < m_ShowedCargos.Count(); ic++ )
576 {
577 CargoBase cgo2 = m_ShowedCargos.GetKey( ic );
578 m_ShowedCargos.GetElement( ic ).UpdateInterval();
579 if ( !new_showed_cargos.Contains( cgo2 ) )
580 {
581 Container con2 = m_ShowedCargos.GetElement( ic );
582 if( con2.IsActive() )
583 need_update_focus = true;
584 GetMainWidget().Update();
585 Container.Cast( GetParent() ).Remove( con2 );
586 Remove( con2 );
587 }
588 }
589
590 m_ShowedItems = new_showed_items;
591 m_ShowedItemsIDs = showed_items_IDs;
592 m_ShowedCargos = new_showed_cargos;
593 //Because WTF (zombie container)
594 Container.Cast( GetParent() ).RecomputeOpenedContainers();
595 if (need_update_focus)
596 SetFirstActive();
597 //RecomputeOpenedContainers();
599 m_VicinityIconsContainer.ShowItemsInContainers( m_ShowedItemIcons );
600
601 if ( m_ShowedItemIcons.Count() != m_OldShowedItemIconsCount )
602 {
603 Inventory in = Inventory.Cast( GetRoot() );
604 if ( in )
605 in.UpdateConsoleToolbar();
606 }
607 }
608
609 void ToggleContainer( Widget w, EntityAI item )
610 {
611 SlotsIcon slots_icon;
612 Container c;
613 w.GetUserData(slots_icon);
614
615 if ( item )
616 {
617 c = Container.Cast( m_ShowedItems.Get( item ) );
618 }
619
620 if (c)
621 {
623 }
624 }
625
626 override bool CanOpenCloseContainerEx(EntityAI focusedEntity)
627 {
628 if (focusedEntity)
629 {
630 ClosableContainer c = ClosableContainer.Cast( m_ShowedItems.Get( focusedEntity ) );
631 if (c && c.IsDisplayable())
632 {
633 return true;
634 }
635 }
636 return false;
637 }
638
639 //Call from ExpandCollapseContainer - not call
640 void ToggleContainer( notnull Container conta )
641 {
642 conta.Toggle();
643 }
644
646 {
647 EntityAI item = GetFocusedItem();
648 Container conta;
649
650 if (m_ShowedItems && item)
651 {
652 conta = m_ShowedItems.Get( item );
653 if (conta)
654 {
655 ToggleContainer( conta );
656 }
657 }
658 }
659
660 override bool OnChildRemove( Widget w, Widget child )
661 {
662 w.Update();
663 float x, y;
664 w.GetScreenSize( x, y );
665 if ( w == GetMainWidget() )
666 {
667 GetMainWidget().Update();
668 m_Parent.OnChildRemove( w, child );
669 }
670 return true;
671 }
672
673 override bool OnChildAdd( Widget w, Widget child )
674 {
675 if ( w == GetMainWidget() )
676 {
677 GetMainWidget().Update();
678 m_Parent.OnChildAdd( w, child );
679 }
680 return true;
681 }
682
683 override void CollapseButtonOnMouseButtonDown(Widget w)
684 {
685 super.CollapseButtonOnMouseButtonDown(w);
687 }
688
690 void UpdateHeader(EntityAI entity, Container cont, PlayerBase player)
691 {
693
694 if (cont.GetHeader())
695 {
696 if (GetDragWidget() == cont.GetHeader())
697 {
698 CancelWidgetDragging();
699 }
700 ItemManager.GetInstance().SetWidgetDraggable(cont.GetHeader().GetMainWidget(),draggable);
701 }
702 }
703}
void Inventory(LayoutHolder parent)
Definition inventory.c:74
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
override bool IsPlayerInside(PlayerBase player, string selection)
Definition fence.c:615
represents base for cargo storage for entities
Definition cargo.c:7
override bool IsDisplayable()
override void Remove(LayoutHolder container)
ref CollapsibleHeader m_CollapsibleHeader
override Header GetHeader()
override EntityAI GetFocusedItem()
override LayoutHolder Get(int x)
override Header GetHeader()
override void Refresh()
override bool DisableVicinityIcon()
Definition man.c:872
Serializer API implementation for File IO. See Serializer for more info. usage:
Definition serializer.c:104
script counterpart to engine's class Inventory
Definition inventory.c:79
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
Definition inventory.c:628
proto native bool IsPlaceholderEntity(notnull Object e)
InventoryLocation.
void SetSelectedItemEx(EntityAI selected_item, Container selected_container, LayoutHolder selected_icon)
void ShowSourceDropzone(EntityAI item)
void SetDefaultHeaderOpenState(string type, bool is_opened)
bool EvaluateContainerDragabilityDefault(EntityAI entity)
ScrollWidget GetLeftSlotsScroller()
Widget GetLeftDropzone()
EntityAI GetSelectedItem()
Definition itemmanager.c:85
void HideDropzones()
bool IsMicromanagmentMode()
Definition itemmanager.c:70
void SetWidgetDraggable(Widget w, bool draggable)
void SetIsDragging(bool is_dragging)
static ItemManager GetInstance()
Widget GetSlotsArea()
Definition leftarea.c:279
Widget GetSlotsHeader()
Definition leftarea.c:274
void SetPlayer(PlayerBase player)
override bool OnChildAdd(Widget w, Widget child)
void OnDropReceivedFromEmptySpace(Widget w, int x, int y, Widget receiver)
override void CollapseButtonOnMouseButtonDown(Widget w)
const float DISTANCE_TO_THE_REST
void UpdateHeader(EntityAI entity, Container cont, PlayerBase player)
Updates header dragability to be consistent with current 'icon' behaviour.
void OnLeftPanelDropReceived(Widget w, int x, int y, Widget receiver)
override bool OnChildRemove(Widget w, Widget child)
override void UpdateInterval()
bool IsVicinityContainerIconsActive()
void OnDropReceivedFromIcon(Widget w, int x, int y, Widget receiver)
void VicinityContainer(LayoutHolder parent, int sort=-1)
override void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
const float DISTANCE_TO_ENTITIES
void DraggingOverIcon(Widget w, int x, int y, Widget receiver)
void ToggleContainer(Widget w, EntityAI item)
void ToggleContainer(notnull Container conta)
override void ExpandCollapseContainer()
VicinitySlotsContainer GetVicinityIconsContainer()
override bool CanOpenCloseContainerEx(EntityAI focusedEntity)
override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
void RegisterOnChildRemove(Widget w, Managed eventHandler, string functionName)
static WidgetEventHandler GetInstance()
void RegisterOnChildAdd(Widget w, Managed eventHandler, string functionName)
void SetEntity(EntityAI zombie_entity)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
FileMode
Definition ensystem.c:383
const int MENU_INVENTORY
Definition constants.c:180
WidgetFlags
Definition enwidgets.c:58
Icon x
Icon y
InventoryLocationType
types of Inventory Location
void InventoryMenu()
PlayerBase GetPlayer()
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]
Widget m_Parent
Definition sizetochild.c:92