DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ItemManager.c
См. документацию.
2{
3 private ref static ItemManager m_Instance;
4 protected bool m_IsDragging;
6 protected bool m_SlotInfoShown;
8 protected Icon m_DraggedIcon;
9 protected ref Widget m_TooltipWidget;
17 protected ref Timer m_ToolTipTimer;
19
25
27
29
33
34 protected int m_TooltipPosX;
35 protected int m_TooltipPosY;
36 protected Widget m_TooltipSourceWidget; //stored here for tooltip position updates
37 protected ScrollWidget m_LeftSlotsScroller;
38
39 #ifndef PLATFORM_CONSOLE
40 protected const float TOOLTIP_DELAY = 0.25; // in seconds
41 #else
42 protected const float TOOLTIP_DELAY = 1.5; // in seconds
43 #endif
44
45 void ItemManager( Widget root )
46 {
47 m_Instance = this;
48 m_RootWidget = root;
51 m_SlotInfoShown = false;
52
53 #ifdef PLATFORM_CONSOLE
54 m_TooltipWidget = GetGame().GetWorkspace().CreateWidgets("gui/layouts/inventory_new/day_z_inventory_new_tooltip_xbox.layout", root );
55 m_TooltipSlotWidget = GetGame().GetWorkspace().CreateWidgets("gui/layouts/inventory_new/day_z_inventory_new_tooltip_slot_xbox.layout", root );
56 #else
57 m_TooltipWidget = GetGame().GetWorkspace().CreateWidgets("gui/layouts/inventory_new/day_z_inventory_new_tooltip.layout", root );
58 m_TooltipSlotWidget = GetGame().GetWorkspace().CreateWidgets("gui/layouts/inventory_new/day_z_inventory_new_tooltip_slot.layout", root );
59 #endif
60 m_TooltipWidget.Show( false );
61 m_TooltipSlotWidget.Show( false );
62 }
63
64 void SetItemMicromanagmentMode( bool item_micromanagment_mode )
65 {
66 m_ItemMicromanagmentMode = item_micromanagment_mode;
67 Inventory.GetInstance().UpdateConsoleToolbar();
68 }
69
74
79
80 void SetHandsPreview( HandsPreview hansd_preview )
81 {
82 m_HandsPreview = hansd_preview;
83 }
84
86 {
87 return m_SelectedItem;
88 }
89
94
99
101 {
102 return m_SelectedIcon;
103 }
104
105 void SetSelectedItem( EntityAI selected_item, Container selected_container, Widget selected_widget, SlotsIcon selected_icon )
106 {
107 m_SelectedItem = selected_item;
108 m_SelectedContainer = selected_container;
109 m_SelectedWidget = selected_widget;
110 m_SelectedIcon = selected_icon;
111 }
112
113 void SetSelectedItemEx( EntityAI selected_item, Container selected_container, LayoutHolder selected_icon )
114 {
115 SlotsIcon sIcon;
116 Icon icon;
117
118 m_SelectedItem = selected_item;
119 m_SelectedContainer = selected_container;
120
122 {
123 sIcon = SlotsIcon.Cast(m_SelectedBaseIcon);
124 icon = Icon.Cast(m_SelectedBaseIcon);
125 if (sIcon)
126 {
127 sIcon.GetMicromanagedPanel().Show(false);
128 }
129 else if (icon)
130 {
131 icon.GetMicromanagedPanel().Show(false);
132 }
133 }
134
135 if (selected_icon)
136 {
137 sIcon = SlotsIcon.Cast(selected_icon);
138 icon = Icon.Cast(selected_icon);
139
140 if (sIcon)
141 {
143 sIcon.GetMicromanagedPanel().Show(true);
144 }
145 else if (icon)
146 {
148 icon.GetMicromanagedPanel().Show(true);
149 }
150 }
151 else
152 {
153 m_SelectedWidget = null;
154 }
155 m_SelectedBaseIcon = selected_icon;
156 }
157
159 {
160 m_DefautOpenStates.Clear();
161 }
162
167
168 void SetDefaultOpenState( string type, bool is_opened )
169 {
170 m_DefautOpenStates.Set( type, is_opened );
171 }
172
173 void SetDefaultHeaderOpenState( string type, bool is_opened )
174 {
175 m_DefautHeaderOpenStates.Set( type, is_opened );
176 }
177
178 void SetDefaultOpenStateHands( bool is_opened )
179 {
180 m_HandsDefaultOpenState = is_opened;
181 int hands_default_open_state = m_HandsDefaultOpenState; //from bool to int for easier parsing
182 GetGame().SetProfileString( "defaultOpenStateHands", hands_default_open_state.ToString() );
184 }
185
187 {
188 string value;
189 GetGame().GetProfileString( "defaultOpenStateHands", value );
192 }
193
195 {
196 TStringArray serialized_types = new TStringArray;
197
198 for ( int i = 0; i < m_DefautHeaderOpenStates.Count(); i++ )
199 {
200 int is_opened = m_DefautHeaderOpenStates.GetElement( i ); //from bool to int for easier parsing
201 serialized_types.Insert( m_DefautHeaderOpenStates.GetKey( i ) + "," + is_opened );
202 }
203
204 if( serialized_types.Count() > 0 )
205 {
206 GetGame().SetProfileStringList( "defaultHeaderOpenStates", serialized_types );
207 }
208 }
209
211 {
213
214 TStringArray serialized_types = new TStringArray;
215 GetGame().GetProfileStringList( "defaultHeaderOpenStates", serialized_types );
216
217 for( int i = 0; i < serialized_types.Count(); i++ )
218 {
219 TStringArray strs = new TStringArray;
220 serialized_types.Get( i ).Split( ",", strs );
221 bool is_opened = strs.Get( 1 ).ToInt();
222 SetDefaultHeaderOpenState( strs.Get( 0 ), is_opened );
223 }
224 }
225
227 {
228 TStringArray serialized_types = new TStringArray;
229
230 for ( int i = 0; i < m_DefautOpenStates.Count(); i++ )
231 {
232 int is_opened = m_DefautOpenStates.GetElement( i ); //from bool to int for easier parsing
233 serialized_types.Insert( m_DefautOpenStates.GetKey( i ) + "," + is_opened );
234 }
235
236 if( serialized_types.Count() > 0 )
237 {
238 GetGame().SetProfileStringList( "defaultOpenStates", serialized_types );
239 }
240 }
241
243 {
245
246 TStringArray serialized_types = new TStringArray;
247 GetGame().GetProfileStringList( "defaultOpenStates", serialized_types );
248
249 for( int i = 0; i < serialized_types.Count(); i++ )
250 {
251 TStringArray strs = new TStringArray;
252 serialized_types.Get( i ).Split( ",", strs );
253 bool is_opened = strs.Get( 1 ).ToInt();
254 SetDefaultOpenState( strs.Get( 0 ), is_opened );
255 }
256 }
257
258 bool GetDefaultOpenState( string type )
259 {
260 if( m_DefautOpenStates.Contains( type ) )
261 {
262 return m_DefautOpenStates.Get( type );
263 }
264 else
265 {
266 return true;
267 }
268 }
269
270 bool GetDefaultHeaderOpenState( string type )
271 {
272 if( m_DefautHeaderOpenStates.Contains( type ) )
273 {
274 return m_DefautHeaderOpenStates.Get( type );
275 }
276 else
277 {
278 return true;
279 }
280 }
281
283 {
284 return m_Instance;
285 }
286
288 {
289 GetRightDropzone().SetAlpha( 0 );
290 GetLeftDropzone().SetAlpha( 0 );
291 GetCenterDropzone().SetAlpha( 0 );
292
293 #ifndef PLATFORM_CONSOLE
294 bool ignorePointer = GetLeftSlotsScroller().GetFlags() & WidgetFlags.IGNOREPOINTER;
295 if (ignorePointer)
296 {
297 GetLeftSlotsScroller().ClearFlags(WidgetFlags.IGNOREPOINTER);
298 }
299 #endif
300 }
301
303 {
304 EntityAI owner = item.GetHierarchyParent();
305 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
306
307 if (item == player)
308 {
309 GetRightDropzone().SetAlpha(1);
310 }
311 else if (owner && owner != player)
312 {
313 ShowSourceDropzone(owner);
314 }
315 else
316 {
317 InventoryLocation inv_loc_src = new InventoryLocation;
318 item.GetInventory().GetCurrentInventoryLocation(inv_loc_src);
319 int loc_type = inv_loc_src.GetType();
321 if (loc_type == InventoryLocationType.GROUND)
322 {
323 GetLeftDropzone().SetAlpha(1);
324 }
325 else if (loc_type == InventoryLocationType.HANDS)
326 {
327 GetCenterDropzone().SetAlpha(1);
328 }
329 else
330 {
331 GetRightDropzone().SetAlpha(1);
332 }
333 }
334 }
335
337 {
338 if (!m_LeftDropzone)
339 m_LeftDropzone = m_RootWidget.FindAnyWidget("LeftPanel").FindAnyWidget("DropzoneX");
340
341 return m_LeftDropzone;
342 }
343
345 {
346 if( !m_RightDropzone )
347 m_RightDropzone = m_RootWidget.FindAnyWidget("RightPanel").FindAnyWidget("DropzoneX");
348 return m_RightDropzone;
349 }
350
352 {
353 if( !m_CenterDropzone )
354 m_CenterDropzone = m_RootWidget.FindAnyWidget("HandsPanel").FindAnyWidget("DropzoneX");
355 return m_CenterDropzone;
356 }
357
359 {
360 return m_HoveredItem;
361 }
362
363 void SetDraggedItem( EntityAI dragged_item )
364 {
365 m_DraggedItem = dragged_item;
366 }
367
369 {
370 return m_DraggedItem;
371 }
372
373 void SetDraggedIcon( Icon dragged_icon )
374 {
375 m_DraggedIcon = dragged_icon;
376 }
377
379 {
380 return m_DraggedIcon;
381 }
382
383 void SetIsDragging( bool is_dragging )
384 {
385 m_IsDragging = is_dragging;
386 if( !is_dragging )
387 {
388 SetDraggedItem( null );
389 SetDraggedIcon( null );
390 }
391 }
392
394 {
395 return m_IsDragging;
396 }
397
399 {
400 m_TooltipWidget.Show( false );
401 m_HoveredItem = null;
402 delete m_ToolTipTimer;
403
405 }
406
408 {
409 if ( m_SlotInfoShown )
410 {
411 m_TooltipSlotWidget.Show( false );
412 m_SlotInfoShown = false;
413 delete m_TooltipSlotTimer;
414 }
415 }
416
417 static int GetItemHealthColor(int pHealthLevel)
418 {
419 switch (pHealthLevel)
420 {
421 case -1:
422 break;
424 return Colors.COLOR_PRISTINE;
426 return Colors.COLOR_WORN;
428 return Colors.COLOR_DAMAGED;
432 return Colors.COLOR_RUINED;
433 }
434
435 return 0x00FFFFFF;
436 }
437
438 static int GetItemHealthColor(EntityAI item, string zone = "")
439 {
440 if (item)
441 {
442 switch (item.GetHealthLevel(zone))
443 {
444 case -1:
445 break;
447 return Colors.COLOR_PRISTINE;
449 return Colors.COLOR_WORN;
451 return Colors.COLOR_DAMAGED;
455 return Colors.COLOR_RUINED;
456 }
457 }
458
459 return 0x00FFFFFF;
460 }
461
462 static int ColorFromFloat( float fraction )
463 {
464 if( fraction > 1 || fraction < 0 )
465 return 0x00FFFFFF;
466 else if( fraction > 0.80 )
467 return Colors.COLOR_PRISTINE;
468 else if( fraction > 0.6 )
469 return Colors.COLOR_WORN;
470 else if( fraction > 0.4 )
471 return Colors.COLOR_DAMAGED;
472 else if( fraction > 0.2 )
474 else
475 return Colors.COLOR_RUINED;
476 }
477
478 // still used by SlotsIcon calls, different architecture!
479 void SetTemperature(EntityAI item, Widget item_w)
480 {
481 if (item_w)
482 {
483 bool colorSet = false;
484 string name = item_w.GetName();
485 name.Replace("Render", "Temperature");
486 Widget temperature_widget = item_w.GetParent().FindAnyWidget(name);
487 if (item && item.IsInherited(ItemBase) && item.CanHaveTemperature())
488 {
489 ObjectTemperatureState temperatureState = ObjectTemperatureState.GetStateData(item.GetTemperature());
490 if (temperatureState && temperatureState.m_State != EObjectTemperatureState.NEUTRAL)
491 {
492 colorSet = true;
493 temperature_widget.SetColor(temperatureState.m_Color);
494 temperature_widget.SetAlpha(0.3);
495 }
496 }
497 temperature_widget.Show(colorSet);
498 }
499 }
500
502 {
503 if (item_w)
504 {
505 bool colorSet = false;
506 Widget temperatureColorWidget = item_w.FindAnyWidget("Temperature");
507
508 if (item && item.IsInherited(ItemBase) && item.CanHaveTemperature())
509 {
510 ObjectTemperatureState temperatureState = ObjectTemperatureState.GetStateData(item.GetTemperature());
511 if (temperatureState && temperatureState.m_State != EObjectTemperatureState.NEUTRAL)
512 {
513 colorSet = true;
514 temperatureColorWidget.SetColor(temperatureState.m_Color);
515 temperatureColorWidget.SetAlpha(0.3);
516 }
517 }
518 temperatureColorWidget.Show(colorSet);
519 }
520 }
521
522 void PrepareTooltip(EntityAI item, int x = 0, int y = 0)
523 {
524 if( IsDragging() || !item )
525 {
526 return;
527 }
528
529 if ( item.IsInherited( InventoryItem ) )
530 {
531 HideTooltip();
532
533 m_HoveredItem = item;
534 InspectMenuNew.UpdateItemInfo( m_TooltipWidget, item );
535
536 int screen_w, screen_h;
537 float w, h;
538 GetScreenSize(screen_w, screen_h);
539 m_TooltipWidget.GetScreenSize(w,h);
540
541 if (x == -1)//set by icon focusing
542 {
543 x = screen_w/2 - w/2;
544 float x1,y1;
545 m_RootWidget.FindAnyWidget("InventoryFrameWidget").GetScreenPos(x1,y1); //allign to the same height
546 y = y1;
547 }
548 else if (x == 0 && y == 0 && GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer())
549 {
550 GetMousePos(x,y);
551 }
552
553 //minimal edge distance adjustments..
554 screen_w -= 10;
555 screen_h -= 10;
556
557 int rightEdge = x + w;
558 if (rightEdge > screen_w)
559 {
560 x = screen_w - w;
561 }
562
563 int bottomEdge = y + h;
564 if (bottomEdge > screen_h)
565 {
566 y = screen_h - h;
567 }
568
569 m_TooltipWidget.SetPos(x, y);
570
571 m_ToolTipTimer = new Timer();
572 m_ToolTipTimer.Run( TOOLTIP_DELAY, this, "ShowTooltip" );
573
574 Widget preview_frame = m_TooltipWidget.FindAnyWidget("ItemFrameWidget");
575 if (preview_frame)
576 {
577 m_ItemPreviewWidget = ItemPreviewWidget.Cast( preview_frame );
578 m_ItemPreviewWidget.SetItem(item);
579 m_ItemPreviewWidget.SetView( item.GetViewIndex() );
580 }
581 }
582 }
583
585 void PrepareSlotsTooltip(string name, string desc, int x = 0, int y = 0)
586 {
587 InspectMenuNew.UpdateSlotInfo( m_TooltipSlotWidget, name, desc );
588
589 HideTooltip();
590
591 if (name != "")
592 {
593 m_SlotInfoShown = true;
594 //CalculateTooltipSlotPosition(x,y);
596 m_TooltipSlotTimer.Run( TOOLTIP_DELAY, this, "ShowTooltipSlot" );
597 }
598 }
599
600 void CalculateTooltipSlotPosition(int x = 0, int y = 0)
601 {
602 int screen_w, screen_h;
603 float w, h;
604 GetScreenSize(screen_w, screen_h);
605 //m_TooltipSlotWidget.GetScreenSize(w,h);
606 m_TooltipSlotWidget.GetSize(w,h);
607 int slot_normal_w = SlotsIcon.GetNormalWidth();
608 int slot_normal_h = SlotsIcon.GetNormalHeight();
609 //minimal edge distance adjustments..
610 screen_w -= 10;
611 screen_h -= 10;
612
613#ifndef PLATFORM_CONSOLE
614 x += 5;
615 y += slot_normal_h + 5;
616#else
617 x += 5;
618 y += 15;
619#endif
620 Widget scrollerWidget = m_TooltipSourceWidget.GetParent();
621 while (scrollerWidget)
622 {
623 if (ScrollWidget.Cast(scrollerWidget))
624 {
625 break;
626 }
627 else
628 {
629 scrollerWidget = scrollerWidget.GetParent();
630 }
631 }
632
633 int rightEdge = x + w;
634 if (rightEdge > screen_w)
635 {
636 x = screen_w - w;
637 }
638
639 int bottomEdge = y + h;
640 if (scrollerWidget)
641 {
642 float scrollerX, scrollerY, scrollerSizeX, scrollerSizeY;
643 scrollerWidget.GetScreenPos(scrollerX,scrollerY);
644 scrollerWidget.GetScreenSize(scrollerSizeX,scrollerSizeY);
645
646 int scroller_bottom = scrollerY + scrollerSizeY;
647 if (bottomEdge > scroller_bottom)
648 {
649 y = scroller_bottom - slot_normal_h;
650 bottomEdge = y + h;
651 }
652 }
653 /*else
654 {
655 ErrorEx("No scroller widget! | m_TooltipSourceWidget: " + m_TooltipSourceWidget);
656 }*/
657
658 if (bottomEdge > screen_h) //should mostly never proc now
659 {
660 y = screen_h - h;
661 }
662
665 }
666
668 {
669 float x, y;
670 m_TooltipSourceWidget.GetScreenPos(x,y);
672 }
673
675 {
677 }
678
680 {
681 if ( !ItemBase.Cast( entity ) )
682 return false;
683
684 bool draggable;
685 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
686 draggable = !player.GetInventory().HasInventoryReservation( entity, null ) && !player.IsItemsToDelete();
687 draggable = draggable && entity.CanPutIntoHands( GetGame().GetPlayer() );
688 draggable = draggable && entity.GetInventory().CanRemoveEntity();
689
690 return draggable;
691 }
692
693 void SetWidgetDraggable( Widget w, bool draggable )
694 {
695 if (w)
696 {
697 if ( draggable )
698 w.SetFlags( WidgetFlags.DRAGGABLE );
699 else
700 w.ClearFlags( WidgetFlags.DRAGGABLE );
701 }
702 }
703
705 {
707 {
708 m_TooltipWidget.Show( true );
709 }
710 }
711
718
719 static int GetChosenCombinationFlag( EntityAI selectedEntity, EntityAI targetEntity, int relevantFlags, out InventoryLocation dst = null)
720 {
721 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
722
723 if (!selectedEntity || !targetEntity)
725
726 ItemBase selectedItem = ItemBase.Cast(selectedEntity);
727 ItemBase targetItem = ItemBase.Cast(targetEntity);
728
729 //EntityAI itemInHands = m_player.GetHumanInventory().GetEntityInHands();
730 ActionManagerClient amc = ActionManagerClient.Cast(player.GetActionManager());
731
732 if (relevantFlags & InventoryCombinationFlags.PERFORM_ACTION)
733 {
734 if (amc.CanPerformActionFromInventory(targetItem, selectedItem))
736 }
737
738 if (relevantFlags & InventoryCombinationFlags.SET_ACTION)
739 {
740 if (amc.CanSetActionFromInventory(targetItem, selectedItem))
742 }
743
745 {
746 if (targetEntity.CanBeCombined(selectedEntity))
747 {
749 }
750 }
751
753 {
754 if (targetEntity.GetInventory().CanAddAttachment(selectedEntity))
755 {
757 }
758 }
759
760 if (relevantFlags & InventoryCombinationFlags.ADD_AS_CARGO)
761 {
762 if (!targetEntity.GetInventory().HasEntityInInventory(selectedEntity) && targetEntity.GetInventory().CanAddEntityInCargo( selectedEntity, selectedEntity.GetInventory().GetFlipCargo() ))
763 {
765 }
766 }
767
768 if (relevantFlags & InventoryCombinationFlags.SWAP_MAGAZINE)
769 {
770 Magazine mag = Magazine.Cast(targetEntity);
771 Weapon_Base wpn = Weapon_Base.Cast(targetEntity.GetHierarchyParent());
772 if (wpn && mag)
773 {
774 if (player.GetWeaponManager().CanSwapMagazine(wpn, Magazine.Cast(selectedEntity)))
775 {
777 }
778 }
779 }
780
781 if (relevantFlags & InventoryCombinationFlags.SWAP)
782 {
783 if (GameInventory.CanSwapEntitiesEx(selectedEntity, targetEntity))
784 {
786 }
787 }
788
789 if (relevantFlags & InventoryCombinationFlags.FSWAP)
790 {
791 if (GameInventory.CanForceSwapEntitiesEx(selectedEntity, null, targetEntity, dst))
792 {
794 }
795 }
796
798 }
799
800 static int GetCombinationFlags( EntityAI entity1, EntityAI entity2 )
801 {
802 int flags = 0;
803 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
804
805 if (!entity1 || !entity2)
806 return flags;
807
808 if (entity1.IsInherited( ItemBase ) && entity2.IsInherited( ItemBase ))
809 {
810 ItemBase ent1 = ItemBase.Cast( entity1 );
811 if (ent1.CanBeCombined( ItemBase.Cast( entity2 ) ))
813 }
814
816
817 entity1.GetInventory().FindFreeLocationFor( entity2, FindInventoryLocationType.ATTACHMENT, il );
818
819 if (il.IsValid() && !entity1.GetInventory().FindAttachment(il.GetSlot()))
820 {
821 if (!entity1.IsInherited( ZombieBase ) && !entity1.IsInherited( Car ) && !entity2.IsInherited( ZombieBase ) && !entity2.IsInherited( Car ))
822 {
824 }
825 }
826 if (!entity1.GetInventory().HasEntityInInventory(entity2) && entity1.GetInventory().CanAddEntityInCargo( entity2, entity2.GetInventory().GetFlipCargo() )) flags = flags | InventoryCombinationFlags.ADD_AS_CARGO;
827
828 if (entity1 == player.GetHumanInventory().GetEntityInHands() || entity2 == player.GetHumanInventory().GetEntityInHands())
829 {
831 Class.CastTo(amc, player.GetActionManager());
832 if (entity1 == player.GetHumanInventory().GetEntityInHands())
833 {
834 if (amc.CanPerformActionFromInventory( ItemBase.Cast(entity1), ItemBase.Cast(entity2) ))
835 {
837 }
838 else if (amc.CanSetActionFromInventory( ItemBase.Cast(entity1), ItemBase.Cast(entity2) ))
839 {
841 }
842 }
843 else
844 {
845 if (amc.CanPerformActionFromInventory( ItemBase.Cast(entity2), ItemBase.Cast(entity1) ))
846 {
848 }
849 else if (amc.CanSetActionFromInventory( ItemBase.Cast(entity2), ItemBase.Cast(entity1) ))
850 {
852 }
853 }
854 }
855 return flags;
856 }
857
858 static int GetRecipeCount(bool recipe_anywhere, EntityAI entity1, EntityAI entity2)
859 {
860 PluginRecipesManager plugin_recipes_manager = PluginRecipesManager.Cast(GetPlugin( PluginRecipesManager ));
861 return plugin_recipes_manager.GetValidRecipes( ItemBase.Cast( entity1 ), ItemBase.Cast( entity2 ), NULL, PlayerBase.Cast( GetGame().GetPlayer() ) );
862 }
863
864 ScrollWidget GetLeftSlotsScroller()
865 {
867 m_LeftSlotsScroller = ScrollWidget.Cast(m_RootWidget.FindAnyWidget("LeftPanel").FindAnyWidget("ScrollerSlotsContent"));
868
869 return m_LeftSlotsScroller;
870 }
871}
void Inventory(LayoutHolder parent)
Определения Inventory.c:74
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
map
Определения ControlsXboxNew.c:4
Icon x
Icon y
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:17
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
PlayerBase GetPlayer()
Определения ModifierBase.c:51
EObjectTemperatureState
Определения ObjectTemperatureStateData.c:2
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:316
bool CanPerformActionFromInventory(ItemBase mainItem, ItemBase targetItem)
Определения ActionManagerClient.c:1040
bool CanSetActionFromInventory(ItemBase mainItem, ItemBase targetItem)
Определения ActionManagerClient.c:1138
proto native void SetProfileString(string name, string value)
Sets string to profile variable.
proto native void GetProfileStringList(string name, out TStringArray values)
Gets array of strings from profile variable.
proto bool GetProfileString(string name, out string value)
Gets string from profile variable.
proto native WorkspaceWidget GetWorkspace()
proto native void SaveProfile()
Saves profile on disk.
proto native void SetProfileStringList(string name, TStringArray values)
Sets array of strings to profile variable.
Super root of all classes in Enforce script.
Определения EnScript.c:11
const int COLOR_DAMAGED
Определения Colors.c:22
const int COLOR_BADLY_DAMAGED
Определения Colors.c:21
const int COLOR_PRISTINE
Определения Colors.c:24
const int COLOR_WORN
Определения Colors.c:23
const int COLOR_RUINED
Определения Colors.c:20
Определения Colors.c:4
Определения CargoContainer.c:3
Определения Building.c:6
Определения constants.c:659
static bool CanSwapEntitiesEx(notnull EntityAI item1, notnull EntityAI item2)
Определения Inventory.c:628
static bool CanForceSwapEntitiesEx(notnull EntityAI item1, InventoryLocation item1_dst, notnull EntityAI item2, out InventoryLocation item2_dst)
Определения Inventory.c:664
script counterpart to engine's class Inventory
Определения Inventory.c:79
Определения HandsPreview.c:2
Widget GetCursorWidget()
Определения Icon.c:88
Widget GetMicromanagedPanel()
Определения Icon.c:93
Определения Icon.c:2
static const int FSWAP
Определения InventoryCombinationFlags.c:7
static const int PERFORM_ACTION
Определения InventoryCombinationFlags.c:15
static const int ADD_AS_CARGO
Определения InventoryCombinationFlags.c:5
static const int NONE
Определения InventoryCombinationFlags.c:3
static const int SWAP_MAGAZINE
Определения InventoryCombinationFlags.c:10
static const int SET_ACTION
Определения InventoryCombinationFlags.c:19
static const int ADD_AS_ATTACHMENT
Определения InventoryCombinationFlags.c:4
static const int COMBINE_QUANTITY2
Определения InventoryCombinationFlags.c:13
static const int SWAP
Определения InventoryCombinationFlags.c:6
Определения ItemBase.c:15
proto native bool IsValid()
verify current set inventory location
proto native int GetSlot()
returns slot id if current type is Attachment
proto native int GetType()
returns type of InventoryLocation
InventoryLocation.
Определения InventoryLocation.c:29
override bool CanBeCombined(EntityAI other_item, bool reservation_check=true, bool stack_max_limit=false)
Определения Rag.c:61
Определения InventoryItem.c:731
static ref ItemManager m_Instance
Определения ItemManager.c:3
Widget m_LeftDropzone
Определения ItemManager.c:30
ref map< string, bool > m_DefautHeaderOpenStates
Определения ItemManager.c:15
bool GetDefaultHeaderOpenState(string type)
Определения ItemManager.c:270
static int GetItemHealthColor(EntityAI item, string zone="")
Определения ItemManager.c:438
void SerializeDefaultHeaderOpenStates()
Определения ItemManager.c:194
void CalculateTooltipSlotPosition(int x=0, int y=0)
Определения ItemManager.c:600
const float TOOLTIP_DELAY
Определения ItemManager.c:40
void SetTemperature(EntityAI item, Widget item_w)
Определения ItemManager.c:479
static int GetCombinationFlags(EntityAI entity1, EntityAI entity2)
Определения ItemManager.c:800
void SetItemMicromanagmentMode(bool item_micromanagment_mode)
Определения ItemManager.c:64
int m_HandsDefaultOpenState
Определения ItemManager.c:16
void ClearDefaultOpenStates()
Определения ItemManager.c:158
ref map< string, bool > m_DefautOpenStates
Определения ItemManager.c:14
ref Widget m_TooltipSlotWidget
Определения ItemManager.c:10
EntityAI GetDraggedItem()
Определения ItemManager.c:368
void SetSelectedItemEx(EntityAI selected_item, Container selected_container, LayoutHolder selected_icon)
Определения ItemManager.c:113
static int ColorFromFloat(float fraction)
Определения ItemManager.c:462
Widget GetCenterDropzone()
Определения ItemManager.c:351
EntityAI GetHoveredItem()
Определения ItemManager.c:358
void ClearDefaultHeaderOpenStates()
Определения ItemManager.c:163
Icon GetDraggedIcon()
Определения ItemManager.c:378
void HideTooltipSlot()
Определения ItemManager.c:407
HandsPreview GetHandsPreview()
Определения ItemManager.c:75
void ShowSourceDropzone(EntityAI item)
Определения ItemManager.c:302
void DeserializeDefaultHeaderOpenStates()
Определения ItemManager.c:210
void SetDefaultHeaderOpenState(string type, bool is_opened)
Определения ItemManager.c:173
Container GetSelectedContainer()
Определения ItemManager.c:90
bool m_IsDragging
Определения ItemManager.c:4
EntityAI m_DraggedItem
Определения ItemManager.c:7
Widget m_CenterDropzone
Определения ItemManager.c:31
bool EvaluateContainerDragabilityDefault(EntityAI entity)
Определения ItemManager.c:679
Widget m_RightDropzone
Определения ItemManager.c:32
ScrollWidget GetLeftSlotsScroller()
Определения ItemManager.c:864
SlotsIcon GetSelectedIcon()
Определения ItemManager.c:100
void ShowTooltipSlot()
Определения ItemManager.c:712
HandsPreview m_HandsPreview
Определения ItemManager.c:26
void ShowTooltip()
Определения ItemManager.c:704
EntityAI m_SelectedItem
Определения ItemManager.c:20
Icon m_DraggedIcon
Определения ItemManager.c:8
ref Widget m_TooltipWidget
Определения ItemManager.c:9
Widget GetLeftDropzone()
Определения ItemManager.c:336
Widget m_TooltipSourceWidget
Определения ItemManager.c:36
void SetIconTemperature(EntityAI item, Widget item_w)
Определения ItemManager.c:501
void SetHandsPreview(HandsPreview hansd_preview)
Определения ItemManager.c:80
void SetDraggedItem(EntityAI dragged_item)
Определения ItemManager.c:363
bool m_SlotInfoShown
Определения ItemManager.c:6
ref Timer m_TooltipSlotTimer
Определения ItemManager.c:18
void SerializeDefaultOpenStates()
Определения ItemManager.c:226
EntityAI m_HoveredItem
Определения ItemManager.c:5
ref Widget m_TooltipCategoryWidget
Определения ItemManager.c:11
ref Timer m_ToolTipTimer
Определения ItemManager.c:17
void HideTooltip()
Определения ItemManager.c:398
Widget GetSelectedWidget()
Определения ItemManager.c:95
EntityAI GetSelectedItem()
Определения ItemManager.c:85
Widget GetRightDropzone()
Определения ItemManager.c:344
void HideDropzones()
Определения ItemManager.c:287
void PrepareTooltip(EntityAI item, int x=0, int y=0)
Определения ItemManager.c:522
static int GetItemHealthColor(int pHealthLevel)
Определения ItemManager.c:417
bool IsDragging()
Определения ItemManager.c:393
Container m_SelectedContainer
Определения ItemManager.c:21
SlotsIcon m_SelectedIcon
Определения ItemManager.c:23
void DeserializeDefaultOpenStates()
Определения ItemManager.c:242
bool IsMicromanagmentMode()
Определения ItemManager.c:70
Widget m_SelectedWidget
Определения ItemManager.c:22
void SetWidgetDraggable(Widget w, bool draggable)
Определения ItemManager.c:693
Widget m_RootWidget
Определения ItemManager.c:13
ItemPreviewWidget m_ItemPreviewWidget
Определения ItemManager.c:12
static int GetRecipeCount(bool recipe_anywhere, EntityAI entity1, EntityAI entity2)
Определения ItemManager.c:858
ScrollWidget m_LeftSlotsScroller
Определения ItemManager.c:37
void SetDraggedIcon(Icon dragged_icon)
Определения ItemManager.c:373
int m_TooltipPosX
Определения ItemManager.c:34
void SetIsDragging(bool is_dragging)
Определения ItemManager.c:383
void SetDefaultOpenStateHands(bool is_opened)
Определения ItemManager.c:178
void PrepareSlotsTooltip(string name, string desc, int x=0, int y=0)
position is currentlycalculated from the owning 'm_TooltipSourceWidget' directly
Определения ItemManager.c:585
void SetTooltipWidget(Widget w)
Определения ItemManager.c:674
bool m_ItemMicromanagmentMode
Определения ItemManager.c:28
LayoutHolder m_SelectedBaseIcon
Определения ItemManager.c:24
bool GetDefaultOpenStateHands()
Определения ItemManager.c:186
void UpdateTooltipSlotPosition()
Определения ItemManager.c:667
void ItemManager(Widget root)
Определения ItemManager.c:45
static int GetChosenCombinationFlag(EntityAI selectedEntity, EntityAI targetEntity, int relevantFlags, out InventoryLocation dst=null)
Определения ItemManager.c:719
int m_TooltipPosY
Определения ItemManager.c:35
bool GetDefaultOpenState(string type)
Определения ItemManager.c:258
static ItemManager GetInstance()
Определения ItemManager.c:282
void SetSelectedItem(EntityAI selected_item, Container selected_container, Widget selected_widget, SlotsIcon selected_icon)
Определения ItemManager.c:105
void SetDefaultOpenState(string type, bool is_opened)
Определения ItemManager.c:168
Определения gameplay.c:277
Определения Container.c:2
Определения PlayerBaseClient.c:2
Widget GetMicromanagedPanel()
Определения SlotsIcon.c:255
Widget GetCursorWidget()
Определения SlotsIcon.c:210
static int GetNormalWidth()
Определения SlotsIcon.c:875
static int GetNormalHeight()
Определения SlotsIcon.c:880
Определения SlotsIcon.c:2
Определения DayZPlayerImplement.c:63
shorthand
Определения BoltActionRifle_Base.c:6
Определения EnWidgets.c:190
Определения ZombieFemaleBase.c:2
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
array< string > TStringArray
Определения EnScript.c:685
const int STATE_RUINED
Определения constants.c:846
const int STATE_WORN
Определения constants.c:849
const int STATE_DAMAGED
Определения constants.c:848
const int STATE_BADLY_DAMAGED
Определения constants.c:847
const int STATE_PRISTINE
Определения constants.c:850
proto void GetScreenSize(out int x, out int y)
proto void GetMousePos(out int x, out int y)
proto native int ToInt()
Converts string to integer.
WidgetFlags
Определения EnWidgets.c:58
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.