// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using FlaxEngine;
namespace FlaxEditor.Progress.Handlers
{
///
/// Environment probes baking progress reporting handler.
///
///
public sealed class BakeEnvProbesProgress : ProgressHandler
{
private int _entriesDone;
private int _entriesTotal;
///
/// Initializes a new instance of the class.
///
public BakeEnvProbesProgress()
{
Editor.EnvProbeBakeStart += OnEnvProbeBakeStart;
Editor.EnvProbeBakeEnd += OnEnvProbeBakeEnd;
}
private void OnEnvProbeBakeStart(EnvironmentProbe environmentProbe)
{
// Check for start event
if (_entriesTotal == 0)
{
_entriesDone = 0;
OnStart();
}
_entriesTotal++;
UpdateProgress();
}
private void OnEnvProbeBakeEnd(EnvironmentProbe environmentProbe)
{
_entriesDone++;
UpdateProgress();
// Check for end event
if (_entriesDone >= _entriesTotal)
{
_entriesTotal = _entriesDone = 0;
OnEnd();
}
}
private void UpdateProgress()
{
float progress = (float)_entriesDone / _entriesTotal;
OnUpdate(progress, "Baking environment probes...");
}
}
}