Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_SelectionMenuEntryPreviewComponent.c
Go to the documentation of this file.
1/*
2Selsection menu entry widget component for displaying 3d rendered objects
3*/
4
5//------------------------------------------------------------------------------------------------
7{
8 protected const float DEFAULT_FOV = 10;
9
10 [Attribute("ItemPreview")]
11 protected string m_sPreviewItem;
12
13 [Attribute("ItemShadow", desc: "Reference to Item Shadow")]
14 protected string m_sItemShadow;
15
16 [Attribute("FallbackIcon")]
17 protected string m_sFallbackIcon;
18
19 [Attribute(UIColors.GetColorAttribute(UIColors.NEUTRAL_INFORMATION), UIWidgets.ColorPicker, desc: "Default color for Item Shadow")]
20 protected ref Color m_DefaulItemColor;
21
22 [Attribute(UIColors.GetColorAttribute(UIColors.NEUTRAL_INFORMATION), UIWidgets.ColorPicker, desc: "Medical color for Item Shadow")]
23 protected ref Color m_MedicalItemColor;
24
25
29
30 protected IEntity m_Item;
32
33 //------------------------------------------------------------------------------------------------
34 override void HandlerAttached(Widget w)
35 {
36 super.HandlerAttached(w);
37
39 m_wItemShadow = ImageWidget.Cast(m_wRoot.FindAnyWidget(m_sItemShadow));
41 }
42
43 //------------------------------------------------------------------------------------------------
46 {
48 {
49 Print("[SCR_SelectionMenuEntryPreviewComponent] - missing widgets!", LogLevel.DEBUG);
50 return;
51 }
52
53 // Visibility
54 m_wPreviewItem.SetVisible(item != null);
55 m_wItemShadow.SetVisible(item != null);
56 m_wFallbackIcon.SetVisible(!item);
57
58 m_Item = item;
59
60 if (!item)
61 return;
62
63
64 // Get manager and render preview
65 ChimeraWorld world = ChimeraWorld.CastFrom(item.GetWorld());
66 if (!world)
67 return;
68
69 ItemPreviewManagerEntity manager = world.GetItemPreviewManager();
70 if (!manager)
71 return;
72
73 // Set rendering and preview properties
75 manager.SetPreviewItem(m_wPreviewItem, item, m_PreviewAttributes);
76 m_wPreviewItem.SetResolutionScale(1, 1);
77 }
78
79 //------------------------------------------------------------------------------------------------
82 {
83 if (!m_Item)
84 return;
85
86 // Inventory item cmp
88 m_Item.FindComponent(InventoryItemComponent));
89
90 if (!invetoryItem)
91 return;
92
93 preview = PreviewRenderAttributes.Cast(
94 invetoryItem.FindAttribute(PreviewRenderAttributes));
95
96 // Get custom radial attribute
98 invetoryItem.FindAttribute(SCR_SelectionMenuPreviewAttributes));
99
100 if (preview && menuPreview)
101 {
102 preview.ZoomCamera(10, menuPreview.m_fCustomFov, menuPreview.m_fCustomFov);
103
104 // Change widget size
105 if (preview && m_wSizeLayout && menuPreview.m_fIconSizeXMultiplier != -1)
106 {
107 float size = m_fOriginalSize * menuPreview.m_fIconSizeXMultiplier;
108 FrameSlot.SetSize(m_wSizeLayout, size, size);
109
111 }
112
113 // Colorize Item shadow
114 if (menuPreview.m_bShowMedicalColor == true)
116 else
118 }
119 else
120 {
122 }
123 }
124}
int size
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition Color.c:13
proto external BaseWorld GetWorld()
float m_fOriginalSize
float m_fAdjustedSize
Widget m_wSizeLayout
ItemPreviewWidget m_wPreviewItem
const float DEFAULT_FOV
ref Color m_DefaulItemColor
PreviewRenderAttributes m_PreviewAttributes
ImageWidget m_wFallbackIcon
ref Color m_MedicalItemColor
void SetPreviewItem(IEntity item)
Prepare preview item and render given entity.
ImageWidget m_wItemShadow
string m_sItemShadow
IEntity m_Item
void SetupPreviewAttributes(out PreviewRenderAttributes preview)
Find and setup preview attributes that should be used in previwe.
string m_sFallbackIcon
override void HandlerAttached(Widget w)
string m_sPreviewItem
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
SCR_FieldOfViewSettings Attribute