DayZ 1.28
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 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)
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
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)
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()
Определения 3_Game/Entities/Man.c:872
override bool IsInventoryVisible()
Определения 3_Game/Entities/Building.c:242
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:29
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
Определения 3_Game/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()