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