DayZ 1.28
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 строка 399

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