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

◆ UpdateWidgets()

override void GameplayEffectWidgets_base::UpdateWidgets ( int type = -1,
float timeSlice = 0,
Param p = null,
int handle = -1 )
inlineprotected

Usually called in course of an OnFrame update, can be manually called from elsewhere with parameters.

См. определение в файле GameplayEffectWidgets.c строка 379

380 {
381 GameplayEffectsData dta;
382 array<ref Widget> widget_set;
383
384 if (type == EffectWidgetsTypes.ROOT)
385 {
386 HandleWidgetRoot(timeSlice,p,handle);
387 }
388 else if (type == -1) //update stuff from the m_UpdatingEffects
389 {
390 int type_widgetset = 0;
391 for (int i = 0; i < m_UpdatingEffects.Count(); i++)
392 {
393 if (m_RunningEffects.Find(m_UpdatingEffects.Get(i)) != -1)
394 {
395 type_widgetset = m_UpdatingEffects.Get(i);
396
397 dta = m_WidgetDataMap.Get(type_widgetset);
398
399 if (dta.HasDefinedHandle() && dta.DataInitialized())
400 {
401 dta.Update(timeSlice,p,handle); //calculate and apply
402 }
403 else
404 {
405 CalculateValues(type_widgetset,timeSlice,p,handle);
406 widget_set = dta.GetWidgetSet();
407 foreach (Widget w : widget_set)
408 {
409 if (w.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w) == -1)
410 {
411 m_UpdatedWidgetsCheck.Insert(w);
412 ProcessWidgetUpdate(w,type_widgetset,timeSlice,p,handle);
413 }
414 }
415 }
416 }
417 }
418 }
419 else //update specific widget set
420 {
421 if (m_RunningEffects.Find(type) != -1) //only do if the effect is running (FPS stonks!)
422 {
423 dta = m_WidgetDataMap.Get(type);
424
425 if (dta.HasDefinedHandle() && dta.DataInitialized())
426 {
427 dta.Update(timeSlice,p,handle); //calculate and apply
428 }
429 else
430 {
431 CalculateValues(type,timeSlice,p,handle);
432 widget_set = dta.GetWidgetSet();
433 foreach (Widget w2 : widget_set)
434 {
435 if (w2.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w2) == -1)
436 {
437 m_UpdatedWidgetsCheck.Insert(w2);
438 ProcessWidgetUpdate(w2,type,timeSlice,p,handle);
439 }
440 }
441 }
442 }
443 }
444
445 m_UpdatedWidgetsCheck.Clear();
447 }
ref array< int > m_UpdatedWidgetSetsCheck
Определения GameplayEffectWidgets.c:16
void ProcessWidgetUpdate(Widget w, int type, float timeSlice=0, Param p=null, int handle=-1)
Определения GameplayEffectWidgets.c:492
void HandleWidgetRoot(float timeSlice=0, Param p=null, int handle=-1)
Определения GameplayEffectWidgets.c:596
ref set< int > m_RunningEffects
Определения GameplayEffectWidgets.c:12
void CalculateValues(int type=-1, float timeSlice=0, Param p=null, int handle=-1)
Only one calculation per unique WidgetSet.
Определения GameplayEffectWidgets.c:450
ref GameplayEffectDataMap m_WidgetDataMap
Определения GameplayEffectWidgets.c:11
ref array< int > m_UpdatingEffects
Определения GameplayEffectWidgets.c:14
ref array< ref Widget > m_UpdatedWidgetsCheck
Определения GameplayEffectWidgets.c:15
override bool DataInitialized()
Определения GEWidgetsMetaDataBleeding.c:49
override void Update(float timeSlice=0, Param p=null, int handle=-1)
Определения GEWidgetsMetaDataBleeding.c:154
override bool HasDefinedHandle()
Определения GEWidgetsMetaDataBleeding.c:44
WorkspaceWidget Widget
Defined in code.

Перекрестные ссылки CalculateValues(), GameplayEffectsData::DataInitialized(), HandleWidgetRoot(), GameplayEffectsData::HasDefinedHandle(), m_RunningEffects, m_UpdatedWidgetsCheck, m_UpdatedWidgetSetsCheck, m_UpdatingEffects, m_WidgetDataMap, ProcessWidgetUpdate() и GameplayEffectsData::Update().

Используется в PPERequester_GameplayBase::OnUpdate(), StartSourceBleedingIndication(), StopSourceBleedingIndication() и Update().