Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_ImageRadialProgressBarUIComponent.c
Go to the documentation of this file.
2 {
3  [Attribute("FadeImage")]
4  protected string m_sFadeImageName;
5 
6  [Attribute(defvalue: "1", desc: "Fade in speed of image")]
7  protected float m_bFadeImageInSpeed;
8 
9  [Attribute(defvalue: "1", desc: "Fade out speed of image")]
10  protected float m_bFadeImageOutSpeed;
11 
12  [Attribute(defvalue: "0", desc: "Sets the start opacity of the image, it starts with opacity 0 if false else it starts with 1")]
13  protected bool m_bIsFadeImageVisible;
14 
15  //Ref
16  protected ImageWidget m_wFadeImage;
17 
18  //State
19  protected bool m_bisFading;
20  protected bool m_bIsFadingIn;
21 
22  //Script invoker
23  protected ref ScriptInvoker Event_OnFadeDone = new ScriptInvoker; //SCR_ImageRadialProgressBarUIComponent, bool wasFadingIn
24 
25 
26 
27  override void SetProgress(float progress)
28  {
29  super.SetProgress(progress);
30 
31  if (m_wFadeImage)
32  {
33  if (m_iProgress >= m_fMaxValue && !m_bIsFadeImageVisible)
34  {
35  FadeImage(true);
36  }
37  else if (m_iProgress < m_fMaxValue && m_bIsFadeImageVisible)
38  {
39  FadeImage(false);
40  }
41  }
42  }
43 
44  void InstantProgressMaxMin(bool SetToMax)
45  {
46  if (SetToMax)
47  {
48  SetProgress(m_fMaxValue);
49  SetFadeImageVisible(true);
50  }
51  else
52  {
53  SetProgress(m_fMinValue);
54  SetFadeImageVisible(false);
55  }
56  }
57 
58  float GetMinProgress()
59  {
60  return m_fMinValue;
61  }
62 
63  float GetMaxProgress()
64  {
65  return m_fMaxValue;
66  }
67 
68  ScriptInvoker GetOnFadeDone()
69  {
70  return Event_OnFadeDone;
71  }
72 
73  void FadeImage(bool fadeIn)
74  {
75  m_bIsFadeImageVisible = fadeIn;
76  m_bIsFadingIn = fadeIn;
77 
78  if (!m_bisFading)
79  {
80  m_bisFading = true;
81  GetGame().GetCallqueue().CallLater(FadeUpdate, 500, true);
82  }
83 
84  AnimateWidget.Opacity(m_wFadeImage, fadeIn, m_bFadeImageInSpeed);
85  }
86 
87  protected void FadeUpdate()
88  {
89  if (m_bisFading)
90  {
91  if ((m_bIsFadingIn && m_wFadeImage.GetOpacity() >= 1) || (!m_bIsFadingIn && m_wFadeImage.GetOpacity() <= 0))
92  {
93  m_bisFading = false;
94  GetGame().GetCallqueue().Remove(FadeUpdate);
95  Event_OnFadeDone.Invoke(this, m_bIsFadingIn);
96  }
97  }
98  }
99 
104  ImageWidget GetFadeImage()
105  {
106  return m_wFadeImage;
107  }
108 
109  void SetFadeImageVisible(bool setVisible)
110  {
111  if (m_bisFading)
112  {
113  m_bisFading = false;
114  GetGame().GetCallqueue().Remove(FadeUpdate);
115  }
116 
117  AnimateWidget.StopAnimation(m_wFadeImage, WidgetAnimationOpacity);
118 
119  m_bIsFadeImageVisible = setVisible;
120 
121  if (setVisible)
122  m_wFadeImage.SetOpacity(1);
123  else
124  m_wFadeImage.SetOpacity(0);
125  }
126 
127  override void HandlerAttached(Widget w)
128  {
129  if (SCR_Global.IsEditMode())
130  return;
131 
132  super.HandlerAttached(w);
133 
134  m_wFadeImage = ImageWidget.Cast(w.FindAnyWidget(m_sFadeImageName));
135 
136  SetFadeImageVisible(m_bIsFadeImageVisible);
137  }
138 
139  override void HandlerDeattached(Widget w)
140  {
141  if (m_bisFading)
142  GetGame().GetCallqueue().Remove(FadeUpdate); //>>>>> ADD CHECK FADE DONE TO HIDE UI IN TOGGLE EDITOR (JUST ALWAYS INVOKE AND CHECK IF IMAGE IS VISIBLE)
143  }
144 
145 };
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
SCR_RadialProgressBarUIComponent
Definition: SCR_RadialProgressBarUIComponent.c:1
Attribute
typedef Attribute
Post-process effect of scripted camera.
SCR_ImageRadialProgressBarUIComponent
Definition: SCR_ImageRadialProgressBarUIComponent.c:1
SCR_Global
Definition: Functions.c:6