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

См. исходные тексты.

Структуры данных

class  HudDebugWinHealthEntry
 

Функции

void HudDebugWinHealth (Widget widget_root)
 
void ~HudDebugWinHealth ()
 
override void Update ()
 
override int GetType ()
 
override void Show ()
 
override void Hide ()
 
override void SetUpdate (bool state)
 
void InitDebug ()
 
bool OnClick (Widget w, int x, int y, int button)
 Called from HudDebug.c.
 
void RunRPC (HudDebugWinHealthEntry entry, int buttonID)
 
void HandleTargetState (bool button)
 
void InitEntityEntries ()
 
void InitEntry (SyncedValue data)
 
void UpdateZones ()
 
void CleanupEntries ()
 

Переменные

class HudDebugWinHealthEntry m_IsInit
 
bool m_IsModeSelf = true
 
Widget m_WgtPanel
 
TextWidget m_TargetDisplayNameW
 
ButtonWidget m_ButtonSelf
 
ButtonWidget m_ButtonTarget
 
EntityAI m_TargetEntity
 
PluginDeveloperSync m_DevSyncPlugin
 
ref array< ref HudDebugWinHealthEntrym_Entries = {}
 

Функции

◆ CleanupEntries()

void CleanupEntries ( )
protected
313 {
314 foreach (HudDebugWinHealthEntry entry : m_Entries)
315 {
316 entry.m_EntryRootW.Unlink();
317 }
318
319 m_Entries.Clear();
320 }
ref array< ref HudDebugWinHealthEntry > m_Entries
Definition HudDebugWinHealth.c:24
Definition HudDebugWinHealth.c:2

Перекрестные ссылки m_Entries.

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

◆ GetType()

override int GetType ( )
protected
67 {
68 return HudDebug.HUD_WIN_HEALTH;
69 }
void HudDebug()
Definition HudDebug.c:106

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

◆ HandleTargetState()

void HandleTargetState ( bool button)
protected
204 {
205 if (button)
206 {
207 m_IsModeSelf = true;
208 m_ButtonSelf.SetTextColor(COLOR_YELLOW);
209 m_ButtonTarget.SetTextColor(0xFF808080); // grey
210 }
211 else
212 {
213 m_IsModeSelf = false;
214 m_ButtonTarget.SetTextColor(COLOR_YELLOW);
215 m_ButtonSelf.SetTextColor(0xFF808080); // grey
216 }
217 }
bool m_IsModeSelf
Definition HudDebugWinHealth.c:15
ButtonWidget m_ButtonSelf
Definition HudDebugWinHealth.c:18
ButtonWidget m_ButtonTarget
Definition HudDebugWinHealth.c:19
Definition EntityAI.c:95
const int COLOR_YELLOW
Definition constants.c:67

Перекрестные ссылки COLOR_YELLOW, m_ButtonSelf, m_ButtonTarget и m_IsModeSelf.

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

◆ Hide()

override void Hide ( )
protected
81 {
82 super.Hide();
83
85 m_IsInit = false;
87 SetUpdate(false);
88 }
override void SetUpdate(bool state)
Definition HudDebugWinHealth.c:90
class HudDebugWinHealthEntry m_IsInit
void CleanupEntries()
Definition HudDebugWinHealth.c:312
EntityAI m_TargetEntity
Definition HudDebugWinHealth.c:21

Перекрестные ссылки CleanupEntries(), m_IsInit, m_TargetEntity и HudDebugWinBase::SetUpdate().

◆ HudDebugWinHealth()

void HudDebugWinHealth ( Widget widget_root)
protected
28 {
30 m_WgtPanel = Widget.Cast(m_WgtRoot.FindAnyWidget("HealthPanel") );
31 }
Widget m_WgtRoot
Definition HudDebug.c:93
Widget m_WgtPanel
Definition HudDebugWinHealth.c:16
Definition EnWidgets.c:190

Перекрестные ссылки m_WgtPanel и m_WgtRoot.

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

◆ InitDebug()

void InitDebug ( )
protected
111 {
112 if (!m_ButtonSelf)
113 m_ButtonSelf = ButtonWidget.Cast(m_WgtRoot.FindAnyWidget("ButtonSelf"));
114
115 if (!m_ButtonTarget)
116 m_ButtonTarget = ButtonWidget.Cast(m_WgtRoot.FindAnyWidget("ButtonTarget"));
117
119 m_TargetDisplayNameW = TextWidget.Cast(m_WgtRoot.FindAnyWidget("txt_TargetName"));
120
121 if (m_IsModeSelf) // initial RPC set so the server knows which mode is the deubg in
122 OnClick(m_ButtonSelf, 0, 0, 0);
123 else
124 OnClick(m_ButtonTarget, 0, 0, 0);
125
126 m_IsInit = true;
127 }
TextWidget m_TargetDisplayNameW
Definition HudDebugWinHealth.c:17
bool OnClick(Widget w, int x, int y, int button)
Called from HudDebug.c.
Definition HudDebugWinHealth.c:130
Definition EnWidgets.c:220

Перекрестные ссылки m_ButtonSelf, m_ButtonTarget, m_IsInit, m_IsModeSelf, m_TargetDisplayNameW, m_WgtRoot и HudDebugWinBase::OnClick().

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

◆ InitEntityEntries()

void InitEntityEntries ( )
protected
221 {
222 if (!m_TargetEntity)
223 return;
224
225 m_TargetDisplayNameW.SetText(m_TargetEntity.ClassName());
226
227 array<ref SyncedValue> healthSynched = m_DevSyncPlugin.GetHealthZonesSynched();
228
229 foreach (SyncedValue data : healthSynched)
230 {
232 }
233
237 }
PluginDeveloperSync m_DevSyncPlugin
Definition HudDebugWinHealth.c:22
void InitEntry(SyncedValue data)
Definition HudDebugWinHealth.c:239
Definition AutoHeightSpacer.c:3
Definition SyncedValue.c:2

Перекрестные ссылки InitEntry(), m_DevSyncPlugin, m_TargetDisplayNameW, m_TargetEntity и m_WgtPanel.

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

◆ InitEntry()

void InitEntry ( SyncedValue data)
protected
240 {
242 entry.m_EntryRootW = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/debug/day_z_hud_debug_health.layout", m_WgtPanel );
243 entry.m_EntryZoneW = TextWidget.Cast(entry.m_EntryRootW.FindAnyWidget("Name"));
244
245 if (data.m_ValueNorm == 1)
246 entry.m_HealthMode = "Shock";
247 else if (data.m_ValueNorm == 2)
248 entry.m_HealthMode = "Blood";
249 else
250 entry.m_HealthMode = "Health";
251
252 entry.m_IsTitleEntry = data.m_State;
253
254 if (entry.m_IsTitleEntry) //title entry with disabled buttons
255 {
256 entry.m_EntryZoneW.SetText(entry.m_HealthMode);
257 entry.m_EntryZoneW.SetColor(0xFFABABAB); // grey
258
259 entry.m_EntryRootW.FindAnyWidget("Value").Show(false);
260 entry.m_EntryRootW.FindAnyWidget("Value").Enable(false);
261 entry.m_EntryRootW.FindAnyWidget("ButtonMin").Show(false);
262 entry.m_EntryRootW.FindAnyWidget("ButtonMin").Enable(false);
263 entry.m_EntryRootW.FindAnyWidget("ButtonMax").Show(false);
264 entry.m_EntryRootW.FindAnyWidget("ButtonMax").Enable(false);
265 entry.m_EntryRootW.FindAnyWidget("ButtonAdd").Show(false);
266 entry.m_EntryRootW.FindAnyWidget("ButtonAdd").Enable(false);
267 entry.m_EntryRootW.FindAnyWidget("ButtonSubtract").Show(false);
268 entry.m_EntryRootW.FindAnyWidget("ButtonSubtract").Enable(false);
269 }
270 else
271 {
272 entry.m_EntryZoneW.SetText(data.m_Name);
273 entry.m_Zone = data.m_Name;
274 entry.m_EntryValueW = TextWidget.Cast(entry.m_EntryRootW.FindAnyWidget("Value"));
275 }
276
277 m_Entries.Insert(entry);
278 }
bool m_IsTitleEntry
Definition HudDebugWinHealth.c:5
TextWidget m_EntryZoneW
Definition HudDebugWinHealth.c:8
TextWidget m_EntryValueW
Definition HudDebugWinHealth.c:9
string m_HealthMode
Definition HudDebugWinHealth.c:4
Widget m_EntryRootW
Definition HudDebugWinHealth.c:7
string m_Zone
Definition HudDebugWinHealth.c:3
proto native CGame GetGame()

Перекрестные ссылки GetGame(), m_Entries, HudDebugWinHealthEntry::m_EntryRootW, HudDebugWinHealthEntry::m_EntryValueW, HudDebugWinHealthEntry::m_EntryZoneW, HudDebugWinHealthEntry::m_HealthMode, HudDebugWinHealthEntry::m_IsTitleEntry, m_WgtPanel и HudDebugWinHealthEntry::m_Zone.

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

◆ OnClick()

bool OnClick ( Widget w,
int x,
int y,
int button )
protected

Called from HudDebug.c.

131 {
132 if (!w)
133 return false;
134
136
137 foreach (HudDebugWinHealthEntry entry : m_Entries)
138 {
139 if (entry.m_EntryRootW == w.GetParent())
140 clickedEntry = entry;
141 }
142
143 int buttonID;
144
145 if (w.GetName() == "ButtonMin")
146 {
147 buttonID = 0;
149 return true;
150 }
151 else if (w.GetName() == "ButtonMax")
152 {
153 buttonID = 1;
155 return true;
156 }
157 else if (w.GetName() == "ButtonAdd")
158 {
159 buttonID = 2;
161 return true;
162 }
163 else if (w.GetName() == "ButtonSubtract")
164 {
165 buttonID = 3;
167 return true;
168 }
169 else if (w == m_ButtonTarget)
170 {
171 #ifdef DEVELOPER
172 buttonID = 4;
173 HandleTargetState(false);
175 return true;
176 #endif
177 }
178 else if (w == m_ButtonSelf)
179 {
180 buttonID = 5;
181 HandleTargetState(true);
183 return true;
184 }
185
186 return false;
187 }
void RunRPC(HudDebugWinHealthEntry entry, int buttonID)
Definition HudDebugWinHealth.c:189
void HandleTargetState(bool button)
Definition HudDebugWinHealth.c:203

Перекрестные ссылки HandleTargetState(), m_ButtonSelf, m_ButtonTarget, m_Entries и RunRPC().

◆ RunRPC()

void RunRPC ( HudDebugWinHealthEntry entry,
int buttonID )
protected
190 {
192 if (entry)
194 else
196
198 if ( player )
199 player.RPCSingleParam( ERPCs.DEV_RPC_HEALTH_SET, params, true );
200 }
ERPCs
Definition ERPCs.c:2
PlayerBase GetPlayer()
Definition ModifierBase.c:51
Definition PlayerBaseClient.c:2

Перекрестные ссылки GetGame(), GetPlayer(), HudDebugWinHealthEntry::m_HealthMode и HudDebugWinHealthEntry::m_Zone.

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

◆ SetUpdate()

override void SetUpdate ( bool state)
protected
91 {
93
94 if (GetGame().IsClient())
95 {
97 if (player)
98 {
99 player.RPCSingleParam( ERPCs.DEV_HEALTH_UPDATE, params, true );
100 SetRPCSent();
101 }
102 }
103 else // set directly
104 {
105 if (m_DevSyncPlugin)
106 m_DevSyncPlugin.EnableUpdate( state, ERPCs.DEV_HEALTH_UPDATE, player );
107 }
108 }

Перекрестные ссылки GetGame(), GetPlayer(), m_DevSyncPlugin и HudDebugWinBase::SetRPCSent().

◆ Show()

override void Show ( )
protected
72 {
73 super.Show();
74 SetUpdate(true);
75
76 if (!m_DevSyncPlugin)
77 m_DevSyncPlugin = PluginDeveloperSync.Cast( GetPlugin( PluginDeveloperSync ) );
78 }
PluginBase GetPlugin(typename plugin_type)
Definition PluginManager.c:316

Перекрестные ссылки GetPlugin(), m_DevSyncPlugin и HudDebugWinBase::SetUpdate().

◆ UpdateZones()

void UpdateZones ( )
protected
281 {
282 if (m_Entries.Count() == 0)
283 return;
284
285 array<ref SyncedValue> healthSynched = m_DevSyncPlugin.GetHealthZonesSynched();
286 float roundedHealth, zoneMax;
287
288 foreach (int i, SyncedValue value : healthSynched)
289 {
291
292 if (entry.m_IsTitleEntry)
293 continue;
294
295 if (entry.m_Zone == "Global")
296 zoneMax = m_TargetEntity.GetMaxHealth("", entry.m_HealthMode);
297 else
298 zoneMax = m_TargetEntity.GetMaxHealth(entry.m_Zone, entry.m_HealthMode);
299
300 roundedHealth = Math.Round(value.m_Value * 100) * 0.01;
301 entry.m_EntryValueW.SetText(roundedHealth.ToString() + "/" + zoneMax.ToString());
302
303 if (roundedHealth == zoneMax)
304 entry.m_EntryValueW.SetColor(COLOR_GREEN);
305 else if (roundedHealth < zoneMax * 0.3)
306 entry.m_EntryValueW.SetColor(COLOR_RED);
307 else
308 entry.m_EntryValueW.SetColor(COLOR_YELLOW);
309 }
310 }
Definition EnMath.c:7
const int COLOR_RED
Definition constants.c:64
const int COLOR_GREEN
Definition constants.c:65
static proto float Round(float f)
Returns mathematical round of value.

Перекрестные ссылки COLOR_GREEN, COLOR_RED, COLOR_YELLOW, m_DevSyncPlugin, m_Entries, HudDebugWinHealthEntry::m_EntryValueW, HudDebugWinHealthEntry::m_HealthMode, HudDebugWinHealthEntry::m_IsTitleEntry, m_TargetEntity, HudDebugWinHealthEntry::m_Zone и Math::Round().

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

◆ ~HudDebugWinHealth()

void ~HudDebugWinHealth ( )
protected
34 {
35 SetUpdate(false);
36 }

Перекрестные ссылки HudDebugWinBase::SetUpdate().

Переменные

◆ m_ButtonSelf

ButtonWidget m_ButtonSelf
protected

Используется в HandleTargetState(), InitDebug() и OnClick().

◆ m_ButtonTarget

ButtonWidget m_ButtonTarget
protected

Используется в HandleTargetState(), InitDebug() и OnClick().

◆ m_DevSyncPlugin

PluginDeveloperSync m_DevSyncPlugin
protected

Используется в InitEntityEntries(), SetUpdate(), Show(), Update() и UpdateZones().

◆ m_Entries

◆ m_IsInit

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

◆ m_IsModeSelf

bool m_IsModeSelf = true
protected

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

◆ m_TargetDisplayNameW

TextWidget m_TargetDisplayNameW
protected

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

◆ m_TargetEntity

EntityAI m_TargetEntity
protected

Используется в Hide(), InitEntityEntries(), Update() и UpdateZones().

◆ m_WgtPanel