public bool IsActive(DataSample data)
{
var state = GetBattlePosition(data);
switch(state.State)
{
case BattlePosition.Started:
directionAction = () =>
{
adjustedCamera = null;
SwitchToBattle(data, state.Driver, establishingShot: true);
editMarker.Start(data.Telemetry.Positions[battleLeader.CarIdx]);
};
return true;
case BattlePosition.Inside:
directionAction = () =>
{
UpdateBattleCamera(data);
UpdateCameraIfOvertake(data);
};
return true;
case BattlePosition.Finished:
directionAction = () => editMarker.Stop();
return true;
case BattlePosition.Outside:
directionAction = () => { };
return false;
}
throw new Exception("Invalid Battle state {0}".F(state));
}