DayZ 1.27
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 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 {
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
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 {
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 {
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 {
179 ItemManager.GetInstance().GetLeftDropzone().SetAlpha( 1 );
180 return;
181 }
182 else if ( GameInventory.CanSwapEntitiesEx( receiver_item, ipw.GetItem() ) )
183 {
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
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 ref array<EntityAI> objects;
334
335 VicinityItemManager.GetInstance().Update( player.GetDeltaT() );
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)
383 ref map<EntityAI, ref Container> new_showed_items = new ref map<EntityAI, ref Container>;
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 //ref map<EntityAI, ref Container> new_showed_items = new ref map<EntityAI, ref Container>;
423 new_showed_items.Clear();
424 ref map<int, ref Container> showed_items_IDs = new ref map<int, ref Container>;
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
551 ref map<CargoBase, ref Container> new_showed_cargos = new ref map<CargoBase, ref Container>;
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
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
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 {
699 }
700 ItemManager.GetInstance().SetWidgetDraggable(cont.GetHeader().GetMainWidget(),draggable);
701 }
702 }
703}
void Inventory(LayoutHolder parent)
Определения Inventory.c:74
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
map
Определения ControlsXboxNew.c:4
Icon x
Icon y
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
void InventoryMenu()
Определения InventoryMenu.c:20
PlayerBase GetPlayer()
Определения ModifierBase.c:51
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]
Определения PluginRemotePlayerDebugClient.c:14
Widget m_Parent
Определения SizeToChild.c:92
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()
Определения Man.c:855
override bool IsInventoryVisible()
Определения Building.c:242
Определения Building.c:6
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)
Определения Inventory.c:628
proto native bool IsPlaceholderEntity(notnull Object e)
script counterpart to engine's class Inventory
Определения Inventory.c:79
proto native int GetType()
returns type of InventoryLocation
InventoryLocation.
Определения InventoryLocation.c:29
Определения InventoryItem.c:731
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
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:673
void OnDropReceivedFromEmptySpace(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:266
void TraverseShowedItems()
Определения VicinityContainer.c:62
override void CollapseButtonOnMouseButtonDown(Widget w)
Определения VicinityContainer.c:683
const float DISTANCE_TO_THE_REST
Определения VicinityContainer.c:11
void UpdateHeader(EntityAI entity, Container cont, PlayerBase player)
Updates header dragability to be consistent with current 'icon' behaviour.
Определения VicinityContainer.c:690
void OnLeftPanelDropReceived(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:261
ref VicinitySlotsContainer m_VicinityIconsContainer
Определения VicinityContainer.c:3
ref map< int, ref Container > m_ShowedItemsIDs
Определения VicinityContainer.c:5
bool IsContainerWithCargoActive()
Определения VicinityContainer.c:47
bool m_IsProcessing
Определения VicinityContainer.c:8
override bool OnChildRemove(Widget w, Widget child)
Определения VicinityContainer.c:660
override void UpdateInterval()
Определения VicinityContainer.c:322
ref map< CargoBase, ref Container > m_ShowedCargos
Определения VicinityContainer.c:7
bool IsVicinityContainerIconsActive()
Определения VicinityContainer.c:37
void OnDropReceivedFromIcon(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:202
void VicinityContainer(LayoutHolder parent, int sort=-1)
Определения VicinityContainer.c:13
ref array< EntityAI > m_ShowedItemIcons
Определения VicinityContainer.c:6
bool IsItemWithAttachmentsActive()
Определения VicinityContainer.c:52
override void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:97
const float DISTANCE_TO_ENTITIES
Определения VicinityContainer.c:10
bool IsItemWithCategoriesActive()
Определения VicinityContainer.c:57
void DraggingOverIcon(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:143
ref map< EntityAI, ref Container > m_ShowedItems
Определения VicinityContainer.c:4
void ToggleContainer(Widget w, EntityAI item)
Определения VicinityContainer.c:609
void ToggleContainer(notnull Container conta)
Определения VicinityContainer.c:640
override void ExpandCollapseContainer()
Определения VicinityContainer.c:645
VicinitySlotsContainer GetVicinityIconsContainer()
Определения VicinityContainer.c:42
override bool CanOpenCloseContainerEx(EntityAI focusedEntity)
Определения VicinityContainer.c:626
override void OnDropReceivedFromHeader(Widget w, int x, int y, Widget receiver)
Определения VicinityContainer.c:271
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.
Определения EnConvert.c:106
proto native CGame GetGame()
FileMode
Определения EnSystem.c:383
const int MENU_INVENTORY
Определения constants.c:180
proto native Widget GetParent()
Get parent of the Effect.
Определения Effect.c:407
WidgetFlags
Определения EnWidgets.c:58
proto native Widget CancelWidgetDragging()
proto native Widget GetDragWidget()