File NightSkyBattleWidget.cpp
File List > NightSkyEngine > Source > NightSkyEngine > UI > NightSkyBattleWidget.cpp
Go to the documentation of this file
// Fill out your copyright notice in the Description page of Project Settings.
#include "NightSkyBattleWidget.h"
#include "Serialization/ObjectReader.h"
#include "Serialization/ObjectWriter.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(NightSkyBattleWidget)
void UNightSkyBattleWidget::PlayStandardAnimations()
{
PlayHealthAnim();
PlayRecoverableHealthAnim();
PlayTimerAnim();
PlayMeterAnim();
PlayGaugeAnim();
PlayComboCounterAnim();
}
void UNightSkyBattleWidget::SetAnimationRollbackData()
{
for (auto& [Anim, Time, bPlaying] : WidgetAnimationRollback)
{
if (IsAnimationPlaying(Anim))
{
bPlaying = true;
Time = GetAnimationCurrentTime(Anim);
}
}
}
void UNightSkyBattleWidget::RollbackAnimations()
{
for (const auto& [Anim, Time, bPlaying] : WidgetAnimationRollback)
{
if (bPlaying)
PlayAnimation(Anim, Time);
else
SetAnimationCurrentTime(Anim, Time);
}
}
TArray<uint8> UNightSkyBattleWidget::SaveForRollback()
{
TArray<uint8> SaveData;
FObjectWriter Writer(SaveData);
Writer.ArIsSaveGame = true;
GetClass()->SerializeBin(Writer, this);
return SaveData;
}
void UNightSkyBattleWidget::LoadForRollback(const TArray<uint8>& InBytes)
{
if (InBytes.Num() <= 1) return;
FObjectReader Reader(InBytes);
Reader.ArIsSaveGame = true;
GetClass()->SerializeBin(Reader, this);
}