Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
ScreenEffectsManager.c
Go to the documentation of this file.
1class SCR_ScreenEffectsManager : SCR_InfoDisplayExtended
2{
3 // Pointer for getting SCR_ScreenEffectsManager
4 private static SCR_ScreenEffectsManager s_pScreenEffectsManager;
5
6 // Owner data
8
9 //------------------------------------------------------------------------------------------------
12 {
13 return s_pScreenEffectsManager;
14 }
15
16 //------------------------------------------------------------------------------------------------
17 override void DisplayStartDraw(IEntity owner)
18 {
19 s_pScreenEffectsManager = this;
20
21 GetGame().OnUserSettingsChangedInvoker().Insert(SettingsChanged);
23
24 // Clear all effects that are applied otherwise
26 }
27
28 //------------------------------------------------------------------------------------------------
29 protected void SettingsChanged()
30 {
31 array<BaseInfoDisplay> infoDisplays = {};
32 GetInfoDisplays(infoDisplays);
33 foreach (BaseInfoDisplay baseInfoDisplays: infoDisplays)
34 {
35 SCR_BaseScreenEffect screenEffect = SCR_BaseScreenEffect.Cast(baseInfoDisplays);
36 if (screenEffect)
37 {
38 if (!screenEffect.GetRootWidget())
39 screenEffect.SetRootWidget(GetRootWidget());
40
41 screenEffect.SettingsChanged();
42 }
43 }
44 }
45
46 //------------------------------------------------------------------------------------------------
48 {
49 if (to)
51 }
52
53 //------------------------------------------------------------------------------------------------
54 override event void DisplayUpdate(IEntity owner, float timeSlice)
55 {
56 if (!GetGame().GetCameraManager())
57 return;
58
59 CameraBase currentCamera = GetGame().GetCameraManager().CurrentCamera();
60 PlayerCamera playerCamera = GetGame().GetPlayerController().GetPlayerCamera();
61 if (!playerCamera || currentCamera != playerCamera)
62 m_wRoot.SetVisible(false);
63 else
64 m_wRoot.SetVisible(true);
65
66 array<BaseInfoDisplay> infoDisplays = {};
67 GetInfoDisplays(infoDisplays);
68 foreach (BaseInfoDisplay baseInfoDisplays: infoDisplays)
69 {
70 SCR_BaseScreenEffect screenEffect = SCR_BaseScreenEffect.Cast(baseInfoDisplays);
71 if (screenEffect)
72 screenEffect.UpdateEffect(timeSlice);
73 }
74 }
75
76 //------------------------------------------------------------------------------------------------
78 protected void ManagerClearEffects()
79 {
80 array<BaseInfoDisplay> infoDisplays = {};
81 GetInfoDisplays(infoDisplays);
82 foreach (BaseInfoDisplay baseInfoDisplays: infoDisplays)
83 {
84 SCR_BaseScreenEffect screenEffect = SCR_BaseScreenEffect.Cast(baseInfoDisplays);
85 if (screenEffect)
86 screenEffect.ClearEffects();
87 }
88 }
89
90 //------------------------------------------------------------------------------------------------
92 BaseInfoDisplay GetEffect(typename effectType)
93 {
94 array<BaseInfoDisplay> infoDisplays = {};
95 GetInfoDisplays(infoDisplays);
96
97 foreach (BaseInfoDisplay baseInfoDisplays: infoDisplays)
98 {
99 if (baseInfoDisplays.Type() == effectType)
100 return baseInfoDisplays;
101 }
102
103 return null;
104 }
105
106 //------------------------------------------------------------------------------------------------
107 override event void DisplayStopDraw(IEntity owner)
108 {
110 GetGame().OnUserSettingsChangedInvoker().Remove(SettingsChanged);
111
112 s_pScreenEffectsManager = null;
113 }
114};
ArmaReforgerScripted GetGame()
Definition game.c:1398
Widget m_wRoot
Widget GetRootWidget()
override event void DisplayUpdate(IEntity owner, float timeSlice)
BaseInfoDisplay GetEffect(typename effectType)
Return the effect is it exist.
override event void DisplayStopDraw(IEntity owner)
void ManagerClearEffects()
Call ClearEffects() in every child inheriting from SCR_BaseScreenEffect.
ChimeraCharacter m_pCharacterEntity
static SCR_ScreenEffectsManager GetScreenEffectsDisplay()
Static GetScreenEffectsDisplay will return this regardless of whether SCR_ScreenEffectsManager is run...
override void DisplayStartDraw(IEntity owner)
override void DisplayControlledEntityChanged(IEntity from, IEntity to)
BaseHUDComponentClass GameComponentClass GetInfoDisplays(out notnull array< BaseInfoDisplay > outInfoDisplays)