DayZ 1.30
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 строка 405

406 {
407 GameplayEffectsData dta;
408 array<ref Widget> widget_set;
409
410 if (type == EffectWidgetsTypes.ROOT)
411 {
412 HandleWidgetRoot(timeSlice,p,handle);
413 }
414 else if (type == -1) //update stuff from the m_UpdatingEffects
415 {
416 int type_widgetset = 0;
417 for (int i = 0; i < m_UpdatingEffects.Count(); i++)
418 {
419 if (m_RunningEffects.Find(m_UpdatingEffects.Get(i)) != -1)
420 {
421 type_widgetset = m_UpdatingEffects.Get(i);
422
423 dta = m_WidgetDataMap.Get(type_widgetset);
424
425 if (dta.HasDefinedHandle() && dta.DataInitialized())
426 {
427 dta.Update(timeSlice,p,handle); //calculate and apply
428 }
429 else
430 {
431 CalculateValues(type_widgetset,timeSlice,p,handle);
432 widget_set = dta.GetWidgetSet();
433 foreach (Widget w : widget_set)
434 {
435 if (w.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w) == -1)
436 {
437 m_UpdatedWidgetsCheck.Insert(w);
438 ProcessWidgetUpdate(w,type_widgetset,timeSlice,p,handle);
439 }
440 }
441 }
442 }
443 }
444 }
445 else //update specific widget set
446 {
447 if (m_RunningEffects.Find(type) != -1) //only do if the effect is running (FPS stonks!)
448 {
449 dta = m_WidgetDataMap.Get(type);
450
451 if (dta.HasDefinedHandle() && dta.DataInitialized())
452 {
453 dta.Update(timeSlice,p,handle); //calculate and apply
454 }
455 else
456 {
457 CalculateValues(type,timeSlice,p,handle);
458 widget_set = dta.GetWidgetSet();
459 foreach (Widget w2 : widget_set)
460 {
461 if (w2.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w2) == -1)
462 {
463 m_UpdatedWidgetsCheck.Insert(w2);
464 ProcessWidgetUpdate(w2,type,timeSlice,p,handle);
465 }
466 }
467 }
468 }
469 }
470
471 m_UpdatedWidgetsCheck.Clear();
473 }
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:518
void HandleWidgetRoot(float timeSlice=0, Param p=null, int handle=-1)
Определения GameplayEffectWidgets.c:621
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:476
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().

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