DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс NotificationUI

Защищенные члены

void NotificationUI ()
 
void ~NotificationUI ()
 
void AddNotification (NotificationRuntimeData data)
 
void RemoveNotification (NotificationRuntimeData data)
 
void AddVoiceNotification (string player, string name)
 
void RemoveVoiceNotification (string player)
 
void ClearVoiceNotifications ()
 
void UpdateTargetHeight ()
 
void UpdateOffset ()
 
void Update (float timeslice)
 

Защищенные данные

ref Widget m_Root
 
ref Widget m_Spacer
 
ref Widget m_VoiceContent
 
ref Widget m_NotificationContent
 
ref map< NotificationRuntimeData, Widgetm_Notifications
 
ref map< string, Widgetm_VoiceNotifications
 
float m_Width
 
float m_CurrentHeight
 
float m_TargetHeight
 
float m_BackupPosX
 
float m_BackupPosY
 
ref map< string, Widgetm_WidgetTimers
 
bool m_OffsetEnabled
 

Статические защищенные данные

static float m_VelArr [1]
 

Подробное описание

Конструктор(ы)

◆ NotificationUI()

void NotificationUI ( )
inlineprotected
21 {
22 m_Root = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/notifications/notifications.layout");
23 m_Spacer = m_Root.FindAnyWidget( "NotificationSpacer" );
24 m_VoiceContent = m_Root.FindAnyWidget( "VoiceContent" );
25 m_NotificationContent = m_Root.FindAnyWidget( "NotificationContent" );
29
31 if (ntfSys)
32 {
33 ntfSys.m_OnNotificationAdded.Insert( AddNotification );
34 ntfSys.m_OnNotificationRemoved.Insert( RemoveNotification );
35 }
36 }
Definition NotificationSystem.c:70
static NotificationSystem GetInstance()
Definition NotificationSystem.c:104
ref map< string, Widget > m_WidgetTimers
Definition NotificationUI.c:16
ref map< string, Widget > m_VoiceNotifications
Definition NotificationUI.c:9
ref Widget m_Spacer
Definition NotificationUI.c:4
ref Widget m_NotificationContent
Definition NotificationUI.c:6
void RemoveNotification(NotificationRuntimeData data)
Definition NotificationUI.c:74
void AddNotification(NotificationRuntimeData data)
Definition NotificationUI.c:48
ref Widget m_Root
Definition NotificationUI.c:3
ref Widget m_VoiceContent
Definition NotificationUI.c:5
ref map< NotificationRuntimeData, Widget > m_Notifications
Definition NotificationUI.c:8
Definition EntityAI.c:95
proto native CGame GetGame()

Перекрестные ссылки AddNotification(), GetGame(), NotificationSystem::GetInstance(), m_NotificationContent, m_Notifications, m_Root, m_Spacer, m_VoiceContent, m_VoiceNotifications, m_WidgetTimers и RemoveNotification().

◆ ~NotificationUI()

void ~NotificationUI ( )
inlineprotected
39 {
41 if (ntfSys)
42 {
43 ntfSys.m_OnNotificationAdded.Remove( AddNotification );
44 ntfSys.m_OnNotificationRemoved.Remove( RemoveNotification );
45 }
46 }

Перекрестные ссылки AddNotification(), NotificationSystem::GetInstance() и RemoveNotification().

Методы

◆ AddNotification()

void AddNotification ( NotificationRuntimeData data)
inlineprotected
49 {
50 Widget notification = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/notifications/notification_element.layout", m_NotificationContent);
51
52 ImageWidget icon = ImageWidget.Cast( notification.FindAnyWidget( "Image" ) );
53 RichTextWidget title = RichTextWidget.Cast( notification.FindAnyWidget( "Title" ) );
54
55 if ( data.GetIcon() != "" )
56 icon.LoadImageFile( 0, data.GetIcon() );
57 title.SetText( data.GetTitleText() );
58
59 if ( data.GetDetailText() != "" )
60 {
61 Widget bottom_spacer = notification.FindAnyWidget( "BottomSpacer" );
62 RichTextWidget detail = RichTextWidget.Cast( notification.FindAnyWidget( "Detail" ) );
63 bottom_spacer.Show(true);
64 detail.SetText( data.GetDetailText() );
65 detail.Update();
66 bottom_spacer.Update();
67 notification.Update();
68 }
69
72 }
void UpdateTargetHeight()
Definition NotificationUI.c:135
Definition gameplay.c:316
Definition EnWidgets.c:190

Перекрестные ссылки GetGame(), m_NotificationContent, m_Notifications и UpdateTargetHeight().

Используется в NotificationUI() и ~NotificationUI().

◆ AddVoiceNotification()

void AddVoiceNotification ( string player,
string name )
inlineprotected
86 {
87 if (!m_VoiceNotifications.Contains(player))
88 {
90 if (!m_WidgetTimers.Contains(player))
91 {
92 notification = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/notifications/notification_voice_element.layout", m_VoiceContent);
93 }
94 else
95 {
97 m_WidgetTimers.Remove(player);
98 notification.SetAlpha( 120 / 255 );
99 Widget w_c = notification.FindAnyWidget( "Name" );
100 if ( w_c )
101 {
102 w_c.SetAlpha( 1 );
103 }
104 }
105
106 RichTextWidget title = RichTextWidget.Cast(notification.FindAnyWidget("Name"));
108 title.SetText(name);
110 }
111 }
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo

Перекрестные ссылки GetGame(), m_VoiceContent, m_VoiceNotifications, m_WidgetTimers, name и UpdateTargetHeight().

◆ ClearVoiceNotifications()

void ClearVoiceNotifications ( )
inlineprotected
125 {
126 for ( int i = 0; i < m_VoiceNotifications.Count(); i++ )
127 {
128 Widget w = m_VoiceNotifications.GetElement( i );
129 delete w;
130 }
131 m_VoiceNotifications.Clear();
133 }

Перекрестные ссылки m_VoiceNotifications и UpdateTargetHeight().

◆ RemoveNotification()

void RemoveNotification ( NotificationRuntimeData data)
inlineprotected
75 {
76 if ( m_Notifications.Contains( data ) )
77 {
79 m_WidgetTimers.Insert( m_WidgetTimers.Count().ToString() + data.GetTime().ToString(), notification );
80 m_Notifications.Remove( data );
82 }
83 }

Перекрестные ссылки m_Notifications, m_WidgetTimers и UpdateTargetHeight().

Используется в NotificationUI() и ~NotificationUI().

◆ RemoveVoiceNotification()

void RemoveVoiceNotification ( string player)
inlineprotected
114 {
115 if ( m_VoiceNotifications.Contains( player ) )
116 {
121 }
122 }

Перекрестные ссылки m_VoiceNotifications, m_WidgetTimers и UpdateTargetHeight().

◆ Update()

void Update ( float timeslice)
inlineprotected
178 {
179 UpdateOffset();
180
181 float x;
182 m_Spacer.GetScreenSize( x, m_TargetHeight );
184 if ( is_near )
185 {
187 m_Root.SetSize( m_Width, m_CurrentHeight );
188 }
189 else if ( m_TargetHeight != m_CurrentHeight )
190 {
192 m_Root.SetSize( m_Width, m_CurrentHeight );
193 m_VelArr[0] = 0;
194 }
195
196 for ( int i = 0; i < m_WidgetTimers.Count(); )
197 {
198 Widget w = m_WidgetTimers.GetElement( i );
200 if ( new_alpha > 0 )
201 {
202 w.SetAlpha( new_alpha );
203 Widget w_c = w.FindAnyWidget( "TopSpacer" );
204 Widget w_c2 = w.FindAnyWidget( "BottomSpacer" );
205 Widget w_c3 = w.FindAnyWidget( "Title" );
206 Widget w_c4 = w.FindAnyWidget( "Detail" );
207 Widget w_c5 = w.FindAnyWidget( "Name" );
208 if ( w_c && w_c2 )
209 {
211 w_c.SetAlpha( new_alpha_cont );
212 w_c2.SetAlpha( new_alpha_cont );
213 w_c3.SetAlpha( new_alpha_cont );
214 w_c4.SetAlpha( new_alpha_cont );
215 }
216 if ( w_c5 )
217 {
219 w_c5.SetAlpha(new_alpha_voice);
220 }
221 i++;
222 }
223 else
224 {
225 delete w;
226 m_WidgetTimers.RemoveElement( i );
228 }
229 }
230 }
Icon x
Definition EnMath.c:7
const float NOTIFICATION_FADE_TIME
Definition NotificationSystem.c:72
void UpdateOffset()
Definition NotificationUI.c:148
static float m_VelArr[1]
Definition NotificationUI.c:176
float m_CurrentHeight
Definition NotificationUI.c:12
float m_Width
Definition NotificationUI.c:11
float m_TargetHeight
Definition NotificationUI.c:13
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.

Перекрестные ссылки Math::Clamp(), m_CurrentHeight, m_Root, m_Spacer, m_TargetHeight, m_VelArr, m_WidgetTimers, m_Width, NotificationSystem::NOTIFICATION_FADE_TIME, Math::SmoothCD(), UpdateOffset(), UpdateTargetHeight() и x.

◆ UpdateOffset()

void UpdateOffset ( )
inlineprotected
149 {
150 UIScriptedMenu menu = UIScriptedMenu.Cast(GetGame().GetUIManager().GetMenu());
151 if (menu)
152 {
153 Widget expNotification = menu.GetLayoutRoot().FindAnyWidget("notification_root");
154 if (expNotification && expNotification.IsVisible())
155 {
156 if (!m_OffsetEnabled)
157 {
159
160 float x, y, w, h;
161 m_Root.GetScreenPos(x, y);
162 expNotification.GetScreenSize(w, h);
163
164 m_Root.SetScreenPos(x, h);
165 m_OffsetEnabled = true;
166 }
167 }
168 else if (m_OffsetEnabled)
169 {
171 m_OffsetEnabled = false;
172 }
173 }
174 }
Icon y
float m_BackupPosY
Definition NotificationUI.c:15
bool m_OffsetEnabled
Definition NotificationUI.c:18
float m_BackupPosX
Definition NotificationUI.c:14
Definition DayZGame.c:64

Перекрестные ссылки GetGame(), m_BackupPosX, m_BackupPosY, m_OffsetEnabled, m_Root, x и y.

Используется в Update() и UpdateTargetHeight().

◆ UpdateTargetHeight()

void UpdateTargetHeight ( )
inlineprotected
136 {
137 m_VoiceContent.Update();
138 m_NotificationContent.Update();
139 m_Spacer.Update();
140
141 float x;
142 m_Spacer.GetScreenSize( x, m_TargetHeight );
143 m_Root.GetScreenSize( m_Width, m_CurrentHeight );
144
145 UpdateOffset();
146 }

Перекрестные ссылки m_CurrentHeight, m_NotificationContent, m_Root, m_Spacer, m_TargetHeight, m_VoiceContent, m_Width, UpdateOffset() и x.

Используется в AddNotification(), AddVoiceNotification(), ClearVoiceNotifications(), RemoveNotification(), RemoveVoiceNotification() и Update().

Поля

◆ m_BackupPosX

float m_BackupPosX
protected

Используется в UpdateOffset().

◆ m_BackupPosY

float m_BackupPosY
protected

Используется в UpdateOffset().

◆ m_CurrentHeight

float m_CurrentHeight
protected

Используется в Update() и UpdateTargetHeight().

◆ m_NotificationContent

ref Widget m_NotificationContent
protected

Используется в AddNotification(), NotificationUI() и UpdateTargetHeight().

◆ m_Notifications

ref map<NotificationRuntimeData, Widget> m_Notifications
protected

Используется в AddNotification(), NotificationUI() и RemoveNotification().

◆ m_OffsetEnabled

bool m_OffsetEnabled
protected

Используется в UpdateOffset().

◆ m_Root

ref Widget m_Root
protected

Используется в NotificationUI(), Update(), UpdateOffset() и UpdateTargetHeight().

◆ m_Spacer

ref Widget m_Spacer
protected

Используется в NotificationUI(), Update() и UpdateTargetHeight().

◆ m_TargetHeight

float m_TargetHeight
protected

Используется в Update() и UpdateTargetHeight().

◆ m_VelArr

float m_VelArr[1]
staticprotected

Используется в Update().

◆ m_VoiceContent

ref Widget m_VoiceContent
protected

◆ m_VoiceNotifications

ref map<string, Widget> m_VoiceNotifications
protected

◆ m_WidgetTimers

◆ m_Width

float m_Width
protected

Используется в Update() и UpdateTargetHeight().


Объявления и описания членов класса находятся в файле: